Amazon DocumentDB Serverless 작동 방식 - Amazon DocumentDB

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

Amazon DocumentDB Serverless 작동 방식

개요

Amazon DocumentDB Serverless는 가장 까다롭고 매우 가변적인 워크로드에 적합합니다. 예를 들어 데이터베이스 사용량이 짧은 시간 동안 높게 나타나고 오랜 시간 동안 작업이 적거나 전혀 작업이 없을 수 있습니다. 정기 프로모션 이벤트를 진행하는 소매점, 게임 또는 스포츠 웹 사이트와 필요한 경우 보고서를 생성하는 데이터베이스가 예로 들 수 있습니다. 이외에도 개발 및 테스트 환경과 사용량이 빠르게 증가할 수 있는 새로운 애플리케이션도 있습니다. 이 경우와 다른 많은 경우에는 프로비저닝된 모델에서 용량을 미리 적절하게 구성하지 못할 수도 있습니다. 또한 초과 프로비저닝하여 사용하지 않는 용량이 있는 경우 비용이 더 많이 발생할 수 있습니다.

대조적으로, DocumentDB 프로비저닝된 클러스터는 안정적인 워크로드에 적합합니다. 프로비저닝된 클러스터에서는 미리 정의된 메모리 양, CPU 성능, I/O 대역폭 등이 있는 인스턴스 클래스를 선택합니다. 워크로드가 변경되면 라이터 및 리더의 인스턴스 클래스를 수동으로 수정합니다. 프로비저닝된 모델은 예상 소비 패턴에 앞서 용량을 조정할 수 있는 경우에 적합하며 클러스터에서 라이터 및 리더의 인스턴스 클래스를 변경하는 동안 발생하는 잠시 중단을 허용할 때 잘 작동합니다.

DocumentDB Serverless는 처음부터 즉시 확장 가능한 Serverless 클러스터를 지원하도록 설계되었습니다. DocumentDB Serverless는 프로비저닝된 라이터 및 리더와 동일한 수준의 보안 및 격리를 제공하도록 설계되었습니다. 이러한 측면은 멀티테넌트 서버리스 클라우드 환경에서 매우 중요합니다. 동적 크기 조정 메커니즘은 오버헤드가 매우 적기 때문에 데이터베이스 워크로드의 변화에 신속하게 대응할 수 있습니다. 또한 처리 수요의 급격한 증가에 대응할 수 있을 만큼 강력합니다.

DocumentDB Serverless를 사용하면 각 라이터 및 리더에 대한 특정 데이터베이스 용량에 얽매이지 않고 DocumentDB 클러스터를 생성할 수 있습니다. 최소 및 최대 용량 범위만 지정합니다. DocumentDB는 해당 용량 범위 내에서 클러스터에 있는 각 DocumentDB Serverless 라이터 또는 리더를 조정합니다. 각 라이터 또는 리더가 동적으로 확장할 수 있는 다중 AZ 클러스터를 사용하면 동적 확장 및 고가용성을 활용할 수 있습니다.

DocumentDB Serverless는 최소 및 최대 용량 사양에 따라 데이터베이스 리소스의 크기를 자동으로 조정합니다. 대부분의 크기 조정 이벤트 작업은 라이터 또는 리더를 동일한 호스트에 유지하기 때문에 확장이 빠릅니다. 드문 경우이지만 DocumentDB Serverless 라이터 또는 리더가 한 호스트에서 다른 호스트로 이동하는 경우 DocumentDB Serverless가 연결을 자동으로 관리합니다. 데이터베이스 클라이언트 애플리케이션 코드나 데이터베이스 연결 문자열을 변경할 필요가 없습니다.

DocumentDB Serverless의 경우 프로비저닝된 클러스터와 마찬가지로 스토리지 용량과 컴퓨팅 용량이 분리됩니다. DocumentDB Serverless 용량 및 규모 조정을 언급할 때 항상 컴퓨팅 용량이 증가하거나 감소하는 것을 의미합니다. 따라서 CPU 및 메모리 용량이 낮은 수준으로 축소되더라도 클러스터에 수 테라바이트의 데이터가 포함될 수 있습니다.

