CloudWatch를 사용하여 Amazon DocumentDB 모니터링 - Amazon DocumentDB

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

CloudWatch를 사용하여 Amazon DocumentDB 모니터링

Amazon DocumentDB(MongoDB 호환)는 Amazon CloudWatch와 통합되므로 클러스터의 운영 지표를 수집하고 분석할 수 있습니다. CloudWatch 콘솔, Amazon DocumentDB 콘솔, AWS Command Line Interface (AWS CLI), 또는 CloudWatch API를 사용하여 이러한 지표를 모니터링할 수 있습니다.

또한 CloudWatch를 사용하면 지표 값이 지정한 임계값을 위반할 경우 알림을 받을 수 있도록 알람을 설정할 수 있습니다. 위반이 발생할 경우 수정 조치를 취하기 위해 Amazon CloudWatch Events를 설정할 수도 있습니다. CloudWatch 및 알람 사용에 대한 자세한 내용은 Amazon CloudWatch 설명서를 참조하십시오.

Amazon DocumentDB 지표

Amazon DocumentDB 클러스터 및 인스턴스의 상태 및 성능을 모니터링하려면 Amazon DocumentDB 콘솔에서 다음 지표를 볼 수 있습니다.

참고

다음 표의 지표는 인스턴스 기반 클러스터와 탄력적 클러스터 모두에 적용됩니다.

리소스 사용률
지표 설명
BackupRetentionPeriodStorageUsed Amazon DocumentDB의 보존 기간 내에서 시점 복원 기능을 지원하는 데 사용되는 GiB의 총 백업 저장소 양입니다. TotalBackupStorageBilled 지표를 통해 보고되는 총계에 포함됩니다. 각 Amazon DocumentDB 클러스터마다 개별적으로 계산됩니다.
ChangeStreamLogSize 클러스터에서 변경 스트림 로그를 저장하는 데 사용하는 스토리지의 양(MB)입니다. 이 값은 클러스터의 전체 스토리지 하위 집합(VolumeBytesUsed)이며 클러스터 비용에 영향을 줍니다. 스토리지 요금 정보는 Amazon DocumentDB 제품 페이지를 참조하십시오. 변경 스트림 로그 크기는 클러스터에서 발생하는 변경 양과 변경 스트림 장기 보존 기간의 함수입니다. 변경 스트림에 대한 자세한 내용은 Amazon DocumentDB에서 변경 스트림 사용 단원을 참조하십시오.
CPUUtilization 인스턴스의 CPU 사용률
DatabaseConnections 1분 간격으로 취해진 인스턴스에서 열린 연결 수입니다.
DatabaseConnectionsMax 1분 동안 인스턴스당 열려 있는 최대 데이터베이스 연결 수입니다.
DatabaseCursors 1분 간격으로 촬영한 인스턴스에서 열린 커서 수입니다.
DatabaseCursorsMax 1분 동안 인스턴스에서 열린 커서의 최대 수입니다.
DatabaseCursorsTimedOut 1분 동안 제한 시간이 초과된 커서 수입니다.
FreeableMemory 사용 가능한 RAM 크기(바이트).
FreeLocalStorage

이 지표는 각 인스턴스에서 임시 테이블 및 로그로 사용할 수 있는 스토리지 크기를 보고합니다. 이 값은 인스턴스 클래스에 따라 달라집니다. 인스턴스 클래스를 큰 것으로 선택하면 인스턴스의 여유 스토리지 공간을 늘릴 수 있습니다.

LowMemThrottleQueueDepth

1분 간격으로 측정한 가용 메모리 부족으로 인해 제한 현상이 발생한 요청의 대기열 길이입니다.

LowMemThrottleMaxQueueDepth

1분 동안 사용 가능한 메모리 부족으로 병목 현상이 발생하는 요청의 최대 대기열 깊이입니다.

LowMemNumOperationsThrottled

1분 동안 사용 가능한 메모리 부족으로 인해 제한 현상이 발생한 요청 수입니다.

