DataBase  /  Amazon Aurora  /  レポート取得ガイド

Amazon Aurora — CloudWatch メトリクスによる取得とセクション定義

Amazon Aurora は追加設定なしで多数の CloudWatch メトリクスを自動発行します。 接続数・スループット・レイテンシ・I/O・バッファキャッシュヒット率・レプリケーション遅延など、 Oracle AWR の Instance Activity・I/O Statistics・Buffer Pool 統計に相当する情報を取得できます。 本記事では各セクションの定義と AWS CLI による取得方法を解説します。

1. CloudWatch メトリクスの概要

Aurora の CloudWatch メトリクスは AWS/RDS 名前空間に発行されます。 ディメンションとして DBInstanceIdentifier(インスタンス単位)や DBClusterIdentifier(クラスター単位)を指定して絞り込みます。 標準メトリクスの保持期間は15ヶ月、粒度は1分(一部1秒 High Resolution)です。

💡 クラスターメトリクスとインスタンスメトリクスの違い
Aurora では一部メトリクスがクラスター全体(VolumeBytesUsed など)、 一部がインスタンス単位(DatabaseConnections など)で発行されます。 ライター・リーダーインスタンスを個別に監視する場合は DBInstanceIdentifier を指定します。

2. セクション定義:Instance Activity(接続・スループット)

AWR対応 Instance Activity Statistics

メトリクス名説明単位AWR 対応
DatabaseConnections 現在の DB 接続数 Count Logons per Second / Active Sessions
CommitThroughput 毎秒のコミット操作数 Count/s User Commits per Second
RollbackSegmentHistoryListLength undo ログの履歴リスト長(Aurora MySQL)。長いと MVCC 圧迫のサイン。 Count Undo Blocks Written
DDLThroughput 毎秒の DDL 操作数 Count/s DDL Statements
DMLThroughput 毎秒の DML 操作数(INSERT/UPDATE/DELETE の合計) Count/s User Calls per Second
SelectThroughput 毎秒の SELECT 操作数 Count/s
Queries 毎秒のクエリ数(Aurora MySQL: Status 変数 Queries に対応) Count/s User Calls per Second

3. セクション定義:レイテンシ統計

AWR対応 SQL Ordered by Elapsed Time / Wait Class

メトリクス名説明単位AWR 対応
SelectLatency SELECT の平均レイテンシ ms Elapsed Time(SELECT)
InsertLatency INSERT の平均レイテンシ ms Elapsed Time(INSERT)
UpdateLatency UPDATE の平均レイテンシ ms Elapsed Time(UPDATE)
DeleteLatency DELETE の平均レイテンシ ms Elapsed Time(DELETE)
CommitLatency COMMIT の平均レイテンシ ms log file sync Wait
DDLLatency DDL の平均レイテンシ ms

4. セクション定義:I/O 統計

AWR対応 Tablespace I/O Statistics / File I/O

メトリクス名説明単位AWR 対応
VolumeReadIOPs Aurora ストレージへの読み取り IOPS Count/s Physical Reads per Second
VolumeWriteIOPs Aurora ストレージへの書き込み IOPS Count/s Physical Writes per Second
VolumeBytesUsed Aurora ストレージの使用量 Bytes Tablespace Used Space
ReadThroughput 毎秒の読み取りスループット Bytes/s I/O Read Throughput
WriteThroughput 毎秒の書き込みスループット Bytes/s I/O Write Throughput
ReadIOPS インスタンス単位の読み取り IOPS Count/s Physical Reads per Second
WriteIOPS インスタンス単位の書き込み IOPS Count/s Physical Writes per Second
ReadLatency ディスク読み取りの平均レイテンシ s Read Latency
WriteLatency ディスク書き込みの平均レイテンシ s Write Latency

5. セクション定義:Buffer / Memory 統計

AWR対応 Buffer Pool Statistics / SGA Memory

