Aurora 클러스터 및 인스턴스의 가동 시간 확인 - Amazon Aurora

Aurora 클러스터 및 인스턴스의 가동 시간 확인

Aurora 클러스터의 각 DB 인스턴스에 대한 마지막 재부팅 이후 경과 시간을 확인하고 모니터링할 수 있습니다. Amazon CloudWatch 지표 EngineUptime은 DB 인스턴스가 마지막으로 시작된 이후의 시간(초)을 보고합니다. 특정 시점에 이 지표를 검토하여 DB 인스턴스의 가동 시간을 확인할 수 있습니다. 이 지표를 시간대별로 모니터링하여 인스턴스가 재부팅되는 시기를 감지할 수도 있습니다.

클러스터 수준에서 EngineUptime 지표를 검사할 수도 있습니다. MinimumMaximum 차원은 클러스터의 모든 DB 인스턴스에 대한 최소 및 최대 가동 시간 값을 보고합니다. 클러스터의 리더 인스턴스가 재부팅되거나 다른 이유로 다시 시작된 최근 시간을 확인하려면 Minimum 차원을 사용하여 클러스터 수준 지표를 모니터링합니다. 클러스터에서 재부팅 없이 가장 오래 지속된 인스턴스를 확인하려면 Maximum 차원을 사용하여 클러스터 수준 지표를 모니터링합니다. 예를 들어 구성 변경 후 클러스터의 모든 DB 인스턴스가 재부팅되었는지 확인해야 할 수 있습니다.

작은 정보

장기 모니터링의 경우 클러스터 수준 대신 개별 인스턴스에 대한 EngineUptime 지표를 모니터링하는 것이 좋습니다. 클러스터에 새 DB 인스턴스가 추가되면 클러스터 수준 EngineUptime 지표가 0으로 설정됩니다. 이러한 클러스터 변경은 Auto Scaling에서 수행되는 것과 같은 유지 관리 및 확장 작업의 일부로 발생할 수 있습니다.

다음 CLI 예제는 클러스터의 라이터 및 리더 인스턴스에 대한 EngineUptime 지표를 검사하는 방법을 보여줍니다. 이 예제에는 이름이 tpch100g인 클러스터가 사용됩니다. 이 클러스터에는 라이터 DB 인스턴스 instance-1234가 있습니다. 또한 2개의 리더 DB 인스턴스 instance-7448instance-6305가 있습니다.

먼저 reboot-db-instance 명령은 리더 인스턴스 중 하나를 재부팅합니다. wait 명령은 인스턴스 재부팅이 완료될 때까지 대기합니다.

