Amazon DocumentDB: 작동 방식 - Amazon DocumentDB

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon DocumentDB: 작동 방식

Amazon DocumentDB(MongoDB와 호환됨)는 완전 관리형의 MongoDB와 호환됨 데이터베이스 서비스입니다. Amazon DocumentDB를 사용하면 MongoDB에서 사용하는 것과 동일한 애플리케이션 코드를 실행하고 동일한 드라이버와 도구를 사용할 수 있습니다. Amazon DocumentDB는 MongoDB 3.6, 4.0, 5.0과 호환됩니다.

Amazon DocumentDB를 사용할 때는 클러스터를 생성하는 것부터 시작합니다. 클러스터는 0개 이상의 데이터베이스 인스턴스 및 이 인스턴스의 데이터를 관리하는 클러스터 볼륨으로 구성됩니다. Amazon DocumentDB 클러스터 볼륨은 여러 가용 영역에 걸쳐 있는 가상 데이터베이스 스토리지 볼륨입니다. 각 가용 영역마다 클러스터 데이터 복사본이 있습니다.

Amazon DocumentDB 클러스터는 다음 두 가지 구성 요소로 구성됩니다.

  • 클러스터 볼륨—클라우드 네이티브 스토리지 서비스를 사용하여 3개의 가용 영역에 걸쳐 6가지 방식으로 데이터를 복제하여 내구성이 뛰어나고 가용성이 뛰어난 스토리지를 제공합니다. Amazon DocumentDB 클러스터는 하나의 클러스터 볼륨을 가지고 있으며, 최대 128TiB의 데이터를 저장할 수 있습니다.

  • 인스턴스—데이터베이스에 대한 처리 능력을 제공하고, 데이터를 클러스터 스토리지 볼륨에 쓰고, 데이터를 읽어냅니다. Amazon DocumentDB 클러스터에는 0~16개의 인스턴스가 있을 수 있습니다.

인스턴스는 두 가지 역할 중 하나를 수행합니다.

  • 기본 인스턴스—읽기 및 쓰기 작업을 지원하고 클러스터 볼륨에 대한 모든 데이터 수정을 수행합니다. 각 Amazon DocumentDB 클러스터에는 기본 인스턴스가 하나씩 있습니다.

  • 복제본 인스턴스 - 읽기 작업만 지원합니다. Amazon DocumentDB 클러스터는 기본 인스턴스 외에 최대 15개의 복제본을 가질 수 있습니다. 복제본이 여러 개 있으면 읽기 워크로드를 분산시킬 수 있습니다. 또한 복제본을 별도의 가용 영역에 두어 클러스터 가용성을 높일 수 있습니다.

다음 다이어그램은 Amazon DocumentDB 클러스터의 클러스터 볼륨, 기본 인스턴스 및 복제본 간의 관계를 보여줍니다:


         클러스터, 리더 및 인스턴스 엔드포인트를 포함하는 Amazon DocumentDB 엔드포인트를 보여주는 다이어그램입니다.

클러스터 인스턴스의 인스턴스 클래스가 같을 필요는 없으며 이 인스턴스를 원하는 대로 프로비저닝하고 종료할 수 있습니다. 이 아키텍처를 사용하여 클러스터 컴퓨팅 파워를 스토리지와 별개로 확장할 수 있습니다.

애플리케이션이 기본 인스턴스에 데이터를 쓸 때 기본 인스턴스는 클러스터 볼륨에 내구성 있는 쓰기를 실행합니다. 그런 다음 각 활성 복제본에 해당 쓰기 상태(데이터 제외)를 복제합니다. Amazon DocumentDB 복제본은 쓰기 처리에 관여하지 않으므로 Amazon DocumentDB 복제본은 읽기 확장에 유리합니다. Amazon DocumentDB 복제본에서의 읽기 작업은 최종적으로 복제본 지연 시간을 최소화하면서 일관되게 이루어지는데, 이는 기본 인스턴스가 데이터를 쓴 후 보통 100밀리초 미만입니다. 복제본에서 읽기는 기본 인스턴스에 쓰여진 순서대로 읽힙니다. 복제본 지연 시간은 데이터 변경 비율에 따라 달라지며 쓰기 작업 기간 집중적으로 일어나는 기간에는 복제본 지연 시간이 늘어날 수 있습니다. 자세한 내용은 Amazon DocumentDB 지표ReplicationLag 지표를 참조하십시오.

Amazon DocumentDB 엔드포인트

Amazon DocumentDB는 다양한 사용 사례를 제공하기 위해 여러 연결 옵션을 제공합니다. Amazon DocumentDB 클러스터의 인스턴스에 연결하려면 인스턴스의 엔드포인트를 지정합니다. 엔드포인트란 콜론으로 구분된 호스트 주소와 포트 번호입니다.