데이터베이스 서버를 프로비저닝 및 관리하는 대신 데이터베이스 용량을 지정합니다. 각 DocumentDB Serverless 라이터 또는 리더의 실제 용량은 워크로드를 바탕으로 시간이 지남에 따라 달라집니다. 이러한 메커니즘에 대한 자세한 내용은 Amazon DocumentDB Serverless 규모 조정의 내용을 참조하세요.

Amazon DocumentDB 클러스터에 대한 구성

각 DocumentDB Serverless 클러스터에 대해 DocumentDB Serverless 용량 또는 프로비저닝된 용량을 선택하거나 두 가지 모두를 조합해서 선택할 수 있습니다.

혼합 구성 클러스터라고 하는 DocumentDB Serverless 및 프로비저닝된 용량을 모두 포함하는 클러스터를 설정할 수 있습니다. 예를 들어, DocumentDB Serverless 라이터에서 사용할 수 있는 것보다 많은 읽기/쓰기 용량이 필요하다고 가정하겠습니다. 이 경우 대규모로 프로비저닝된 라이터를 사용하여 클러스터를 설정할 수 있습니다. 그런 다음 리더에 DocumentDB Serverless를 계속 사용할 수 있습니다. 또는 클러스터의 쓰기 워크로드는 다양하지만 읽기 워크로드는 일정하다고 가정합니다. 이 경우 DocumentDB Serverless 라이터와 하나 이상의 프로비저닝된 리더로 클러스터를 설정할 수 있습니다.

모든 용량을 DocumentDB Serverless에서 관리하는 클러스터를 설정할 수도 있습니다. 이렇게 하려면 새 클러스터를 생성하고 처음부터 DocumentDB Serverless를 사용할 수 있습니다. 또는 기존 클러스터에서 프로비저닝된 모든 용량을 DocumentDB Serverless로 교체할 수 있습니다. DocumentDB Serverless로 새 클러스터를 생성하거나 기존 클러스터를 DocumentDB Serverless로 전환하는 절차는 Amazon DocumentDB Serverless를 사용하는 클러스터 생성Amazon DocumentDB Serverless로 마이그레이션의 내용을 참조하세요.

클러스터에서 DocumentDB Serverless를 전혀 사용하지 않으면 클러스터의 모든 라이터와 리더가 프로비저닝됩니다. 이것은 대부분의 사용자에게 친숙하고 가장 일반적인 클러스터입니다. 프로비저닝된 용량은 일정합니다. 요금은 비교적 쉽게 예측할 수 있습니다. 그러나 얼마나 많은 용량이 필요한지는 미리 예측해야 합니다. 경우에 따라 예측이 부정확하거나 용량 요구 사항이 변경될 수 있습니다. 이러한 경우 클러스터가 언더프로비저닝(기대치보다 더 느림) 또는 오버프로비저닝(기대치보다 더 비쌈)될 수 있습니다.

Amazon DocumentDB Serverless 규모 조정 용량

Amazon DocumentDB Serverless의 측정 단위는 DocumentDB 용량 단위(DCU)입니다. DocumentDB Serverless 조정 용량은 프로비저닝된 클러스터에 사용하는 인스턴스 클래스에 종속되지 않습니다.

각 DCU는 약 2기가바이트(GB)의 메모리로 해당 CPU 및 네트워킹의 합한 용량입니다. 이 측정 단위를 사용하여 데이터베이스 용량 범위를 지정합니다. ServerlessDatabaseCapacityDCUUtilization CloudWatch 지표는 데이터베이스가 실제로 사용하고 있는 용량과 해당 용량이 지정된 범위에 속하는 위치를 결정하는 데 도움이 됩니다.

