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 では一部メトリクスがクラスター全体(
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 による取得
# 直近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 ライクなクエリ)
-- 全 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 | — |