리더 엔드포인트 또는 인스턴스 엔드포인트에 연결하는 특정 사용 사례가 없는 경우 클러스터 엔드포인트를 사용하고 복제본 세트 모드(Amazon DocumentDB에 복제 세트로 연결 참조)에서 클러스터에 연결하는 것이 좋습니다. 요청을 복제본으로 라우팅하려면 애플리케이션의 읽기 일관성 요구 사항을 충족하면서 읽기 확장성을 최대화하는 드라이버 읽기 기본 설정을 선택합니다. secondaryPreferred 읽기 기본 설정은 복제본 읽기를 활성화하고, 더 많은 작업을 수행할 수 있도록 기본 인스턴스를 비웁니다.

Amazon DocumentDB 클러스터에서 사용할 수 있는 엔드포인트는 다음과 같습니다.

클러스터 엔드포인트

클러스터 엔드포인트는 클러스터의 현재 기본 인스턴스에 연결됩니다. 읽기 및 쓰기 작업에 클러스터 엔드포인트를 사용할 수 있습니다. Amazon DocumentDB 클러스터에는 클러스터 엔드포인트가 하나만 있습니다.

클러스터 엔드포인트는 클러스터에 대한 읽기 및 쓰기 연결에 장애 조치 지원을 제공합니다. 클러스터의 현재 기본 인스턴스가 실패하고 클러스터에 적어도 하나의 활성 읽기 전용 복제본이 있으면 클러스터 엔드포인트가 연결 요청을 새 기본 인스턴스에 자동으로 리디렉션합니다. Amazon DocumentDB 클러스터에 연결할 때는 클러스터 엔트포인트를 사용하여 복제본 설정 모드로 클러스터에 연결하는 것이 좋습니다(Amazon DocumentDB에 복제 세트로 연결 참조).

다음은 Amazon DocumentDB 클러스터 엔드포인트의 예제입니다.

sample-cluster.cluster-123456789012.us-east-1.docdb.amazonaws.com:27017

다음은 이 클러스터 엔드포인트를 사용하는 연결 문자열 예제입니다.

mongodb://username:password@sample-cluster.cluster-123456789012.us-east-1.docdb.amazonaws.com:27017

클러스터 엔드포인트 찾기에 대한 자세한 내용은 클러스터 엔드포인트 찾기 단원을 참조하십시오.

리더 엔드포인트

리더 엔드포인트는 클러스터에 있는 사용 가능한 모든 복제본 간에 읽기 전용 연결을 로드 밸런싱합니다. 리더 엔드포인트와의 연결을 통해 쓰기 작업을 수행하려는 시도로 인해 오류가 발생합니다. Amazon DocumentDB 클러스터에는 정확히 하나의 리더 엔트포인트가 있습니다.

클러스터에 기본 인스턴스 하나만 있는 경우 리더 엔드포인트가 기본 인스턴스에 연결합니다. 복제본 인스턴스를 Amazon DocumentDB 클러스터에 추가할 때, 리더 엔드포인트는 복제본이 활성화된 후 새 복제본에 대한 읽기 전용 연결을 엽니다.

다음은 Amazon DocumentDB 클러스터에 대한 리더 엔드포인트의 예제입니다.

sample-cluster.cluster-ro-123456789012.us-east-1.docdb.amazonaws.com:27017

다음은 리더 엔드포인트를 사용하는 연결 문자열 예제입니다.

mongodb://username:password@sample-cluster.cluster-ro-123456789012.us-east-1.docdb.amazonaws.com:27017

리더 엔드포인트는 읽기 요청이 아닌 읽기 전용 연결을 로드 밸런싱합니다. 일부 리더 엔드포인트 연결이 다른 연결보다 매우 많이 사용되는 경우 읽기 요청이 클러스터의 인스턴스 간에 균등하게 밸런싱되지 않을 수 있습니다. 클러스터 엔드포인트에 복제본 세트로 연결하고 secondaryPreferred 읽기 기본 설정 옵션을 사용하여 요청을 분산하는 것이 좋습니다.

클러스터 엔드포인트 찾기에 대한 자세한 내용은 클러스터 엔드포인트 찾기 단원을 참조하십시오.

인스턴스 엔드포인트

인스턴스 엔드포인트는 클러스터에 있는 특정 인스턴스에 연결됩니다. 읽기 및 쓰기 작업에 현재 기본 인스턴스의 인스턴스 엔드포인트를 사용할 수 있습니다.니다. 하지만 읽기 전용 복제본의 인스턴스 엔드포인트에 대한 쓰기 작업을 수행하려는 시도로 인해 오류가 발생합니다. Amazon DocumentDB 클러스터에는 활성 인스턴스당 하나의 인스턴스 엔드포인트가 있습니다.