SnapshotStorageUsed 백업 보존 기간 밖에 있는 특정 Amazon DocumentDB 클러스터에 대한 모든 스냅샷이 사용한 GiB의 백업 저장소의 총 양입니다. TotalBackupStorageBilled 지표를 통해 보고되는 총계에 포함됩니다. 각 Amazon DocumentDB 클러스터마다 개별적으로 계산됩니다.
SwapUsage 인스턴스에서 사용된 스왑 공간 크기
TotalBackupStorageBilled 지정된 Amazon DocumentDB 클러스터에 대해 청구되는 GiB의 총 백업 저장소 양입니다. BackupRetentionPeriodStorageUsedSnapshotStorageUsed 지표로 측정되는 백업 스토리지를 포함합니다. 각 Amazon DocumentDB 클러스터마다 개별적으로 계산됩니다.
TransactionsOpen 1분 간격으로 측정한 인스턴스에서 열린 트랜잭션 수입니다.
TransactionsOpenMax 1분 동안 인스턴스에서 열린 최대 트랜잭션 수입니다.
VolumeBytesUsed 클러스터가 사용하는 스토리지의 양(바이트)입니다. 이 값은 클러스터의 비용에 영향을 미칩니다. 요금 정보는 Amazon DocumentDB 제품 페이지를 참조하십시오.
지연 시간
지표 설명
DBClusterReplicaLagMaximum 클러스터의 기본 인스턴스와 각 Amazon DocumentDB 인스턴스 간의 최대 지연 시간(밀리초)입니다.
DBClusterReplicaLagMinimum 기본 인스턴스와 클러스터의 각 복제본 인스턴스 사이에 발생하는 최소 지연 시간(밀리초)
DBInstanceReplicaLag 기본 인스턴스에서 복제본 인스턴스로 업데이트를 복제할 때의 지연 시간(밀리초)
ReadLatency 디스크 I/O 연산당 평균 처리 시간입니다.
WriteLatency 디스크 I/O 연산당 평균 처리 시간(밀리초)
작업
지표 설명
DocumentsDeleted 1분 동안 삭제된 문서 수입니다.
DocumentsInserted 1분 동안 삽입된 문서 수입니다.
DocumentsReturned 1분 동안 반환된 문서 수입니다.
DocumentsUpdated 1분 동안 업데이트된 문서 수.
OpcountersCommand 1분 동안 실행된 명령의 수입니다.
OpcountersDelete 1분 동안 실행된 삭제 작업 수입니다.
OpcountersGetmore 1분 동안 발행된 겟모어(getmores)의 수입니다.
OpcountersInsert 1분 동안 실행된 인서트 작업 횟수.
OpcountersQuery 1분 동안 실행된 쿼리 수입니다.
OpcountersUpdate 1분 동안 실행된 업데이트 작업 수입니다.
TransactionsStarted 1분 동안 인스턴스에서 시작된 트랜잭션 수입니다.
TransactionsCommitted 1분 동안 인스턴스에서 커밋된 트랜잭션 수입니다.
TransactionsAborted 1분 동안 인스턴스에서 중단된 트랜잭션 수입니다.
TTLDeletedDocuments TTLMonitor가 1분 동안 삭제한 문서 수입니다.
처리량
지표 설명
NetworkReceiveThroughput 클러스터의 인스턴스 하나가 클라이언트에서 수신하는 네트워크 처리량(bps) 이 처리량에서 클러스터의 인스턴스와 클러스터 볼륨 간 네트워크 트래픽은 제외됩니다.
NetworkThroughput Amazon DocumentDB 클러스터의 각 인스턴스에서 클라이언트에서 수신 및 클라이언트로 전송된 네트워크 처리량(초당 바이트)입니다. 이 처리량에서 클러스터의 인스턴스와 클러스터 볼륨 간 네트워크 트래픽은 제외됩니다.
NetworkTransmitThroughput 클러스터의 인스턴스 하나가 클라이언트로 전송하는 네트워크 처리량(bps). 이 처리량에서 클러스터의 인스턴스와 클러스터 볼륨 간 네트워크 트래픽은 제외됩니다.
ReadIOPS 초당 평균 디스크 읽기 I/O 연산 수 Amazon DocumentDB는 IOPS를 1분 간격으로 별도로 읽고 쓰는 것을 보고합니다.
ReadThroughput 초당 디스크에서 읽은 평균 바이트 수입니다.
VolumeReadIOPs

5분마다 보고되는 클러스터 볼륨에서 요금이 청구된 읽기 I/O 작업의 평균 수. 요금이 청구된 읽기 작업은 클러스터 볼륨 수준에서 계산되며, 클러스터의 모든 인스턴스에 대해 집계된 후 5분 간격으로 보고됩니다. 이 값은 5분 동안의 읽기 작업 측정치 값을 사용하여 계산됩니다. 요금 부과된 읽기 작업 측정치의 값을 300로 나눠서 초당 요금 부과된 읽기 작업의 양을 확인할 수 있습니다.

예를 들어, VolumeReadIOPs이 13,686을 반환하면 초당 청구된 읽기 작업은 45입니다(13,686 / 300 = 45.62).

