AWS

Amazon Aurora 스토리지

misankim 2023. 3. 14. 00:30

AWS RDS에서 이용 가능한 데이터베이스 엔진 중 하나인 아마존 오로라가 어떤 특징을 가지는지 참고 자료를 통해 파악한 내용을 기재하였습니다.

Amazon Aurora Storage 엔진 소개([https://aws.amazon.com/ko/blogs/korea/databaseintroducing-the-aurora-storage-engine/](https://aws.amazon.com/ko/blogs/korea/databaseintroducing-the-aurora-storage-engine/))

Amazon Aurora 내부 들여다보기 (1) – 쿼럼 및 상관 오류 해결 방법([https://aws.amazon.com/ko/blogs/korea/amazon-aurora-under-the-hood-quorum-and-correlated-failure/](https://aws.amazon.com/ko/blogs/korea/amazon-aurora-under-the-hood-quorum-and-correlated-failure/))

아마존 오로라의 스토리지 구성

아마존 오로라는 3개의 가용영역에 가용영역당 2개의 복제본을 생성한 Shared Storage(스토리지 노드)를 사용하여 데이터를 저장합니다.

이런 특징은 아래와 같이 EBS 블록스토리지를 각각의 DB 인스턴스에 할당하여 데이터를 저장하는 MySQL 등의 기존 RDS와 비교되는 특징이라고 할 수 있습니다.

아마존 오로라는 스토리지 노드를 이용하여 스토리지의 가용성을 확보하고, 읽기 전용 복제본 혹은 멀티 마스터 구성 간 동일한 데이터를 유지합니다.

데이터 복제 방식

MySQL의 리플리케이션은 비동기식 복제 방식이기 때문에 리플리케이션 슬레이브에서 정상적으로 데이터를 입력했는지 확인하지 못하기에 데이터의 일관성을 장담할 수 없는 단점이 있지만, 반대로 슬레이브의 데이터 입력이 완료되기를 기다리며 대기하는 시간이 없기 때문에 쓰기 처리에 대한 성능이 동기식 복제에 비해 상대적으로 높습니다.

Galera Cluster(오픈소스 MySQL 클러스터링 솔루션)와 같은 동기식 복제의 경우 모든 노드에서 쓰기가 완료된 것을 확인한 뒤에 쓰기 작업이 완료되기 때문에 데이터의 일관성을 확보할 수 있으나, 비동기식 복제에 비해 상대적으로 쓰기 성능이 떨어진다는 단점이 있습니다.

RDS의 Multi AZ의 경우에도 동기식 복제이기 때문에 Galera Cluster와 유사하게 쓰기에 대한 지연시간이 증가한다는 점을 안내하고 있습니다.

다중 AZ 배포를 사용하는 DB 인스턴스는 동기식 데이터 복제 발생으로 인해 단일 AZ 배포에 비해 쓰기 및 커밋 지연 시간이 길어질 수 있습니다.

https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/Concepts.MultiAZ.html

아마존 오로라의 공유 스토리지는 쿼럼 방식을 사용하여 데이터를 복제합니다. 쓰기 수행 시 6개의 복사본으로 쓰기를 수행하며, 4개의 복제본에서 쓰기가 완료되면 해당 쓰기 동작은 완료된 것으로 간주합니다. 때문에 일부 노드의 응답이 느리게 발생하여도 대기로 인해 발생하는 지연시간을 줄일 수 있습니다. 또한 노드간 통신 시 10G 네트워크를 사용하여 네트워크 지연시간을 100ms 미만으로 유지할 수 있습니다.

데이터 읽기 방식

쿼럼 방식의 스토리지 노드의 경우 데이터를 읽을 때 6개의 복제본 중 3개의 복제본을 읽어야하기 때문에 단일 스토리지에서의 읽기 작업에 비해 읽기 성능이 떨어지는 단점이 발생합니다. 때문에 아마존 오로라는 응답시간이 가장 빠른 노드를 조회하며, 응답시간 정보를 최신으로 유지합니다.

내결함성

쓰기 작업의 경우 6개의 스토리지 노드 중 최소 4개의 노드에서 복제가 이뤄져야하기 때문에 2개의 노드 혹은 1개 가용영역에 대한 내결함성을 가집니다.

읽기 작업의 경우 최소 3개의 노드에서 동일한 페이지를 읽기 때문에 3개의 노드 혹은 1개 가용영역 및 1개 노드에 대한 내결함성을 가집니다.

그 밖의 특징

아마존 오로라는 스토리지 노드를 이용하기 때문에 Multi AZ(standby 인스턴스) 기능이 별도로 없습니다. 싱글 마스터와 다수 읽기 전용 복제본을 구성하거나, 멀티 마스터를 구성하여 사용 가능합니다. 아마존 오로라는 MySQL, PostgreSQL을 지원하나 MySQL은 5.6, 5.7로 2개 메이저 버전, PostgreSQL은 9.6~11.6으로 지원하는 버전이 기존 RDS에 비해 제한적입니다.