클러스터 엔드포인트 또는 리더 엔드포인트가 부적합한 시나리오에서는 인스턴스 엔드포인트가 특정 인스턴스에 대한 연결을 직접 제어합니다. 예제 사용 사례에서는 주기적인 읽기 전용 분석 워크로드를 프로비저닝합니다. larger-than-normal 복제 인스턴스를 프로비저닝하고, 인스턴스 엔드포인트를 사용하여 새로운 대형 인스턴스에 직접 연결하고, 분석 쿼리를 실행한 다음 인스턴스를 종료할 수 있습니다. 인스턴스 엔드포인트를 사용하면 분석 트래픽이 다른 클러스터 인스턴스에 영향을 주지 않습니다.

다음은 Amazon DocumentDB 클러스터의 단일 인스턴스에 대한 인스턴스 엔드포인트의 예입니다.

sample-instance.123456789012.us-east-1.docdb.amazonaws.com:27017

다음은 이 인스턴스 엔드포인트를 사용하는 연결 문자열 예제입니다.

mongodb://username:password@sample-instance.123456789012.us-east-1.docdb.amazonaws.com:27017
참고

장애 조치 이벤트로 인해 기본 또는 복제본으로서 인스턴스의 역할이 변경될 수 있습니다. 애플리케이션에서 특정 인스턴스 엔드포인트가 기본 인스턴스라고 가정해서는 안 됩니다. 프로덕션 애플리케이션의 경우 인스턴스 엔드포인트에 연결하지 않는 것이 좋습니다. 대신 클러스터 엔드포인트를 사용하고 복제본 세트 모드(Amazon DocumentDB에 복제 세트로 연결 참조)에서 클러스터에 연결하는 것이 좋습니다. 인스턴스 장애 조치 우선 순위의 고급 제어에 대한 자세한 내용은 Amazon DocumentDB 클러스터 내결함성에 대한 이해 단원을 참조하십시오.

클러스터 엔드포인트 찾기에 대한 자세한 내용은 인스턴스의 엔드포인트 찾기 단원을 참조하십시오.

복제본 세트 모드

복제본 세트 이름 rs0을 지정하여 복제본 세트 모드에서 Amazon DocumentDB 클러스터 엔드포인트에 연결할 수 있습니다. 복제본 세트 모드에서 연결하면 Read Concern(읽기 문제), Write Concern(쓰기 문제) 및 Read Preference(읽기 기본 설정) 옵션을 지정할 수 있습니다. 자세한 설명은 읽기 일관성 섹션을 참조하세요.

다음은 복제본 세트 모드에서 연결하는 예제 연결 문자열입니다.

mongodb://username:password@sample-cluster.cluster-123456789012.us-east-1.docdb.amazonaws.com:27017/?replicaSet=rs0

복제본 세트 모드로 연결하면 Amazon DocumentDB 클러스터가 복제본 세트로 드라이버와 클라이언트에 나타납니다. Amazon DocumentDB 클러스터에서 추가 및 제거된 인스턴스는 복제본 집합 구성에 자동으로 반영됩니다.

각 Amazon DocumentDB 클러스터는 기본 이름이 rs0인 단일 복제본 세트로 구성됩니다. 복제본 세트 이름은 수정할 수 없습니다.

일반적인 용도에서는 복제본 세트 모드에서 클러스터 엔드포인트에 연결하는 것이 좋은 방법입니다.

참고

Amazon DocumentDB 클러스터의 모든 인스턴스는 동일한 TCP 포트에서 연결을 수신합니다.

TLS 지원

전송 계층 보안(TLS)을 사용하여 Amazon DocumentDB에 연결하는 방법에 대한 자세한 내용은 전송 중 데이터 암호화을 참조하십시오.

Amazon DocumentDB 스토리지

Amazon DocumentDB 데이터는 솔리드 스테이트 드라이브(SSD)를 사용하는 단일 가상 볼륨인 클러스터 볼륨에 저장됩니다. 클러스터 볼륨은 데이터 복사본 6개로 구성되며, 데이터 복사본은 단일 AWS 리전에서 여러 가용 영역에 걸쳐 자동으로 복제됩니다. 이 복제를 통해 데이터의 내구성을 높이고 데이터 손실 가능성을 줄일 수 있습니다. 또한 다른 가용 영역에 데이터 복사본이 이미 있어 장애 조치가 이루어지는 동안 클러스터 가용성이 높아집니다. 이러한 복사본은 계속해서 Amazon DocumentDB 클러스터의 인스턴스에 데이터 요청을 제공할 수 있습니다.

데이터 스토리지 요금이 청구되는 방법