버퍼 캐시에 없는 데이터베이스 페이지를 요청하는 쿼리에 대해서는 요금 부과된 읽기 작업이 발생하므로 스토리지에서 로드해야 합니다. 쿼리 결과를 스토리지에서 읽은 후 버퍼 캐시로 로드하면 요금 부과된 작업이 급증할 수 있습니다.

VolumeWriteIOPs

5분마다 보고되는 클러스터 볼륨에서 요금이 청구된 쓰기 I/O 작업의 평균 수. 요금이 청구된 쓰기 작업은 클러스터 볼륨 수준에서 계산되며, 클러스터의 모든 인스턴스에 대해 집계된 후 5분 간격으로 보고됩니다. 이 값은 5분 동안의 쓰기 작업 측정치 값을 사용하여 계산됩니다. 요금이 청구된 쓰기 작업 측정치의 값을 300초로 나눠서 초당 요금이 청구된 쓰기 작업의 양을 확인할 수 있습니다.

예를 들어 VolumeWriteIOPs이 13,686을 반환하면 초당 청구된 쓰기 작업은 45입니다(13,686 / 300 = 45.62).

참고로 VolumeReadIOPsVolumeWriteIOPs 지표는 DocumentDB 스토리지 계층에서 계산되며 여기에는 기본 및 복제 인스턴스에서 수행한 IO가 포함됩니다. 데이터는 20-30분마다 집계된 후 5분 간격으로 보고되므로 일정 기간 동안 지표에 대해 동일한 데이터 지점이 생성됩니다. 1분 간격으로 삽입 작업과 상호 연관시킬 지표를 찾으려면 인스턴스 수준 WriteiOps 측정치를 사용할 수 있습니다. 지표는 Amazon DocumentDB 기본 인스턴스의 모니터링 탭에서 사용할 수 있습니다.

WriteIOPS 초당 평균 디스크 쓰기 I/O 연산 수 클러스터 수준에서 사용할 경우 WriteIOPs은 클러스터의 모든 인스턴스에서 평가됩니다. 1분의 간격을 두고 읽기 IOPS와 쓰기 IOPS를 따로 보고합니다.
WriteThroughput 초당 디스크에 쓴 평균 바이트 수.
시스템
지표 설명
BufferCacheHitRatio 버퍼 캐시에서 처리하는 요청 비율입니다.
DiskQueueDepth 분산 스토리지 볼륨에 대한 동시 쓰기 요청 수
EngineUptime 인스턴스 실행 시간(초)
IndexBufferCacheHitRatio 버퍼 캐시에서 제공되는 인덱스 요청의 백분율입니다. 인덱스, 컬렉션 또는 데이터베이스를 삭제한 직후 지표가 100% 이상 급증할 수 있습니다. 이는 60초 후에 자동으로 수정됩니다. 향후 패치 업데이트에서 이러한 제한 사항이 수정될 예정입니다.
T3 인스턴스 지표
지표 설명
CPUCreditUsage 측정 기간 동안 사용된 CPU 크레딧 수.
CPUCreditBalance 인스턴스에서 발생한 CPU 크레딧 수. CPU에서 버스트가 발생하고 CPU 크레딧이 획득 속도보다 빠르게 소비될 때 크레딧 밸런스가 고갈됩니다.
CPUSurplusCreditBalance CPUCreditBalance 값이 0일 때 CPU 성능을 유지하기 위해 사용된 잉여 CPU 크레딧의 수입니다.
CPUSurplusCreditsCharged 잉여 CPU 크레딧 수가 24시간 동안 얻을 수 있는 최대 CPU 크레딧 수를 초과하므로 추가 요금이 발생합니다. 자세한 내용은 CPU 크레딧 모니터링을 참조하십시오.

CloudWatch 데이터 보기

CloudWatch 콘솔, Amazon DocumentDB 콘솔, AWS Command Line Interface(AWS CLI) 또는 CloudWatch API를 사용하여 Amazon CloudWatch 데이터를 볼 수 있습니다.

Using the AWS Management Console

