데이터베이스 가용성 이야기는 결국 하나의 물리 법칙으로 귀결된다. 빛은 무한히 빠르지 않다. 서울과 버지니아 사이는 광케이블로 왕복 약 180ms가 걸린다 — 이건 AWS가 돈으로 줄일 수 있는 게 아니라 빛의 속도가 정한 하한선이다. 데이터베이스가 "쓰기를 복제본에 반영할 때까지 기다린다"(동기)면 모든 트랜잭션이 이 왕복 시간만큼 느려지고, "기다리지 않는다"(비동기)면 빠르지만 복제본이 잠깐 뒤처진다. RDS Multi-AZ와 Read Replica의 모든 차이는 이 동기/비동기 선택에서 갈라진다.
이게 시험에서 가장 많이 틀리는 주제인 이유는 둘이 표면적으로 비슷해 보이기 때문이다 — 둘 다 "DB를 하나 더 두는 것"처럼 보인다. 하지만 Multi-AZ는 가용성을 위한 동기 복제 대기조이고, Read Replica는 읽기 확장을 위한 비동기 복제 일꾼이다. 목적도, 복제 방식도, 클라이언트 접근 가능 여부도 정반대다. 이 글은 동기/비동기의 물리적 의미부터 Aurora가 이 트레이드오프를 어떻게 재설계했는지까지 파고든다.
RDS Multi-AZ는 같은 리전의 다른 AZ에 Standby 인스턴스를 두고, Primary의 모든 쓰기를 동기적으로(synchronously) Standby에 복제한다