언제든지 각 DocumentDB Serverless 라이터 또는 리더에는 용량이 있습니다. 용량은 DCU를 나타내는 부동 소수점 숫자로 표시됩니다. 라이터 또는 리더가 확장될 때마다 용량이 증가하거나 감소합니다. 이 값은 매초마다 측정됩니다. DocumentDB Serverless를 사용하려는 각 클러스터에 대해 용량 범위, 즉 각 DocumentDB Serverless 라이터 또는 리더가 조정할 수 있는 최소 및 최대 용량 값을 정의합니다. 용량 범위는 클러스터의 각 DocumentDB Serverless 라이터 또는 리더에 대해 동일합니다. 각 DocumentDB Serverless 라이터 또는 리더는 해당 범위의 어딘가에 해당하는 고유한 용량을 가지고 있습니다.

DocumentDB Serverless는 용량 범위가 0.5~256DCU인 DocumentDB 5.0.0 이상에서 지원됩니다.

정의할 수 있는 최소 DocumentDB Serverless 용량은 0.5DCU입니다. 지원되는 최대 용량 값보다 작거나 같은 경우 더 높은 숫자를 지정할 수 있습니다. 최소 용량을 작은 수로 설정하면 로드가 적은 클러스터가 최소한의 컴퓨팅 리소스를 소비할 수 있습니다. 동시에 연결을 즉시 수락하고 사용량이 많을 때 확장할 준비가 되어 있습니다.

각 라이터 또는 리더가 버퍼 풀에서 애플리케이션의 작업 집합을 보유할 수 있도록 최소값을 설정하는 것이 좋습니다. 이렇게 하면 유휴 기간 동안 버퍼 풀의 내용이 삭제되지 않습니다. 규모 조정 범위를 선택할 때 모든 고려 사항은 DocumentDB Serverless 클러스터의 규모 조정 용량 범위 선택 섹션을 참조하세요.

다중 AZ 배포에서 리더를 구성하는 방법에 따라 리더의 용량은 라이터의 용량에 연결되거나 별도로 구성될 수 있습니다. 이를 수행하는 방법에 대한 자세한 내용은 서버리스 리더의 승격 계층 보기 및 수정 페이지를 참조하세요.

DocumentDB Serverless 모니터링에는 시간 경과에 따른 DB 클러스터의 라이터 및 리더 용량 값 측정이 포함됩니다. 데이터베이스가 최소 용량으로 축소되지 않는 경우 최소값을 조정하고 데이터베이스 애플리케이션을 최적화하는 등의 작업을 수행할 수 있습니다. 데이터베이스가 지속적으로 최대 용량에 도달하면 최대값을 늘리는 등의 작업을 수행할 수 있습니다. 또한 데이터베이스 애플리케이션을 최적화하고 더 많은 리더에 쿼리 로드를 분산시킬 수 있습니다.

DocumentDB Serverless 용량에 대한 요금은 DCU 시간으로 측정됩니다. DocumentDB Serverless 요금 계산 방법에 대한 자세한 내용은 Amazon DocumentDB 요금을 참조하세요. 클러스터의 총 라이터 및 리더 수가 n개라고 가정해 보겠습니다. 이 경우 클러스터는 데이터베이스 작업을 실행하지 않을 때 대략적으로 n x 최소 DCU를 사용합니다. DocumentDB 자체는 약간의 로드를 유발하는 모니터링 또는 유지 관리 작업을 실행할 수 있습니다. 해당 클러스터는 데이터베이스가 전체 용량으로 실행 중일 때 n x 최대 DCU만 소비합니다.

적절한 최소 및 최대 DCU 값 선택에 대한 자세한 내용은 DocumentDB Serverless 클러스터의 규모 조정 용량 범위 선택 페이지를 참조하세요. 지정하는 최소 및 최대 DCU 값도 일부 Amazon DocumentDB 인스턴스 제한에 영향을 미칩니다. 용량 범위와 인스턴스 제한 간의 상호 작용에 대한 자세한 내용은 Amazon DocumentDB Serverless 인스턴스 제한 섹션을 참조하세요.

