Amazon DocumentDB Serverless 모니터링 - Amazon DocumentDB

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

Amazon DocumentDB Serverless 모니터링

Amazon DocumentDB 모니터링에 대해 자세히 알아보려면 Amazon DocumentDB 모니터링 섹션을 참조하세요.

메모리 부족: 호환되지 않는 파라미터 상태

Serverless 인스턴스 중 하나가 지속적으로 최대 용량 한도에 도달하는 경우 Amazon DocumentDB는 인스턴스를 incompatible-parameters 상태로 설정하여 이 조건을 나타냅니다. 자세한 내용은 메모리 부족 오류 방지 단원을 참조하십시오.

DocumentDB Serverless에 대한 Amazon CloudWatch 지표

Amazon DocumentDB에 CloudWatch를 사용하는 방법에 대해 자세히 알아보려면 CloudWatch를 사용하여 Amazon DocumentDB 모니터링 섹션을 참조하세요.

CloudWatch에서 서버리스 인스턴스를 보고 ServerlessDatabaseCapacity 지표를 통해 각 인스턴스에서 소비한 용량을 모니터링할 수 있습니다. DatabaseConnections 및 Queries와 같은 모든 표준 DocumentDB CloudWatch 지표를 모니터링할 수도 있습니다. Amazon DocumentDB에 대해 모니터링할 수 있는 CloudWatch 지표의 전체 목록은 CloudWatch를 사용하여 Amazon DocumentDB 모니터링 섹션을 참조하세요. 다음 CloudWatch 인스턴스 수준 지표는 DocumentDB Serverless 인스턴스가 스케일 업 및 스케일 다운되는 방식을 이해하기 위해 모니터링하는 데 중요합니다. 이러한 모든 지표는 매초마다 계산됩니다. 그렇게 하면 서버리스 인스턴스의 현재 상태를 모니터링할 수 있습니다. 서버리스 인스턴스가 용량과 관련된 지표 임계값에 도달하면 알림을 받도록 경보를 설정할 수 있습니다. 최소 및 최대 용량 설정이 적절한지 또는 조정이 필요한지 결정할 수 있습니다. 데이터베이스의 효율성을 최적화하기 위해 집중할 부분을 결정할 수 있습니다.

  • ServerlessDatabaseCapacity - 인스턴스 수준 지표로서 현재 인스턴스 용량이 나타내는 DCU 숫자를 보고합니다. 클러스터 수준의 지표로 클러스터 내 모든 DocumentDB Serverless 인스턴스의 ServerlessDatabaseCapacity 값 평균을 나타냅니다.

  • DCUUtilization. - 이 지표는 DocumentDB Serverless의 새로운 지표입니다. 이 값은 백분율로 표시됩니다. ServerlessDatabaseCapacity 지표의 값을 클러스터의 최대 DCU 값으로 나눈 값으로 계산됩니다. 이 지표를 해석하고 조치를 취하려면 다음 지침을 고려하세요.

    • 이 지표가 100.0 값에 가까워지면 인스턴스가 가능한 한 높게 스케일 업된 것입니다. 클러스터에 대한 최대 DCU 설정을 늘리는 것이 좋습니다. 이렇게 하면 라이터와 리더 인스턴스 모두 더 높은 용량으로 조정할 수 있습니다.

    • 읽기 전용 워크로드로 인해 리더 인스턴스가 100.0DCUUtilization에 접근하는 반면 라이터 인스턴스는 최대 용량에 근접하지 않는다고 가정해보겠습니다. 이 경우 클러스터에 리더 인스턴스를 추가하는 것이 좋습니다. 이렇게 하면 워크로드의 읽기 전용 부분을 더 많은 인스턴스에 분산시켜 각 리더 인스턴스의 로드를 줄일 수 있습니다.

    • 성능과 확장성이 주요 고려 사항인 프로덕션 애플리케이션을 실행하고 있다고 가정합니다. 이 경우 클러스터의 최대 DCU 값을 높은 값으로 설정할 수 있습니다. 목표는 DCUUtilization 지표가 항상 100.0 아래에 있도록 하는 것입니다. 최대 DCU 값이 높으면 데이터베이스 활동이 예기치 않게 급증하는 경우에 충분한 공간이 확보되어 있다는 확신을 가질 수 있습니다. 실제로는 사용한 데이터베이스 용량에 대해서만 요금이 청구됩니다.

  • CPUUtilization - 이 지표는 프로비저닝된 인스턴스와 DocumentDB Serverless에서 다르게 해석됩니다. DocumentDB Serverless의 경우 이 값은 현재 사용 중인 CPU의 양을 클러스터의 최대 DCU 값 아래에서 사용 가능한 CPU 용량으로 나눈 값입니다. Amazon DocumentDB는 이 값을 자동으로 모니터링하고 인스턴스가 CPU 용량의 높은 비율을 지속적으로 사용하는 경우 서버리스 인스턴스를 스케일 업합니다.

    이 지표가 100.0 값에 가까워지면 인스턴스가 최대 CPU 용량에 도달한 것입니다. 클러스터에 대한 최대 DCU 설정을 늘리는 것이 좋습니다. 이 지표가 리더 인스턴스에서 100.0 값에 가까워지는 경우 클러스터에 리더 인스턴스를 추가하는 것이 좋습니다. 이렇게 하면 워크로드의 읽기 전용 부분을 더 많은 인스턴스에 분산시켜 각 리더 인스턴스의 로드를 줄일 수 있습니다.

  • FreeableMemory - 이 값은 DocumentDB Serverless 인스턴스가 최대 용량으로 조정될 때 사용 가능한 미사용 메모리의 양을 나타냅니다. 현재 용량이 최대 용량 미만인 모든 DCU에 대해 이 값은 약 2GiB씩 증가합니다. 따라서 인스턴스가 가능한 한 높게 스케일 업될 때까지 이 지표는 0에 접근하지 않습니다.

    이 지표가 0 값에 접근하면 인스턴스가 가능한 한 스케일 업되었으며 사용 가능한 메모리 한도에 근접한 것입니다. 클러스터에 대한 최대 DCU 설정을 늘리는 것이 좋습니다. 이 지표가 리더 인스턴스에서 0 값에 가까워지는 경우 클러스터에 리더 인스턴스를 추가하는 것이 좋습니다. 이렇게 하면 워크로드의 읽기 전용 부분을 더 많은 인스턴스에 분산하여 각 리더 인스턴스의 메모리 사용량을 줄일 수 있습니다.

  • TempStorageIops - 인스턴스에 연결된 로컬 스토리지에서 수행된 IOPS 수입니다. 여기에는 읽기와 쓰기에 모두 대한 IOPS가 포함됩니다. 이 지표는 개수를 나타내며 초당 한 번 측정됩니다. DocumentDB Serverless에 대한 새로운 지표입니다. 자세한 내용은 CloudWatch를 사용하여 Amazon DocumentDB 모니터링을 참조하세요.

  • TempStorageThroughput - 인스턴스와 연결된 로컬 스토리지에서 전송되는 데이터의 양입니다. 이 지표는 개수를 나타내며 초당 한 번 측정됩니다. DocumentDB Serverless에 대한 새로운 지표입니다. 자세한 내용은 CloudWatch를 사용하여 Amazon DocumentDB 모니터링을 참조하세요.

