[新機能]Amazon RDSでOSの詳細情報を取得できるようになりました!
ウィスキー、シガー、パイプをこよなく愛する大栗です。 Amazon RDSで拡張モニタリングという、CloudWatchで細かい情報を取得できる機能が発表されましたので、ご紹介したいと思います。
拡張モニタリング
RDSはOSにログイン出来ないためCloudWatchへ出力されるメトリクスを見ることで、状態を確認していました。CloudWatchで見ることができるメトリクスは限られた情報でした。そこでOSの詳細情報を取得することができる機能が 拡張モニタリング です。
実は先日開催されたAWSのカンファレンスであるre:Invent 2015でアナウンスされていました。
何が取得できる?
OSに関する様々な情報が取得できます。大きく分類すると以下の内容となります。
グループ | 内容 |
---|---|
General | DBインスタンス全体の情報です |
cpuUtilization | CPUの使用状況の情報です |
diskIO | ディスクI/Oに関する情報です |
fileSys | ファイルシステムの情報です |
loadAverageMinute | 1分、5分、15分のロードアベレージです |
memory | メモリの使用状況に関する情報です |
network | ネットワークの情報です |
processList | 起動しているプロセスの情報です |
swap | SWAPの情報です |
tasks | タスク全体の情報です |
取得できる情報の詳細は、RDSのドキュメントを参照ください。2015年12月19日時点では英語版のみに記載されています。
使用可能なDBは?
現時点で拡張モニタリングを使用できるDBエンジンは以下の3種類です。
- Aurora
- MySQL
- MariaDB
拡張モニタリングを試してみる
Auroraで試してみます。
普通にAuroraを起動していきます。
[詳細設定] の設定
で モニタリング
という項目が増えているので、 拡張モニタリングを有効にする
を「はい」に設定すると モニタリングロール
と 詳細度
という項目が表示されます。なお既に起動しているRDSも「変更」で拡張モニタリングを有効にすることができます。
項目 | 内容 |
---|---|
拡張モニタリングを有効にする | 拡張モニタリングを使用するか選択します。 |
モニタリングロール | メトリクスをCloudWatch Logsへ出力する時に使用するIAM Role を選択します。通常は「デフォルト」で問題ありません。 |
詳細度 | 取得する情報の間隔(秒)を設定します。1,5,10,15,30,60秒から選択できます。 |
設定を有効にすると、RDSのコンソールからグラフを見ることができます。 モニタリングを表示
で 拡張モニタリング
を選択すると様々なグラフが表示されます。
各種メトリクスは、CloudWatch Logsに出力されています。 RDSOSMetrics
というロググループに出力されます。
ログストリームは、DBインスタンスごとに作成されているようです。
実際の情報は、このようになります。
{ "engine": "Aurora", "instanceID": "myaurora", "instanceResourceID": "db-CRLZUAHQFQD3KQO62IBMEFVBDY", "timestamp": "2015-12-19T00:06:41Z", "version": 1, "uptime": "3 days, 21:48:51", "numVCPUs": 2, "cpuUtilization": { "guest": 0, "irq": 0, "system": 1.01, "wait": 0.3, "idle": 97.77, "user": 0.71, "total": 1.72, "steal": 0, "nice": 0.2 }, "loadAverageMinute": { "fifteen": 0.05, "five": 0.02, "one": 0 }, "memory": { "writeback": 0, "hugePagesFree": 0, "hugePagesRsvd": 0, "hugePagesSurp": 0, "cached": 10632900, "hugePagesSize": 2048, "free": 2635528, "hugePagesTotal": 0, "inactive": 1324260, "pageTables": 23900, "dirty": 356, "mapped": 8090316, "active": 11392724, "total": 15670012, "slab": 179628, "buffers": 279148 }, "tasks": { "sleeping": 221, "zombie": 0, "running": 3, "stopped": 0, "total": 224, "blocked": 0 }, "swap": { "cached": 0, "total": 0, "free": 0 }, "network": [ { "interface": "eth0", "rx": 227.8, "tx": 832.6 } ], "diskIO": [ { "readLatency": 0, "writeLatency": 2.89, "writeThroughput": 483, "readThroughput": 0, "readIOsPS": 0, "diskQueueDepth": 0, "writeIOsPS": 1.8 } ], "fileSys": [ { "used": 700344, "name": "rdsfilesys", "usedFiles": 622, "usedFilePercent": 0.03, "maxFiles": 1966080, "mountPoint": "/rdsdbdata", "total": 30828540, "usedPercent": 2.27 } ], "processList": [ { "vss": 10141984, "name": "aurora", "tgid": 18585, "parentID": 1, "memoryUsedPc": 60.46, "cpuUsedPc": 0, "id": 18585, "rss": 9474172 }, { "vss": 10141984, "name": "aurora", "tgid": 18585, "parentID": 1, "memoryUsedPc": 60.46, "cpuUsedPc": 0.3, "id": 18991, "rss": 9474172 }, { "vss": 647308, "name": "OS processes", "tgid": 0, "parentID": 0, "memoryUsedPc": 0.19, "cpuUsedPc": 0, "id": 0, "rss": 23576 }, { "vss": 3236624, "name": "RDS processes", "tgid": 0, "parentID": 0, "memoryUsedPc": 2.81, "cpuUsedPc": 1.1, "id": 0, "rss": 442676 } ] }
さいごに
RDSの詳細な情報が取得できるようになり、様々な視点で監視できるようになりました。この情報を元に、細かいチューニングができそうです。CloudWatch Logsにデータが出力されるので、簡単にElasticsearch Serviceへストリーミングできます。Elasticsearch Serviceでリアルタイム監視もできそうでワクワクしています。