Amazon DocumentDB 관리 콘솔을 사용하여 CloudWatch 지표를 보려면 다음 단계를 완료합니다.

  1. AWS Management Console에 로그인하고 https://console.aws.amazon.com/docdb에서 Amazon DocumentDB 콘솔을 엽니다.

  2. 탐색 창에서 클러스터를 선택합니다.

    작은 정보

    화면 왼쪽에 탐색 창이 표시되지 않으면 페이지 왼쪽 상단 모서리에서 메뉴 아이콘()을 선택합니다.

  3. 클러스터 탐색 상자에 클러스터 식별자 열이 표시됩니다. 인스턴스는 아래 스크린샷과 마찬가지로 클러스터 아래에 나열됩니다.

  4. 인스턴스 목록에서 지표를 사용할 인스턴스의 이름을 선택합니다.

  5. 결과 인스턴스 요약 페이지에서 모니터링 탭을 선택하여 Amazon DocumentDB 인스턴스의 지표를 그래픽으로 표시합니다. 각 지표에 대한 그래픽이 생성되기 전에 CloudWatch 그래프를 채우는 데 몇 분 정도 걸릴 수 있습니다.

    다음 이미지는 Amazon DocumentDB 콘솔, WriteIOPSReadIOPS에 있는 두 개의 CloudWatch 지표를 그래픽으로 표현한 것입니다.

    
                           Amazon DocumentDB 콘솔, writeiops 및 readiops의 CloudWatch 지표 18개 중 2개.
Using the CloudWatch Management Console

CloudWatch 관리 콘솔을 사용하여 CloudWatch 지표를 보려면 다음 단계를 수행합니다.

  1. AWS Management Console에 로그인하고 https://console.aws.amazon.com/cloudwatch에서 Amazon DocumentDB 콘솔을 엽니다.

  2. 탐색 창에서 지표를 선택합니다. 그런 다음 서비스 이름 목록에서 DocDB를 선택합니다.

  3. 지표 차원(예: 클러스터 지표)을 선택합니다.

  4. 모든 지표 탭은 DocDB에서 해당 차원의 모든 지표를 표시합니다.

    1. 테이블을 정렬하려면 열 머리글을 사용합니다.

    2. 측정치를 그래프로 표시하려면 측정치 옆에 있는 확인란을 선택합니다. 모든 지표를 선택하려면 테이블의 머리글 행에 있는 확인란을 선택합니다.

    3. 지표별로 필터링하려면 지표 이름을 마우스로 가리키고 지표 이름 옆의 드롭다운 화살표를 선택합니다. 그런 다음 아래 이미지와 같이 검색에 추가를 선택합니다.

      
                                 지표를 마우스로 가리키고 “검색에 추가”를 선택하여 지표를 필터링합니다.
Using the AWS CLI

Amazon DocumentDB용 CloudWatch 데이터를 보려면 다음 파라미터를 사용하여 CloudWatch get-metric-statistics 작업을 수행합니다.

파라미터
  • --namespace — 필수입니다. CloudWatch 지표를 원하는 서비스 네임스페이스. Amazon DocumentDB의 경우, 이것은 AWS/DocDB이어야 합니다.

  • --metric-name — 필수입니다. 데이터를 원하는 지표의 이름.

  • --start-time — 필수입니다. 반환할 첫 번째 데이터 포인트를 결정하는 타임스탬프입니다.

    지정된 값이 포함되므로, 지정된 타임스탬프를 가진 데이터 포인트가 결과에 포함됩니다. 타임스탬프는 ISO 8601 UTC 형식(예: 2016-10-03T23:00:00Z)이어야 합니다.

  • --end-time — 필수입니다. 반환할 마지막 데이터 포인트를 결정하는 타임스탬프입니다.

    지정된 값이 포함되므로, 지정된 타임스탬프를 가진 데이터 포인트가 결과에 포함됩니다. 타임스탬프는 ISO 8601 UTC 형식(예: 2016-10-03T23:00:00Z)이어야 합니다.

  • --period — 필수입니다. 반환되는 데이터 포인트의 세부 수준(초)입니다. 일반 분해능 지표의 경우 기간은 최소 1분(60초)이고 60의 배수여야 합니다. 1분 미만의 간격으로 수집되는 고분해능 지표의 경우 기간은 1, 5, 10, 30, 60 또는 60의 배수입니다.

  • --dimensions — 선택 사항. 지표에 여러 차원이 포함된 경우 각 차원에 대한 값을 포함해야 합니다. CloudWatch는 각각의 고유한 차원의 조합을 별도의 지표로 처리합니다. 특정 차원 조합이 게시되지 않은 경우 해당 조합에 대한 통계를 검색할 수 없습니다. 지표 생성 시 사용한 것과 동일하게 차원을 지정해야 합니다.

  • --statistics — 선택 사항. 백분위수 이외의 지표 통계입니다. 백분위수 통계의 경우 ExtendedStatistics 단원을 참조하십시오. GetMetricStatistics를 호출할 경우 Statistics 또는 ExtendedStatistics 중 하나만 지정해야 합니다.

    허용되는 값:
    • SampleCount

    • Average

    • Sum

    • Minimum

    • Maximum

  • --extended-statistics — 선택 사항. percentile 통계입니다. p0.0~p100 사이의 값을 지정합니다. GetMetricStatistics를 호출할 경우 Statistics 또는 ExtendedStatistics 중 하나만 지정해야 합니다.

  • --unit — 선택 사항. 주어진 지표의 단위입니다. 지표가 여러 단위로 보고될 수 있습니다. 단위 결과가 반환 중인 모든 단위로 제공되지 않습니다. 지표가 보고되지 않는 단위만 지정한 경우 호출 결과는 null입니다.

    가능한 값은 다음과 같습니다.
    • Seconds

    • Microseconds

    • Milliseconds

    • Bytes

    • Kilobytes

    • Megabytes

    • Gigabytes

    • Terabytes

    • Bits

    • Kilobytes

    • Megabits

    • Gigabits

    • Terabits

    • Percent

    • Count

    • Bytes/Second

    • Kilobytes/Second

    • Megabytes/Second

    • Gigabytes/Second

    • Terabytes/Second

    • Bits/Second

    • Kilobits/Second

    • Megabits/Second

    • Gigabits/Second

    • Terabits/Second

    • Count/Second

    • None