일반적으로 DocumentDB Serverless 인스턴스에 대한 대부분의 확장은 메모리 사용량과 CPU 활동으로 인해 발생합니다. TempStorageIopsTempStorageThroughput 지표는 인스턴스와 로컬 스토리지 디바이스 간의 전송에 대한 네트워크 활동이 예상치 못한 용량 증가의 원인이 되는 드문 경우를 진단하는 데 도움이 될 수 있습니다. 다른 네트워크 활동을 모니터링하려면 다음과 같은 기존 지표를 사용할 수 있습니다.

  • NetworkReceiveThroughput

  • NetworkThroughput

  • NetworkTransmitThroughput

  • StorageNetworkReceiveThroughput

  • StorageNetworkThroughput

  • StorageNetworkTransmitThroughput

DocumentDB 서버리스 CloudWatch 지표가 AWS 청구서에 적용되는 방법

AWS 청구서의 DocumentDB 서버리스 요금은 모니터링할 수 있는 것과 동일한 ServerlessDatabaseCapacity 지표를 기반으로 계산됩니다. DocumentDB Serverless 용량을 한 시간의 일부만 사용하는 경우 청구 메커니즘은 이 지표에 대해 계산된 CloudWatch 평균과 다를 수 있습니다. 시스템 문제로 인해 CloudWatch 지표를 짧은 기간 동안 사용할 수 없는 경우에도 다를 수 있습니다. 따라서 청구서에 DCU-시간 값이 ServerlessDatabaseCapacity 평균값에서 직접 계산하는 경우와 약간 다를 수 있습니다.

DocumentDB Serverless 지표에 대한 Amazon CloudWatch CLI 명령의 예

다음 AWS CLI 예제에서는 DocumentDB 서버리스와 관련된 가장 중요한 CloudWatch 지표를 모니터링하는 방법을 보여줍니다. 각 경우에 --dimensions 파라미터의 Value= 문자열을 고유한 DocumentDB Serverless 인스턴스의 식별자로 바꿉니다.

다음 Linux 예제는 1시간 동안 10분마다 측정된 인스턴스의 최소, 최대 및 평균 용량 값을 표시합니다. Linux date 명령은 현재 날짜 및 시각을 기준으로 시작 및 종료 시각을 지정합니다. --query 파라미터의 sort_by 함수는 Timestamp 필드를 기준으로 결과를 시간순으로 정렬합니다.