Amazon DocumentDB Serverless 규모 조정

각 DocumentDB Serverless 라이터 또는 리더에 대해 Amazon DocumentDB는 CPU, 메모리 및 네트워크와 같은 리소스 사용률을 지속적으로 추적합니다. 이러한 측정값을 통칭하여 로드라고 합니다. 로드에는 애플리케이션에서 수행한 데이터베이스 작업이 포함됩니다. 또한 데이터베이스 서버 및 Amazon DocumentDB 관리 작업에 대한 백그라운드 처리가 포함됩니다. 이 중 하나로 인해 용량이 제한되면 DocumentDB Serverless가 스케일 업됩니다. DocumentDB Serverless는 이를 통해 해결할 수 있는 성능 문제를 감지하면 스케일 업됩니다. Amazon DocumentDB Serverless 모니터링의 절차를 사용하여 리소스 사용률과 DocumentDB Serverless가 스케일링에 미치는 영향을 모니터링할 수 있습니다.

로드는 클러스터의 라이터와 리더에 따라 다를 수 있습니다. 라이터는 읽기 및 쓰기 작업을 모두 지원하고, 클러스터 볼륨의 모든 데이터 수정을 실행합니다. 리더는 읽기 전용 요청을 처리할 수 있습니다.

규모 조정은 데이터베이스의 DocumentDB Serverless 용량을 늘리거나 줄이는 작업입니다. DocumentDB Serverless를 사용하면 각 라이터와 리더는 각 현재의 용량 값을 DCU 단위로 보유하게 됩니다. DocumentDB Serverless는 현재 용량이 너무 낮아 로드를 처리할 수 없는 경우 라이터 또는 리더를 더 높은 용량으로 스케일 업합니다. 현재 용량이 필요 이상으로 높으면 라이터 또는 리더를 더 낮은 용량으로 축소합니다.

DocumentDB Serverless는 용량을 점진적으로 늘릴 수 있습니다. 워크로드 수요가 라이터 또는 리더의 현재 데이터베이스 용량에 도달하기 시작하면 DocumentDB Serverless는 해당 라이터 또는 리더의 DCU를 늘립니다. DocumentDB Serverless는 사용된 리소스에 대해 최상의 성능을 제공하는 데 필요한 증가분만큼 용량을 조정합니다. 스케일링은 0.5DCU의 작은 단위로 발생합니다. 현재 용량이 클수록 크기 확장분이 커지므로 크기 조정이 빨라질 수 있습니다.

DocumentDB Serverless 스케일링은 매우 빈번하고 세부적이며 중단되지 않기 때문에 AWS Management 콘솔에서처럼 개별 이벤트를 일으키지 않습니다. 대신 serverlessDatabaseCapacityDCUUtilization과 같은 Amazon CloudWatch 지표를 측정하고 시간 경과에 따른 최소값, 최대값 및 평균값을 추적할 수 있습니다. DocumentDB Serverless 모니터링에 대한 자세한 내용은 Amazon DocumentDB Serverless 모니터링 섹션을 참조하세요.

스케일 업이나 스케일 다운은 다음과 같은 원인으로 발생할 수 있습니다.

  • 메모리 사용률

  • CPU 사용률

  • 네트워크 사용률

  • 스토리지 사용률

DocumentDB Serverless 인스턴스에서 이러한 스케일 업/다운의 원인을 모니터링할 수 있습니다. 자세한 내용은 Amazon DocumentDB Serverless 모니터링 단원을 참조하십시오.

