

# Aurora クラスターとインスタンスの稼働時間のチェック
<a name="USER_Reboot.Uptime"></a>

 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
```