Amazon DocumentDB는 데이터의 양이 증가함에 따라 클러스터 볼륨의 크기가 자동으로 증가합니다. Amazon DocumentDB 클러스터 볼륨은 최대 128TiB까지 증가할 수 있지만, 사용자는 Amazon DocumentDB 클러스터 볼륨에서 사용하는 공간에 대해서만 비용이 청구됩니다. Amazon DocumentDB 4.0부터는 컬렉션이나 인덱스를 삭제하는 등의 방법으로 데이터가 제거되면 비슷한 양만큼 할당된 전체 공간이 감소합니다. 따라서 더 이상 필요하지 않은 컬렉션, 인덱스 및 데이터베이스를 삭제하여 스토리지 요금을 절감할 수 있습니다. Amazon DocumentDB 3.6에서는 컬렉션이나 인덱스를 삭제하는 등의 방법으로 데이터가 제거되면 Amazon DocumentDB 3.6에서는 할당된 전체 공간이 동일하게 유지됩니다. 여유 공간은 추후 데이터 용량이 증가하면 자동으로 재사용됩니다.

참고

Amazon DocumentDB 3.6의 스토리지 비용은 스토리지 "하이 워터 마크"(Amazon DocumentDB 클러스터에 할당된 최대 양)를 기반으로 합니다. 대량의 임시 정보를 생성하거나 불필요한 오래된 데이터를 제거하기 전에 대량의 새 데이터를 로드하는 ETL 관행을 피함으로써 비용을 관리할 수 있습니다. Amazon DocumentDB 클러스터에서 데이터를 제거하면 많은 양의 공간이 할당되지만 사용되지 않는 경우 하이 워터 마크를 재설정하려면 논리적 데이터 덤프를 수행하고 mongodump 또는 mongorestore와 같은 도구를 사용하여 새 클러스터로 복원해야 합니다. 스냅샷을 생성하고 복원하면 기본 스토리지의 물리적 레이아웃이 복원된 스냅샷에서 동일하게 유지되기 때문에 할당된 스토리지가 감소하지 않습니다.

참고

mongodumpmongorestore 같은 유틸리티를 사용하면 스토리지 볼륨에 읽고 쓰는 데이터의 크기에 따라 I/O 요금이 발생합니다.

Amazon DocumentDB 데이터 스토리지 및 I/O 요금에 대한 자세한 내용은 Amazon DocumentDB(MongoDB와 호환 가능) 요금 및 요금 FAQ를 참조하십시오.

Amazon DocumentDB 복제

Amazon DocumentDB 클러스터에서 각 복제본 인스턴스는 독립적 엔트포인트를 보여줍니다. 이 복제본 엔드포인트는 클러스터 볼륨의 데이터에 대한 읽기 전용 액세스를 제공하며 복제된 여러 인스턴스에서 데이터의 읽기 워크로드를 확장하도록 해줍니다. 또한 Amazon DocumentDB 클러스터의 데이터 읽기 성능을 개선하고 데이터 가용성을 높이는 데도 도움이 됩니다. Amazon DocumentDB 복제본은 장애 조치 대상이기도 하며 Amazon DocumentDB 클러스터의 기본 인스턴스에 장애가 발생할 경우 신속하게 승격됩니다.

Amazon DocumentDB 안정성

Amazon DocumentDB는 안정성, 내구성 및 내결함성을 고려하여 설계되었습니다. (가용성을 높이려면 Amazon DocumentDB 클러스터가 서로 다른 가용 영역에 여러 개의 복제본 인스턴스가 있도록 구성해야 합니다.) Amazon DocumentDB에는 신뢰할 수 있는 데이터베이스 솔루션으로 만들어 주는 몇 가지 자동 기능이 포함되어 있습니다.

스토리지 자동 복구

Amazon DocumentDB는 데이터의 여러 복사본을 3개의 가용 영역에 유지하므로 스토리지 장애로 인해 데이터가 손실될 가능성을 크게 줄입니다. Amazon DocumentDB는 클러스터 볼륨에서 장애를 자동으로 감지합니다. 클러스터 볼륨의 세그먼트에 장애가 발생하면 Amazon DocumentDB는 즉시 세그먼트를 복구합니다. 이때 클러스터 볼륨을 구성하는 나머지 볼륨의 데이터를 사용하여 복구된 세그먼트의 데이터도 이용 가능합니다. 따라서 Amazon DocumentDB는 데이터 손실을 방지하고 인스턴스 장애를 복구하기 위해 복원을 수행할 point-in-time 필요성을 줄여줍니다.

유지 가능한 캐시 워밍

Amazon DocumentDB는 페이지 캐시가 데이터베이스와 독립적으로 생존할 수 있도록 데이터베이스와 별도의 프로세스로 자신의 페이지 캐시를 관리합니다. 데이터베이스 장애가 발생한 경우에는 페이지 캐시가 메모리에 남습니다. 이렇게 하면 데이터베이스를 다시 시작할 때 버퍼 풀이 가장 최근의 상태로 워밍업됩니다.

충돌 복구

Amazon DocumentDB는 거의 순간적으로 충돌을 복구하고 애플리케이션 데이터를 계속해서 제공하도록 설계되었습니다. Amazon DocumentDB는 병렬 스레드에서 비동기식으로 충돌 복구를 수행하므로, 충돌 후 거의 즉시 데이터베이스가 열리고 사용할 수 있습니다.

