캐시, 비었을 때 데이터베이스로 몰리는 요청
캐시가 요청 대부분을 받아 주면 데이터베이스는 한가해 보인다. 그 한가함은 캐시가 처리하고 남은 몫이어서, 캐시가 비는 순간 요청 전체가 데이터베이스로 몰린다.
데이터베이스에 관한 7개의 기록을 모았습니다.
캐시가 요청 대부분을 받아 주면 데이터베이스는 한가해 보인다. 그 한가함은 캐시가 처리하고 남은 몫이어서, 캐시가 비는 순간 요청 전체가 데이터베이스로 몰린다.
RDS에서 백업으로 되돌리면 지금 쓰는 데이터베이스가 되감기지 않고 새 DB 인스턴스가 생긴다. 그래서 연결 주소를 옮기고, 설정 묶음을 다시 붙이고, 복구 직후의 느린 성능까지 따로 챙겨야 한다.
RDS 읽기 복제본은 원본의 변경을 비동기로 받는다. 저장에 성공했다는 응답을 받고 곧바로 복제본에서 읽으면, 아직 반영되지 않은 예전 값이 보일 수 있다.
DynamoDB는 파티션 키 값으로 데이터를 여러 파티션에 나눠 저장하고, 파티션마다 처리 한도가 따로 있다. 요청이 한 값에 몰리면 테이블 전체 용량이 넉넉해도 거절되는데, 이 키는 테이블을 만든 뒤에 바꿀 수 없다.
RDS는 보안 패치를 몇 달에 한 번씩 유지보수 창에서 적용하고, 그때 데이터베이스가 잠시 내려가거나 대기 인스턴스로 넘어간다. 데이터베이스가 돌아와도 앱이 끊긴 연결과 옛 주소를 붙들고 있으면 장애가 이어진다.
이메일 열을 암호화하면 이메일로 회원을 찾던 쿼리가 더는 동작하지 않는다. AES-GCM 암호문이 매번 달라지는 이유, 검색용 HMAC 토큰을 따로 두는 방법, 그 토큰이 여전히 드러내는 것을 설명한다.
AWS에서 캐시를 만들려고 하면 엔진 목록에 Redis OSS와 Valkey가 나란히 나온다. Redis가 무슨 일을 하는지, 2024년 라이선스 변경 뒤 Valkey가 어떻게 갈라져 나왔는지, 고르거나 옮길 때 무엇을 확인하는지 정리한다.