メトリクス名説明単位AWR 対応
BufferCacheHitRatio バッファキャッシュのヒット率。100% に近いほど物理 I/O が少ない。 % Buffer Cache Hit Ratio
FreeableMemory インスタンスで利用可能な空きメモリ Bytes Free Memory(SGA 外)
SwapUsage スワップ使用量。ゼロが理想。 Bytes Swap Usage
ResultSetCacheHitRatio クエリキャッシュのヒット率(Aurora MySQL のみ) %

6. セクション定義:レプリケーション統計

AWR対応 —(Oracle AWR には対応する標準セクションなし)

Aurora はクラスター内でライター→リーダーへの高速レプリケーションを提供します。以下のメトリクスで状態を監視します。

メトリクス名説明単位
AuroraReplicaLag リーダーインスタンスのレプリケーション遅延。ゼロに近いほど良い。 ms
AuroraReplicaLagMaximum クラスター内リーダーインスタンスの最大レプリカラグ ms
AuroraReplicaLagMinimum クラスター内リーダーインスタンスの最小レプリカラグ ms
BinLogDiskUsage バイナリログの使用ディスク容量(Aurora MySQL でバイナリログ有効時) Bytes
ReplicationSlotDiskUsage レプリケーションスロットのディスク使用量(Aurora PostgreSQL) Bytes
OldestReplicationSlotLag 最も遅いレプリケーションスロットの遅延量(Aurora PostgreSQL) Bytes

7. AWS CLI による取得

AWS CLI — 複数メトリクスの一括取得
# 直近1時間の DatabaseConnections(最大値)を1分粒度で取得
aws cloudwatch get-metric-statistics \
  --namespace AWS/RDS \
  --metric-name DatabaseConnections \
  --dimensions Name=DBInstanceIdentifier,Value=my-aurora-instance \
  --start-time $(date -u -d '1 hour ago' +%Y-%m-%dT%H:%M:%SZ) \
  --end-time $(date -u +%Y-%m-%dT%H:%M:%SZ) \
  --period 60 \
  --statistics Maximum Average \
  --query 'sort_by(Datapoints, &Timestamp)[*].{Time:Timestamp,Max:Maximum,Avg:Average}' \
  --output table

# BufferCacheHitRatio を監視(低下時はバッファプール不足の可能性)
aws cloudwatch get-metric-statistics \
  --namespace AWS/RDS \
  --metric-name BufferCacheHitRatio \
  --dimensions Name=DBInstanceIdentifier,Value=my-aurora-instance \
  --start-time $(date -u -d '1 hour ago' +%Y-%m-%dT%H:%M:%SZ) \
  --end-time $(date -u +%Y-%m-%dT%H:%M:%SZ) \
  --period 60 \
  --statistics Average Minimum

CloudWatch Metrics Insights(SQL ライクなクエリ)

CloudWatch Metrics Insights
-- 全 Aurora インスタンスのレプリカラグを比較
SELECT MAX(AuroraReplicaLag)
FROM SCHEMA("AWS/RDS", DBInstanceIdentifier)
WHERE DBClusterIdentifier = 'my-aurora-cluster'
GROUP BY DBInstanceIdentifier
ORDER BY MAX() DESC
LIMIT 10
アラーム設定の推奨メトリクス
監視アラームとして設定を推奨するメトリクス:
DatabaseConnections(最大接続数の80%)、 FreeableMemory(512MB 未満)、 AuroraReplicaLag(1秒以上)、 BufferCacheHitRatio(95% 未満)

8. セクション定義まとめ

セクション主な取得メトリクスOracle AWR 対応
Instance Activity DatabaseConnections・CommitThroughput・DMLThroughput・Queries Instance Activity Statistics
レイテンシ統計 SelectLatency・InsertLatency・UpdateLatency・CommitLatency SQL Elapsed Time / Wait Class
I/O 統計 VolumeReadIOPs・VolumeWriteIOPs・ReadLatency・WriteLatency I/O Statistics
Buffer / Memory 統計 BufferCacheHitRatio・FreeableMemory・SwapUsage Buffer Pool / SGA Statistics
レプリケーション統計 AuroraReplicaLag・BinLogDiskUsage・OldestReplicationSlotLag