AWS RDS 지역 간 복제를 통한 마스터 DB 지연 시간

AWS RDS 지역 간 복제를 통한 마스터 DB 지연 시간

3개 지역(EU, AP, US)에 앱 설정이 있고 마스터 MySQL RDS는 eu-west-1에 있고 다른 지역에는 읽기 전용 복제본이 있습니다.

이는 지역별 앱이 로컬 읽기 전용 복제본 RDS에 매우 빠르게 연결되는 읽기 쿼리에 적합하지만 내 앱이 쓰기 쿼리를 수행해야 하는 경우 eu-west-1의 마스터 DB에 연결해야 합니다.

US 또는 AP에서 마스터 DB에 쓸 때 대기 시간이 엄청나며 일반적으로 삽입을 완료하는 데 약 2.5초가 걸립니다.

이 문제를 극복하는 방법에 대한 정보를 찾기 위해 정말 고심하고 있습니다. Aurora는 글로벌 데이터베이스에 대한 포럼과 튜토리얼에서 많이 등장하지만 db.r5가 최소인 인스턴스 유형의 복제가 필요합니다. 곧 매우 커집니다. 여러 인스턴스를 실행할 때 비용이 많이 듭니다.

마스터 DB에 대한 지역 간 쓰기 속도가 느려서 이 문제에 직면한 사람이 있습니까? VPC 피어링이 속도를 높이는 데 도움이 됩니까?

답변1

이것은 완전한 답변이 아니며, 더 많은 생각을 시도하고 의견 상자에 맞지 않는 질문입니다. 반대표를 던지고 싶은 충동을 억제해 보세요 :)

VPC 피어링은 확실히 시도해 볼 가치가 있습니다.트래픽은 AWS 백본에 유지됩니다.그러면 대기 시간이 조금 줄어들 것입니다. 그게 얼마나 도움이 될지는 모르겠습니다. 이 세 영역은 200 - 300ms 핑 간격을 두고 있으므로 항상 약간의 지연이 발생합니다.

클라이언트와 DB 간의 대화는 하나의 삽입에 대한 여러 요청인 것으로 의심됩니다. 예를 들어 연결 생성, 특정 DB에 연결, 삽입, 커밋, 닫기 등이 있습니다. 그렇다면 대기 시간을 줄이는 것이 도움이 되지만 일부 단계를 줄이는 것이 더 중요합니다. 연결 풀링을 사용하여 연결이 이미 열려 있습니까? 나는 VPC 피어링 및 일반 최적화가 아래 아이디어 중 하나보다 더 나은 솔루션이 될 것이라고 생각합니다.

업데이트를 비동기식으로 만들 수 있는 방법이 있다면? 단일 지역에서 처리되는 SQS 대기열에 쓰기를 넣을 수 있다면 아마도 1~2초 내에 완료될 것입니다. 이는 속도에 따라 직접 데이터베이스 연결에 대한 최적화일 수 있습니다.

다중 마스터는 데이터베이스 기본 복제 기능을 사용하는 또 다른 옵션입니다. RDS에서 이 작업을 수행할 수 있는지 완전히 확신할 수는 없지만 가능하다면 장점/단점을 살펴볼 가치가 있을 것입니다. 사람들이 동시에 동일한 기록을 업데이트할 것으로 예상된다면 이를 방지해야 합니다.

또 다른 옵션은 특정 데이터베이스의 특정 사용자 데이터를 샤딩하는 것입니다. 하지만 이는 애플리케이션 논리를 더욱 복잡하게 만들 것입니다.

관련 정보