다음 예에서는 60초마다 샘플을 생성하여 2시간 기간에 대한 최대 CPUUtilization을 찾습니다.

Linux, macOS 또는 Unix의 경우:

aws cloudwatch get-metric-statistics \ --namespace AWS/DocDB \ --dimensions \ Name=DBInstanceIdentifier,Value=docdb-2019-01-09-23-55-38 \ --metric-name CPUUtilization \ --start-time 2019-02-11T05:00:00Z \ --end-time 2019-02-11T07:00:00Z \ --period 60 \ --statistics Maximum

Windows의 경우:

aws cloudwatch get-metric-statistics ^ --namespace AWS/DocDB ^ --dimensions ^ Name=DBInstanceIdentifier,Value=docdb-2019-01-09-23-55-38 ^ --metric-name CPUUtilization ^ --start-time 2019-02-11T05:00:00Z ^ --end-time 2019-02-11T07:00:00Z ^ --period 60 ^ --statistics Maximum

이 작업의 출력은 다음과 같습니다.

{ "Label": "CPUUtilization", "Datapoints": [ { "Unit": "Percent", "Maximum": 4.49152542374361, "Timestamp": "2019-02-11T05:51:00Z" }, { "Unit": "Percent", "Maximum": 4.25000000000485, "Timestamp": "2019-02-11T06:44:00Z" }, ********* some output omitted for brevity ********* { "Unit": "Percent", "Maximum": 4.33333333331878, "Timestamp": "2019-02-11T06:07:00Z" } ] }

Amazon DocumentDB 차원

Amazon DocumentDB에 대한 지표는 계정 또는 작업에 대한 값으로 지정됩니다. CloudWatch 콘솔을 사용하여 다음 표의 차원 중 하나로 필터링된 Amazon DocumentDB 데이터를 검색할 수 있습니다.

차원 설명
DBClusterIdentifier 특정 Amazon DocumentDB 클러스터에 대해 요청하는 데이터를 필터링합니다.
DBClusterIdentifier, Role 특정 Amazon DocumentDB 클러스터에 대해 요청하는 데이터를 필터링하여 인스턴스 역할별 지표(쓰기/읽기)를 집계합니다. 예를 들어 클러스터에 속하는 모든 READER 인스턴스에 대한 지표를 집계할 수 있습니다.
DBInstanceIdentifier 특정 데이터베이스 인스턴스에 대해 요청하는 데이터를 필터링합니다.

모니터링 Opcounters

유휴 클러스터의 경우 Opcounter 지표는 값이 0이 아닙니다 (보통 ~50). 이는 Amazon DocumentDB가 주기적인 상태 점검, 내부 작업 및 지표 수집 작업을 수행하기 때문입니다.

데이터베이스 연결 모니터링

db.runCommand( { serverStatus: 1 })과 같은 데이터베이스 엔진 명령을 사용하여 연결 수를 볼 때 CloudWatch를 통해 DatabaseConnections에 표시된 것보다 최대 10개 더 많은 연결을 볼 수 있습니다. 이것은 Amazon DocumentDB가 DatabaseConnections에 설명되지 않는 주기적인 상태 검사 및 지표 수집 작업을 수행하기 때문에 발생합니다. DatabaseConnections는 고객 시작 연결만 나타냅니다.