리소스 거버넌스

Amazon DocumentDB는 상태 확인과 같은 서비스의 중요한 프로세스를 실행하는 데 필요한 리소스를 보호합니다. 이를 위해 인스턴스에 높은 메모리 압력이 발생하는 경우 Amazon DocumentDB는 요청을 제한합니다. 따라서 일부 작업은 메모리 사용량이 줄어들 때까지 대기열에 들어갈 수 있습니다. 메모리 부족 현상이 계속되면 대기 중인 작업 시간이 초과될 수 있습니다. 메모리 부족으로 인한 서비스 제한 작업 여부를 다음 CloudWatch 측정치를 사용하여 모니터링할 수 있습니다.,,. LowMemThrottleQueueDepth LowMemThrottleMaxQueueDepth LowMemNumOperationsThrottled LowMemNumOperationsTimedOut 자세한 내용은 Amazon DocumentDB를 사용한 모니터링을 참조하십시오. CloudWatch LowMem CloudWatch 지표로 인해 인스턴스의 메모리 압력이 지속되면 인스턴스를 확장하여 워크로드에 필요한 추가 메모리를 제공하는 것이 좋습니다.

읽기 기본 설정 옵션

Amazon DocumentDB는 클라우드 네이티브 공유 스토리지 서비스를 사용하여 세 개의 가용 영역에 걸쳐 데이터를 6회 복제하여 높은 수준의 내구성을 제공합니다. Amazon DocumentDB는 내구성을 확보하기 위해 데이터를 여러 인스턴스에 복제하지 않습니다. 인스턴스가 1개이건 15개이건 클러스터 데이터의 내구성이 유지됩니다.

쓰기 내구성

Amazon DocumentDB는 고유한, 배포된, 내결함성, 자가 복구 스토리지 시스템을 사용합니다. 이 시스템은 고가용성(HA)과 내구성을 제공하기 위해 3개의 AWS 가용 영역에 걸쳐 6개의 데이터 복사본(V=6)을 복제합니다. Amazon DocumentDB는 데이터를 작성할 때 클라이언트에게 쓰기를 승인하기 전에 모든 쓰기가 다수의 노드에 지속적으로 기록되도록 보장합니다. 3노드 MongoDB 복제본 세트를 실행하는 경우 쓰기 문제 {w:3, j:true}을 사용하면 Amazon DocumentDB와 비교할 때 최상의 구성을 얻을 수 있습니다.

Amazon DocumentDB 클러스터에 대한 쓰기는 클러스터의 라이터 인스턴스에서 처리해야 합니다. 리더에 쓰기를 시도하면 오류가 발생합니다. Amazon DocumentDB 기본 인스턴스에서 승인된 쓰기는 내구성이 강하며 롤백할 수 없습니다. Amazon DocumentDB는 기본적으로 내구성이 뛰어나며 내구성이 없는 쓰기 옵션을 지원하지 않습니다. 사용자가 내구성 수준(즉, 쓰기 문제)을 수정할 수 없습니다. Amazon DocumentDB는 w=아무거나를 무시하며 사실상 w: 3 및 j: true입니다. 줄일 수는 없습니다.

Amazon DocumentDB 아키텍처에서 스토리지와 컴퓨팅이 분리되어 있기 때문에 단일 인스턴스를 가진 클러스터는 내구성이 매우 높습니다. 내구성은 스토리지 계층에서 처리됩니다. 따라서 단일 인스턴스와 3개의 인스턴스가 있는 하나의 Amazon DocumentDB 클러스터는 동일한 수준의 내구성을 달성합니다. 데이터의 뛰어난 내구성을 유지하면서 클러스터를 특정 사용 사례로 구성할 수 있습니다.

Amazon DocumentDB 클러스터에 대한 쓰기는 단일 문서 내에서 원자성을 갖습니다.

Amazon DocumentDB는 wtimeout 옵션을 지원하지 않으며 값이 지정된 경우 오류를 반환하지 않습니다. 기본 Amazon DocumentDB 인스턴스에 대한 쓰기는 무기한 차단되지 않도록 보장됩니다.

읽기 격리

Amazon DocumentDB 인스턴스에서 읽은 데이터는 쿼리가 시작되기 전에만 지속되는 데이터를 반환합니다. 읽기는 쿼리 실행이 시작된 후 수정한 데이터를 반환하지 않으며 어떠한 경우에도 더티 읽기는 불가능합니다.

읽기 일관성

Amazon DocumentDB 클러스터에서 읽은 데이터는 내구성이 뛰어나며 롤백되지 않습니다. 요청 또는 연결에 대한 읽기 환경설정을 지정하여 Amazon DocumentDB 읽기에 대한 읽기 일관성을 수정할 수 있습니다. Amazon DocumentDB는 내구성이 떨어지는 읽기 옵션을 지원하지 않습니다.