$ aws rds reboot-db-instance --db-instance-identifier instance-6305 { "DBInstance": { "DBInstanceIdentifier": "instance-6305", "DBInstanceStatus": "rebooting", ... $ aws rds wait db-instance-available --db-instance-id instance-6305

CloudWatch get-metric-statistics 명령은 지난 5분간의 EngineUptime 지표를 1분 간격으로 검사합니다. instance-6305 인스턴스의 가동 시간이 0으로 재설정되고 다시 계산되기 시작합니다. 이 Linux용 AWS CLI 예제에서는 $() 변수 대체를 사용하여 CLI 명령에 해당하는 타임스탬프를 삽입합니다. 또한 Linux sort 명령을 사용하여 지표가 수집된 시간별로 출력 순서를 지정합니다. 이 타임스탬프 값은 출력의 각 줄에서 세 번째 필드입니다.

$ aws cloudwatch get-metric-statistics --metric-name "EngineUptime" \ --start-time "$(date -d '5 minutes ago')" --end-time "$(date -d 'now')" \ --period 60 --namespace "AWS/RDS" --statistics Maximum \ --dimensions Name=DBInstanceIdentifier,Value=instance-6305 --output text \ | sort -k 3 EngineUptime DATAPOINTS 231.0 2021-03-16T18:19:00+00:00 Seconds DATAPOINTS 291.0 2021-03-16T18:20:00+00:00 Seconds DATAPOINTS 351.0 2021-03-16T18:21:00+00:00 Seconds DATAPOINTS 411.0 2021-03-16T18:22:00+00:00 Seconds DATAPOINTS 471.0 2021-03-16T18:23:00+00:00 Seconds

클러스터의 인스턴스 중 하나가 재부팅되었으므로 클러스터의 최소 가동 시간이 0으로 재설정됩니다. 클러스터의 DB 인스턴스 중 하나 이상이 사용 가능한 상태로 남아 있기 때문에 클러스터의 최대 가동 시간은 재설정되지 않습니다.

$ aws cloudwatch get-metric-statistics --metric-name "EngineUptime" \ --start-time "$(date -d '5 minutes ago')" --end-time "$(date -d 'now')" \ --period 60 --namespace "AWS/RDS" --statistics Minimum \ --dimensions Name=DBClusterIdentifier,Value=tpch100g --output text \ | sort -k 3 EngineUptime DATAPOINTS 63099.0 2021-03-16T18:12:00+00:00 Seconds DATAPOINTS 63159.0 2021-03-16T18:13:00+00:00 Seconds DATAPOINTS 63219.0 2021-03-16T18:14:00+00:00 Seconds DATAPOINTS 63279.0 2021-03-16T18:15:00+00:00 Seconds DATAPOINTS 51.0 2021-03-16T18:16:00+00:00 Seconds $ aws cloudwatch get-metric-statistics --metric-name "EngineUptime" \ --start-time "$(date -d '5 minutes ago')" --end-time "$(date -d 'now')" \ --period 60 --namespace "AWS/RDS" --statistics Maximum \ --dimensions Name=DBClusterIdentifier,Value=tpch100g --output text \ | sort -k 3 EngineUptime DATAPOINTS 63389.0 2021-03-16T18:16:00+00:00 Seconds DATAPOINTS 63449.0 2021-03-16T18:17:00+00:00 Seconds DATAPOINTS 63509.0 2021-03-16T18:18:00+00:00 Seconds DATAPOINTS 63569.0 2021-03-16T18:19:00+00:00 Seconds DATAPOINTS 63629.0 2021-03-16T18:20:00+00:00 Seconds

그런 다음 다른 reboot-db-instance 명령에 의해 클러스터의 라이터 인스턴스가 재부팅됩니다. 다른 wait 명령은 라이터 인스턴스의 재부팅이 완료될 때까지 일시 중지됩니다.

$ aws rds reboot-db-instance --db-instance-identifier instance-1234 { "DBInstanceIdentifier": "instance-1234", "DBInstanceStatus": "rebooting", ... $ aws rds wait db-instance-available --db-instance-id instance-1234

이제 라이터 인스턴스의 EngineUptime 지표에서 인스턴스 instance-1234가 최근에 재부팅되었음을 알 수 있습니다. 리더 인스턴스 instance-6305도 라이터 인스턴스와 함께 자동으로 재부팅되었습니다. 이 클러스터는 Aurora MySQL 2.09를 실행 중이므로 라이터 인스턴스가 재부팅될 때 리더 인스턴스의 실행이 유지되지 않습니다.

$ aws cloudwatch get-metric-statistics --metric-name "EngineUptime" \ --start-time "$(date -d '5 minutes ago')" --end-time "$(date -d 'now')" \ --period 60 --namespace "AWS/RDS" --statistics Maximum \ --dimensions Name=DBInstanceIdentifier,Value=instance-1234 --output text \ | sort -k 3 EngineUptime DATAPOINTS 63749.0 2021-03-16T18:22:00+00:00 Seconds DATAPOINTS 63809.0 2021-03-16T18:23:00+00:00 Seconds DATAPOINTS 63869.0 2021-03-16T18:24:00+00:00 Seconds DATAPOINTS 41.0 2021-03-16T18:25:00+00:00 Seconds DATAPOINTS 101.0 2021-03-16T18:26:00+00:00 Seconds $ aws cloudwatch get-metric-statistics --metric-name "EngineUptime" \ --start-time "$(date -d '5 minutes ago')" --end-time "$(date -d 'now')" \ --period 60 --namespace "AWS/RDS" --statistics Maximum \ --dimensions Name=DBInstanceIdentifier,Value=instance-6305 --output text \ | sort -k 3 EngineUptime DATAPOINTS 411.0 2021-03-16T18:22:00+00:00 Seconds DATAPOINTS 471.0 2021-03-16T18:23:00+00:00 Seconds DATAPOINTS 531.0 2021-03-16T18:24:00+00:00 Seconds DATAPOINTS 49.0 2021-03-16T18:26:00+00:00 Seconds