베하~!
안녕하세요, BTC 블랙아웃입니다.
얼마전 DocumentDB에 대해 알아보면서 땀을 흘렸던 기억이 있는데요..!
RDS의 경우에는 많은 사람들이 사용하기 때문에 정보도 그만큼 많았는데요,
DocumentDB의 경우엔 RDS에 비해 알려진 정보가 적은 탓에
관련 AWS 독스를 정주행 하며 많은 시간을 들여야 했습니다.
그래서 오늘은 DocumentDB란어떤 특징을 가진 DB인지 함께 알아보도록 하겠습니다.
1. DocumentDB란?
DocumentDB는 MongoDB와 호환되는 문서 데이터베이스 엔진을 기반으로, MongoDB와 유사한 API 및 도구를 사용하여 애플리케이션을 개발하고 실행할 수 있는 AWS의 완전관리형 DB입니다.
DocumentDB를 통해 MongoDB와 호환되는 데이터베이스를 쉽게 설정하고, 운영 및 확장이 가능하기 때문에 MongoDB에서 사용하는 것과 동일한 애플리케이션 코드를 DocumnetDB에서도 실행이 가능하며, 동일한 드라이버와 도구를 사용할 수 있습니다.
이러한 호환성을 기반으로 기존의 MongoDB 애플리케이션을 AWS로 쉽게 마이그레이션하거나 새로운 애플리케이션을 빠르게 개발할 수 있도록 도와줍니다.
2. MongoDB 마이그레이션
위에서 언급한 바와 같이 DocumentDB는 mongoDB와 호환되는 특징이 있기 때문에 쉽게 마이그레이션을 지원하고 있습니다.
AWS documentdb ↔ mongodb 마이그레이션 방법이 궁금하시다면 이전 포스팅을 참고해주세요!
3. documentDB 동작 원리
3-1. 클러스터
DocumentDB 클러스터는 기본(primary) 인스턴스 1대와 최대 15대의 복제본(replica) 인스턴스로, 0~16개의 인스턴스로 구성할 수 있습니다.
모든 쓰기 작업은 기본(primary) 인스턴스를 통해 수행되며 모든 인스턴스(기본 및 복제본)에서 읽기 작업이 가능합니다.
클러스터는 인스턴스와 해당 인스턴스의 데이터를 관리하는 클러스터 스토리지 볼륨으로 구성되며,
데이터는 클러스터 볼륨에 저장되고 복사본이 세 개의 서로 다른 가용 영역에 저장됩니다.
3-2. 인스턴스
클러스터에 구성되는 인스턴스별로 클래스를 다양하게 조정할 수 있으며 총 5가지의 인스턴스 클래스를 선택할 수 있습니다. (R6G/R5/R4/T4G/T3)
하지만 모든 리전에서 모든 클래스가 제공되는 것은 아니기 때문에 리전별로 지원하는 인스턴스 클래스를 꼭 확인하셔야 합니다. 서울 리전의 경우, 5가지의 클래스 중 R4 유형은 지원하지 않습니다.
3-3. 엔드포인트
: Amazon DocumentDB에는 각각 고유한 용도가 있는 세 가지 유형의 엔드포인트가 있습니다.
- 클러스터 엔드포인트(cluster endpoint)
클러스터의 현재 기본(primary) 인스턴스에 연결되는 Amazon DocumentDB 클러스터의 엔드포인트입니다.
기본적으로 가장 많이 활용되는 엔드포인트이며, 리더 엔드포인트와 마찬가지로 하나씩 제공되는 엔드포인트입니다.
클러스터 엔드포인트를 사용하게 되면 기본 인스턴스의 장애로 fail over가 필요한 경우 다른 복제본을 기본 인스턴스로 승격시킨 후 새로운 기본 인스턴스에 다시 매핑할 수 있습니다.
리더 엔드포인트나 개별 인스턴스 엔드포인트로 연결되어 있다면 위와 같은 fail over 조치가 어렵겠죠..!
그래서 특별한 상황이 아니라면 보통 클러스터 엔드포인트를 많이 활용하고 있습니다.
- 리더 엔드포인트(reader endpoint)
리더 엔드포인트는 해당 클러스터에서 사용 가능한 복제본 중 하나에 연결되는 엔드포인트로, 각 DocumentDB 클러스터에는 1개의 리더 엔드포인트가 있습니다.
복제본이 두 개 이상인 경우 리더 엔드포인트는 각 연결 요청을 Amazon DocumentDB 복제본 중 하나로 보내기 때문에 읽기 작업만 처리하는 요청이 있을 경우엔 리더 엔드포인트를 활용하여 연결하는 것도 하나의 방법이 될 수 있습니다.
- 인스턴스 엔드포인트(instance endpoint)
인스턴스 엔드포인트는 클러스터 중 특정 인스턴스에 연결되는 엔드포인트입니다.
기본 인스턴스인지 복제본 인스턴스인지 여부에 상관없이 클러스터의 각 인스턴스에는 고유한 인스턴스 엔드포인트가 있으며 각각의 private ip를 가지고 있습니다.
이렇게 DocumentDB가 무엇인지, 어떤 특징을 가지고 있는지 알아보았습니다!
대체적으로 AWS의 데이터베이스라면 RDS를 더 많이 떠올리실 텐데요.
저 또한 RDS와 별개로 documentDB는 어떤 서비스일까 궁금하여 이것저것 찾아보게 되었습니다.
RDS와 비슷하면서도 조금 특별하기도 한 documentDB..!
다음 시간에는 오늘 알아본 documentDB를 직접 생성하고 EC2에 연결해보는 실습을 직접 진행해 보도록 하겠습니다.
그럼 다음에 또 만나요!
베빠~!
댓글