Amazon DocumentDB 클러스터의 기본 인스턴스에서의 읽기는 정상 작동 조건에서 매우 일관되며 일관성이 있습니다. read-after-write 쓰기와 그 다음 읽기 사이에서 장애 조치 이벤트가 발생할 경우 시스템이 일시적으로 강력히 일관되지 않은 읽기를 반환할 수 있습니다. 읽기 전용 복제본에서 모든 읽기는 최종적으로 일관되며 같은 순서로 데이터를 반환할 뿐 아니라 복제 지연 시간이 종종 100ms 미만입니다.

Amazon DocumentDB 읽기 기본 설정

Amazon DocumentDB는 복제본 설정 모드에서 클러스터 엔드포인트에서 데이터를 읽을 때에만 읽기 환경설정 옵션을 설정할 수 있도록 지원합니다. 읽기 환경설정 옵션을 설정하면 MongoDB 클라이언트 또는 드라이버가 읽기 요청을 Amazon DocumentDB 클러스터의 인스턴스로 라우트하는 방법에 영향을 미칩니다. 특정 쿼리에 대해 또는 MongoDB 드라이버의 일반 옵션으로 읽기 기본 설정 옵션을 설정할 수 있습니다. 읽기 기본 설정 옵션을 설정하는 방법은 클라이언트 또는 드라이버 설명서를 참조하십시오.

클라이언트 또는 드라이버가 복제본 설정 모드에서 Amazon DocumentDB 클러스터 엔드포인트에 연결하지 않으면 읽기 환경설정을 지정한 결과가 정의되지 않습니다.

Amazon DocumentDB는 태그 세트를 읽기 환경설정으로 설정하는 것을 지원하지 않습니다.

지원되는 읽기 기본 설정 옵션
  • primaryprimary 읽기 기본 설정을 지정하면 모든 읽기가 클러스터의 기본 인스턴스로 라우팅되도록 할 수 있습니다. 기본 인스턴스를 사용할 수 없으면 읽기 작업이 실패합니다. primary읽기 기본 설정은 read-after-write 일관성을 제공하며 고가용성 및 읽기 확장보다 read-after-write 일관성을 우선시하는 사용 사례에 적합합니다.

    다음 예제에서는 primary 읽기 기본 설정을 지정합니다.

    db.example.find().readPref('primary')

     

  • primaryPreferred—일반 작동 시 기본 인스턴스에 대한 primaryPreferred 읽기 기본 설정 경로를 지정합니다. 기본 장애 조치가 있을 경우 클라이언트가 요청을 복제본으로 라우팅합니다. primaryPreferred읽기 기본 설정을 사용하면 정상 작동 중에는 read-after-write 일관성이 유지되고 페일오버 이벤트 동안에는 최종적으로 읽기 일관성이 유지됩니다. primaryPreferred읽기 기본 설정은 읽기 확장보다 read-after-write 일관성을 우선시하지만 여전히 고가용성이 필요한 사용 사례에 적합합니다.

    다음 예제에서는 primaryPreferred 읽기 기본 설정을 지정합니다.

    db.example.find().readPref('primaryPreferred')

     

  • secondarysecondary 읽기 기본 설정을 지정하면 읽기가 기본 인스턴스가 아닌 복제본으로만 라우팅됩니다. 클러스터에 복제본 인스턴스가 없으면 읽기 요청이 실패합니다. secondary읽기 기본 설정은 최종적으로 읽기 일관성을 유지하므로 고가용성 및 일관성보다 기본 인스턴스 쓰기 처리량을 우선시하는 사용 사례에 적합합니다. read-after-write

    다음 예제에서는 secondary 읽기 기본 설정을 지정합니다.

    db.example.find().readPref('secondary')

     

  • secondaryPreferredsecondaryPreferred 읽기 환경설정을 지정하면 읽기는 하나 이상의 복제본이 활성화될 때 읽기 복제본으로 라우팅됩니다. 클러스터에 활성 복제본 인스턴스가 없으면 읽기 요청이 기본 인스턴스로 라우팅됩니다. secondaryPreferred 읽기 기본 설정은 읽기 전용 복제본에서 읽기를 처리할 때 최종적 일관된 읽기를 생성합니다. 기본 인스턴스에서 읽기를 처리할 때 (장애 조치 이벤트 제외) read-after-write 일관성을 제공합니다. secondaryPreferred읽기 기본 설정은 일관성보다 읽기 확장과 고가용성을 우선시하는 사용 사례에 적합합니다. read-after-write

    다음 예제에서는 secondaryPreferred 읽기 기본 설정을 지정합니다.

    db.example.find().readPref('secondaryPreferred')

     

  • nearest—클라이언트와 Amazon DocumentDB 클러스터의 모든 인스턴스 간에 측정된 지연 시간만을 기준으로 nearest 읽기 기본 설정 경로를 지정합니다. nearest 읽기 기본 설정은 읽기 전용 복제본에서 읽기를 처리할 때 최종적 일관된 읽기를 생성합니다. 기본 인스턴스에서 읽기를 처리할 때 read-after-write 일관성이 유지됩니다 (장애 조치 이벤트 제외). nearest읽기 기본 설정은 일관성 및 읽기 확장보다 최대한 낮은 읽기 지연 시간과 고가용성을 달성하는 것을 우선시하는 사용 사례에 적합합니다. read-after-write

    다음 예제에서는 nearest 읽기 기본 설정을 지정합니다.

    db.example.find().readPref('nearest')

