Aurora クラスターとインスタンスの稼働時間のチェック
Aurora クラスター内の各 DB インスタンスについて、最後の再起動からの時間の長さを確認してモニタリングできます。Amazon CloudWatch メトリクス EngineUptime
は、DB インスタンスが最後に起動されてからの秒数をレポートします。このメトリクスをある時点で調べて、DB インスタンスの稼働時間を調べることができます。また、このメトリクスを経時的にモニタリングして、インスタンスが再起動されるタイミングを検出することもできます。
クラスターレベルで EngineUptime
メトリクスを調べることもできます。Minimum
および Maximum
ディメンションは、クラスター内のすべての DB インスタンスの稼働時間の最小値および最大値をレポートします。クラスター内のリーダーインスタンスが再起動された最近の時期、または別の理由で再起動された最近の時期を確認するには、Minimum
ディメンションを使用してクラスターレベルのメトリクスをモニタリングします。再起動せずにクラスター内のどのインスタンスが最長になったかを確認するには、Maximum
ディメンションを使用してクラスターレベルのメトリクスをモニタリングします。例えば、設定の変更後に、クラスター内のすべての DB インスタンスが再起動されたことを確認したい場合があります。
ヒント
長期モニタリングでは、クラスターレベルではなく、個々のインスタンスの EngineUptime
メトリクスをモニタリングすることをお勧めします。クラスターレベルの EngineUptime
メトリクスは、新しい DB インスタンスがクラスターに追加されたときにゼロに設定されます。このようなクラスターの変更は、Auto Scaling で実行されるようなメンテナンスおよびスケーリングオペレーションの一環として生じる可能性があります。
次の CLI の例は、クラスター内のライターインスタンスとリーダーインスタンスの EngineUptime
メトリクスを調べる方法を示しています。この例では、tpch100g
という名前のクラスターを使用しています。このクラスターにはライター DB インスタンス instance-1234
があります。また、instance-7448
と instance-6305
の 2 つのリーダー DB インスタンスがあります。
まず、reboot-db-instance
コマンドはリーダーインスタンスの 1 つを再起動します。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
インスタンスの稼働時間はゼロにリセットされ、再びカウントを開始します。Linux のこの AWS CLI の例では、$()
変数置換を使用して CLI コマンドに適切なタイムスタンプを挿入します。また、Linux sort
コマンドを使用して、メトリクスが収集された時間で出力を順序付けます。そのタイムスタンプ値は、出力の各行の 3 番目のフィールドです。
$ 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
クラスター内のインスタンスの 1 つが再起動されたため、クラスターの最小稼働時間はゼロにリセットされます。クラスター内の少なくとも 1 つの 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