연결된 라이터와 동시에 또는 라이터와 독립적으로 리더를 확장하도록 선택할 수 있습니다. 해당 리더에 대한 프로모션 티어를 지정하면 됩니다.

  • 승격 티어 0 및 1의 DocumentDB Serverless 리더는 라이터와 동시에 규모가 조정됩니다. 이러한 확장 동작은 우선 순위 티어 0 및 1의 리더가 가용성에 이상적입니다. 장애 조치(failover)의 경우 라이터의 워크로드를 인계할 수 있도록 적절한 용량으로 항상 크기가 조정되기 때문입니다.

  • 프로모션 티어 2~15의 리더는 라이터와 독립적으로 확장됩니다. 각 리더는 클러스터에 대해 지정한 최소 및 최대 DCU 값 내에 유지됩니다. 리더가 연결된 라이터 DB와 독립적으로 확장되면 라이터가 계속해서 많은 양의 트랜잭션을 처리하는 동안 유휴 상태가 되어 축소될 수 있습니다. 더 낮은 프로모션 티어에서 사용할 수 있는 다른 판독기가 없는 경우 장애 조치 대상으로 계속 사용할 수 있습니다. 그러나 라이터로 프로모션되는 경우 라이터의 전체 워크로드를 처리하기 위해 확장해야 할 수 있습니다.

서버리스 인스턴스의 승격 티어 보기 및 변경에 대한 자세한 내용은 서버리스 리더의 승격 계층 보기 및 수정 섹션을 참조하세요.

DocumentDB Serverless의 규모 조정은 데이터베이스 연결이 열려 있는 동안, 트랜잭션이 처리 중인 동안, 그리고 그 밖의 상황에서 일어날 수 있습니다. DocumentDB Serverless는 규모 조정을 시작할 조용한 지점이 될 때까지 기다리지 않습니다. 확장은 진행 중인 데이터베이스 작업을 방해하지 않습니다.

워크로드에 단일 라이터 및 단일 리더에서 사용할 수 있는 것보다 더 많은 읽기 용량이 필요한 경우 클러스터에 여러 DocumentDB Serverless 리더를 추가할 수 있습니다. 각 DocumentDB Serverless 리더는 클러스터에 대해 지정한 최소 및 최대 용량 값 범위 내에서 조정할 수 있습니다. 클러스터의 리더 엔드포인트를 사용하여 읽기 전용 세션을 리더로 보내고 라이터의 로드를 줄일 수 있습니다.

DocumentDB Serverless가 규모 조정을 수행하는지 여부와 규모 조정이 시작된 후 일어나는 속도는 클러스터의 최소 및 최대 DCU 설정에 따라 달라집니다. 또한 리더가 라이터와 함께 확장되도록 구성되었는지 또는 독자적으로 구성되었는지에 따라 다릅니다. 규모 조정 구성에 대한 자세한 내용은 Amazon DocumentDB Serverless 규모 조정 구성 섹션을 참조하세요.

유휴 상태(0.5DCU)

Amazon DocumentDB Serverless 라이터 또는 리더가 유휴 상태에 있을 때 클러스터의 MinCapacity가 0.5로 구성되어 있으면 DocumentDB Serverless 인스턴스는 0.5DCU의 유휴 상태로의 스케일 다운을 지원합니다.

유휴 상태에서 DocumentDB Serverless 인스턴스는 대부분의 프로덕션 워크로드를 지원하기에 충분한 CPU 컴퓨팅 용량이 없지만 새 워크로드를 지원하기 위해 빠르게 스케일 업할 준비가 되어 있는 상태입니다. 유휴 상태가 아닌 상태에서 DocumentDB Serverless 인스턴스는 일반적으로 최소 1.0~2.5DCU가 필요합니다. 따라서 DocumentDB Serverless 인스턴스가 유휴 상태에서 유휴 상태가 아닌 상태로 스케일 업되면 1.0~2.5DCU(또는 더 낮은 경우 MaxCapacity 값)로 바로 스케일 업됩니다.

유휴 시 0.5DCU의 스케일 다운을 지원하기 위해 MinCapacity를 1.0DCU 이하로 구성한 경우 인스턴스에 제한이 걸립니다. MinCapacity 구성이 제한에 어떻게 영향을 미치는지에 대한 자세한 내용은 Amazon DocumentDB Serverless 인스턴스 제한 섹션을 참조하세요.