고가용성

Amazon DocumentDB는 복제본을 기본 인스턴스의 장애 조치 대상으로 사용하여 가용성이 높은 클러스터 구성을 지원합니다. 기본 인스턴스가 실패하면 Amazon DocumentDB 복제본이 새 기본 인스턴스로 승격되며, 기본 인스턴스에 대한 읽기 및 쓰기 요청이 예외로 실패하는 짧은 중단이 발생합니다.

Amazon DocumentDB 클러스터에 복제본이 없는 경우, 기본 인스턴스는 실패 중에 다시 작성됩니다. 그러나 Amazon DocumentDB 복제본을 승격하는 것은 기본 인스턴스를 다시 만드는 것보다 훨씬 빠릅니다. 따라서 장애 조치 대상으로 하나 이상의 Amazon DocumentDB 복제본을 작성하는 것이 좋습니다.

장애 조치 대상으로 사용할 복제본은 기본 인스턴스와 동일한 인스턴스 클래스에 속해야 하며 기본 인스턴스와는 다른 가용 영역에 프로비저닝되어야 합니다. 장애 조치 대상으로 사용할 복제본을 제어할 수 있습니다.니다. 고가용성을 위해 Amazon DocumentDB를 구성하는 모범 사례는 Amazon DocumentDB 클러스터 내결함성에 대한 이해을 참조하십시오.

읽기 확장

Amazon DocumentDB 복제본은 읽기 규모 조정에 적합합니다. 클러스터 볼륨에서 이루어지는 읽기 작업 전용으로 사용됩니다. 즉 복제본이 쓰기는 처리하지 않습니다. 데이터 복제는 클러스터 볼륨 내에서 일어나며 인스턴스 간에는 일어나지 않습니다. 따라서 각 복제본의 리소스는 쿼리 처리에만 사용되지 데이터의 복제 및 쓰기에 사용되지 않습니다.

애플리케이션에 읽기 용량이 더 필요하면 클러스터에 신속하게 복제본을 추가할 수 있습니다(보통 10분 미만). 읽기 용량 요구 사항이 줄어들면 불필요한 복제본을 제거할 수 있습니다. Amazon DocumentDB 복제본에서는 필요한 읽기 용량에 대해서만 비용을 지불합니다.

Amazon DocumentDB는 읽기 환경설정 옵션을 사용하여 클라이언트 측 읽기 스케일링을 지원합니다. 자세한 내용은 Amazon DocumentDB 읽기 기본 설정을 참조하세요.

TTL 삭제

백그라운드 프로세스를 통해 생성된 TTL 인덱스 영역에서의 삭제는 특정 기간 내에 삭제된다고 보장할 수 없으며 가능한 한 빠른 시간 내에 수행됩니다. 인스턴스 크기, 인스턴스 리소스 사용률, 문서 크기 및 전체 처리량과 같은 요소가 TTL 삭제 소요 시간에 영향을 줄 수 있습니다.

TTL 모니터가 문서를 삭제하면 삭제할 때마다 IO 비용이 발생하므로 청구 금액이 증가합니다. 처리량 및 TTL 삭제율이 증가하면 IO 사용량 증가로 인해 청구 금액이 증가할 것으로 예상됩니다.

기존 컬렉션에 TTL 인덱스를 생성할 때는 인덱스를 생성하기 전에 만료된 문서를 모두 삭제해야 합니다. 현재 TTL 구현은 컬렉션에서 소량의 문서를 삭제하는 데 최적화되어 있는데, 이는 컬렉션에서 처음부터 TTL을 활성화한 경우 일반적으로 발생하며, 한 번에 많은 문서를 삭제해야 하는 경우 IOPS가 필요 이상으로 높아질 수 있습니다.

문서를 삭제하기 위해 TTL 인덱스를 작성하지 않으려면, 대신 시간을 기준으로 문서를 컬렉션으로 분할하고, 문서가 더 이상 필요하지 않을 때 해당 컬렉션을 삭제할 수 있습니다. 예를 들어, 일주일에 한 개의 컬렉션을 만들어 IO 비용을 들이지 않고도 삭제할 수 있습니다. 이 방법은 TTL 인덱스를 사용하는 것보다 훨씬 더 비용 효율적일 수 있습니다.

청구 가능 리소스

청구 가능한 Amazon DocumentDB 리소스 식별