aws cloudwatch get-metric-statistics \ --metric-name "ServerlessDatabaseCapacity" \ --start-time "$(date -d '1 hour ago')" \ --end-time "$(date -d 'now')" \ --period 600 \ --namespace "AWS/DocDB" \ --statistics Minimum Maximum Average \ --dimensions Name=DBInstanceIdentifier,Value=my_instance \ --query 'sort_by(Datapoints[*].{min:Minimum,max:Maximum,avg:Average,ts:Timestamp},&ts)' \ --output table

다음 Linux 예제는 클러스터에 있는 인스턴스의 용량 모니터링을 보여줍니다. 인스턴스의 최소, 최대 및 평균 용량 사용률을 측정합니다. 측정은 3시간 동안 매시간에 한 번씩 측정됩니다. 이 예에서는 고정된 수의 DCU를 나타내는 ServerlessDatabaseCapacity 대신 DCU에 대한 상한의 백분율을 나타내는 DCUUtilization 지표를 사용합니다. 이렇게 하면 용량 범위에서 최소 및 최대 DCU 값의 실제 수치를 알 필요가 없습니다. 0에서 100 사이의 백분율을 볼 수 있습니다.

aws cloudwatch get-metric-statistics \ --metric-name "DCUUtilization" \ --start-time "$(date -d '3 hours ago')" \ --end-time "$(date -d 'now')" \ --period 3600 \ --namespace "AWS/DocDB" \ --statistics Minimum Maximum Average \ --dimensions Name=DBInstanceIdentifier,Value=my_instance \ --query 'sort_by(Datapoints[*].{min:Minimum,max:Maximum,avg:Average,ts:Timestamp},&ts)' \ --output table

다음 Linux 예제는 이전 예제와 유사한 측정을 수행합니다. 이 경우 측정은 CPUUtilization 지표에 대한 것입니다. 측정은 1시간 동안 10분마다 수행됩니다. 이 수치는 인스턴스의 최대 용량 설정까지 사용 가능한 CPU 리소스를 기준으로 사용된 사용 가능한 CPU의 백분율을 나타냅니다.

aws cloudwatch get-metric-statistics \ --metric-name "CPUUtilization" \ --start-time "$(date -d '1 hour ago')" \ --end-time "$(date -d 'now')" \ --period 600 \ --namespace "AWS/DocDB" \ --statistics Minimum Maximum Average \ --dimensions Name=DBInstanceIdentifier,Value=my_instance \ --query 'sort_by(Datapoints[*].{min:Minimum,max:Maximum,avg:Average,ts:Timestamp},&ts)' \ --output table

다음 Linux 예제는 이전 예제와 유사한 측정을 수행합니다. 이 경우 측정은 FreeableMemory 지표에 대한 것입니다. 측정은 1시간 동안 10분마다 수행됩니다.

aws cloudwatch get-metric-statistics \ --metric-name "FreeableMemory" \ --start-time "$(date -d '1 hour ago')" \ --end-time "$(date -d 'now')" \ --period 600 \ --namespace "AWS/DocDB" \ --statistics Minimum Maximum Average \ --dimensions Name=DBInstanceIdentifier,Value=my_instance \ --query 'sort_by(Datapoints[*].{min:Minimum,max:Maximum,avg:Average,ts:Timestamp},&ts)' \ --output table

성능 개선 도우미로 DocumentDB Serverless 성능 모니터링

성능 개선 도우미를 사용하여 DocumentDB Serverless 인스턴스의 성능을 모니터링할 수 있습니다. 성능 개선 도우미 프로시저는 성능 개선 도우미로 모니터링 페이지를 참조하세요.

다음과 같은 새로운 성능 개선 도우미 카운터가 DocumentDB Serverless 인스턴스에 적용됩니다.

  • os.general.serverlessDBCapacity - 인스턴스의 현재 용량(DCU 단위)입니다. 인스턴스에 대한 ServerlessDatabaseCapacity CloudWatch 지표에 해당하는 값입니다.

  • os.general.dcuUtilization - 구성된 최대 용량에서 현재 용량의 백분율입니다. 인스턴스에 대한 DCUUtilization CloudWatch 지표에 해당하는 값입니다.

  • os.general.maxConfiguredDcu - 이 DocumentDB Serverless 인스턴스에 대해 구성한 최대 용량입니다. DCU로 측정됩니다.

  • os.general.minConfiguredDcu - 이 DocumentDB Serverless 인스턴스에 대해 구성한 최소 용량입니다. DCU로 측정됩니다.

성능 개선 도우미 카운터의 전체 목록은 카운터 지표에 대한 성능 개선 도우미 페이지를 참조하세요.

성능 개선 도우미에서 DocumentDB Serverless 인스턴스에 대해 vCPU 값이 표시되는 경우 해당 값은 인스턴스에 대한 DCU 값을 기반으로 한 추정치를 나타냅니다. 기본 간격인 1분 간격으로 모든 분수 vCPU 값은 가장 가까운 정수로 반올림됩니다. 더 긴 간격의 경우 표시된 vCPU 값은 분당 정수 vCPU 값의 평균입니다.