Amazon DocumentDB는 완전 관리형 데이터베이스 서비스로서 인스턴스, 스토리지, I/O, 백업 및 데이터 전송 비용을 청구합니다. 자세한 내용은 Amazon DocumentDB(MongoDB와 호환됨) 요금을 참조하십시오.

계정에서 청구 대상 리소스를 검색하여 해당 리소스를 삭제하려면 AWS Management Console 또는 AWS CLI를 사용할 수 있습니다.

AWS Management Console 사용

AWS Management Console을 사용하여 주어진 AWS 리전에 프로비저닝한 Amazon DocumentDB 클러스터, 인스턴스 및 스냅샷을 검색할 수 있습니다.

클러스터, 인스턴스 및 스냅샷을 검색하려면
  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/docdb에서 Amazon DocumentDB 콘솔을 엽니다.

  2. 기본 리전 이외의 리전에서 청구 대상 리소스를 검색하려면 화면의 오른쪽 상단에서 검색하려는 AWS 리전을 선택합니다.

    
                            리전 선택기에 버지니아 북부가 표시되는 콘솔 스크린샷.
  3. 탐색 창에서 검색하려는 청구 대상 리소스의 유형을 선택합니다. 클러스터, 인스턴스 또는 스냅샷.

    
                            탐색 창에 클러스터, 인스턴스 및 스냅샷이 표시되는 콘솔 스크린샷.
  4. 해당 리전에 프로비저닝된 모든 클러스터, 인스턴스 또는 스냅샷이 오른쪽 창에 나열됩니다. 클러스터, 인스턴스 및 스냅샷에 요금이 청구됩니다.

AWS CLI 사용

AWS CLI을 사용하면 주어진 AWS 리전에 대해 프로비저닝한 Amazon DocumentDB 클러스터, 인스턴스 및 스냅샷을 검색할 수 있습니다.

클러스터 및 인스턴스를 검색하려면

다음 코드는 지정된 리전의 모든 클러스터 및 인스턴스를 나열합니다. 기본 리전에서 클러스터 및 인스턴스를 검색하려면 --region 파라미터를 생략할 수 있습니다.

Linux, macOS, Unix의 경우:

aws docdb describe-db-clusters \ --region us-east-1 \ --query 'DBClusters[?Engine==`docdb`]' | \ grep -e "DBClusterIdentifier" -e "DBInstanceIdentifier"

Windows의 경우:

aws docdb describe-db-clusters ^ --region us-east-1 ^ --query 'DBClusters[?Engine==`docdb`]' | ^ grep -e "DBClusterIdentifier" -e "DBInstanceIdentifier"

이 작업의 출력은 다음과 같이 표시됩니다.

"DBClusterIdentifier": "docdb-2019-01-09-23-55-38", "DBInstanceIdentifier": "docdb-2019-01-09-23-55-38", "DBInstanceIdentifier": "docdb-2019-01-09-23-55-382", "DBClusterIdentifier": "sample-cluster", "DBClusterIdentifier": "sample-cluster2",
스냅샷을 검색하려면

다음 코드는 지정된 리전의 모든 스냅샷을 나열합니다. 기본 리전에서 스냅샷을 검색하려면 --region 파라미터를 생략할 수 있습니다.

Linux, macOS, Unix의 경우:

aws docdb describe-db-cluster-snapshots \ --region us-east-1 \ --query 'DBClusterSnapshots[?Engine==`docdb`].[DBClusterSnapshotIdentifier,SnapshotType]'

Windows의 경우:

aws docdb describe-db-cluster-snapshots ^ --region us-east-1 ^ --query 'DBClusterSnapshots[?Engine==`docdb`].[DBClusterSnapshotIdentifier,SnapshotType]'

이 작업의 출력은 다음과 같이 표시됩니다.

[ [ "rds:docdb-2019-01-09-23-55-38-2019-02-13-00-06", "automated" ], [ "test-snap", "manual" ] ]

manual 스냅샷만 삭제하면 됩니다. Automated 스냅샷은 클러스터를 삭제할 때 함께 삭제됩니다.

불필요한 청구 대상 리소스 삭제

클러스터를 삭제하려면 먼저 해당 클러스터의 인스턴스를 모두 삭제해야 합니다.

  • 인스턴스를 삭제하려면 Amazon DocumentDB 인스턴스 삭제 단원을 참조하십시오.

    중요

    클러스터에서 인스턴스를 삭제하더라도 해당 클러스터와 연결된 스토리지 및 백업에 대해서는 계속 요금이 발생합니다. 모든 요금을 중단하려면 클러스터와 수동 스냅샷도 삭제해야 합니다.

  • 클러스터를 삭제하려면 아마존 DocumentDB 클러스터 삭제 단원을 참조하십시오.

  • 수동 스냅샷 삭제는 클러스터 스냅샷 삭제 단원을 참조하십시오.