Amazon RDS および Aurora データベースのモニタリング
モニタリングは、Amazon RDS および Aurora データベースクラスターの信頼性、可用性、パフォーマンスを維持するための重要な要素です。AWS は、Amazon RDS および Aurora データベースリソースの健全性を監視し、問題が深刻化する前に検出し、一貫したユーザーエクスペリエンスのためにパフォーマンスを最適化するためのいくつかのツールを提供しています。このガイドでは、データベースがスムーズに実行されていることを確認するためのオブザーバビリティのベストプラクティスを提供します。
パフォーマンスガイドライン
ベストプラクティスとして、ワークロードのベースラインパフォーマンスを確立することから始めることをお勧めします。DB インスタンスをセットアップし、一般的なワークロードで実行する際に、すべてのパフォーマンスメトリクスの平均値、最大値、最小値を取得します。これを複数の異なる間隔(例:1 時間、24 時間、1 週間、2 週間)で実行します。これにより、何が正常であるかを把握できます。ピーク時とオフピーク時の両方の運用時間を比較すると役立ちます。この情報を使用して、パフォーマンスが標準レベルを下回っている時期を特定できます。
モニタリングオプション
Amazon CloudWatch メトリクス
Amazon CloudWatch は、RDS および Aurora デー タベースの監視と管理に不可欠なツールです。データベースのパフォーマンスに関する貴重な洞察を提供し、問題を迅速に特定して解決するのに役立ちます。Amazon RDS と Aurora データベースの両方が、アクティブな各データベースインスタンスのメトリクスを 1 分間隔で CloudWatch に送信します。モニタリングはデフォルトで有効になっており、メトリクスは 15 日間利用できます。RDS と Aurora は、インスタンスレベルのメトリクスを AWS/RDS 名前空間の Amazon CloudWatch に発行します。
CloudWatch Metrics を使用すると、データベースのパフォーマンスの傾向やパターンを特定し、この情報を使用して設定を最適化し、アプリケーションのパフォーマンスを向上させることができます。監視すべき主要なメトリクスは次のとおりです。
- CPU Utilization - 使用されているコンピュータ処理能力の割合。
- DB Connections - DB インスタンスに接続されているクライアントセッションの数。インスタンスのパフォーマンスと応答時間の低下と併せてユーザー接続数が多い場合は、データベース接続の制約を検討してください。DB インスタンスに最適なユーザー接続数は、インスタンスクラスと実行される操作の複雑さによって異なります。データベース接続数を確認するには、DB インスタンスをパラメータグループに関連付けます。
- Freeable Memory - DB インスタンスで使用可能な RAM の容量 (メガバイト単位)。Monitoring タブのメトリクスでは、CPU、メモリ、ストレージメトリクスの 75% に赤い線が表示されます。インスタンスのメモリ消費量が頻繁にこの線を超える場合は、ワークロードを確認するか、インスタンスをアップグレードする必要があることを示しています。
- Network throughput - DB インスタンスとの間のネットワークトラフィックの速度 (バイト/秒)。
- Read/Write Latency - 読み取りまたは書き込み操作の平均時間 (ミリ秒単位)。
- Read/Write IOPS - 1 秒あたりのディスク読み取りまたは書き込み操作の平均数。
- Free Storage Space - DB インスタンスで現在使用されていないディスク容量 (メガバイト単位)。使用済み容量が総ディスク容量の 85% 以上で一貫している場合は、ディスク容量の消費を調査してください。インスタンスからデータを削除するか、別のシステムにデータをアーカイブして容量を解放できるかどうかを確認してください。

パフォーマンス関連の問題をトラブルシューティングする場合、最初のステップは、最も使用頻度が高く、コストのかかるクエリをチューニングすることです。チューニングを行うことで、システムリソースへの負荷が軽減されるかどうかを確認します。詳細については、クエリのチューニングを参照してください。
クエリがチューニングされていても問題が解決しない場合は、データベースインスタンスクラスのアップグレードを検討してください。より多くのリソース (CPU、RAM 、ディスク容量、ネットワーク帯域幅、I/O 容量) を持つインスタンスにアップグレードできます。
その後、これらのメトリクスが重要なしきい値に達したときにアラートを発するようにアラームを設定し、問題をできるだけ迅速に解決するためのアクションを実行できます。
CloudWatch メトリクスの詳細については、Amazon RDS の Amazon CloudWatch メトリクスおよびCloudWatch コンソールと AWS CLI での DB インスタンスメトリクスの表示を参照してください。
CloudWatch Logs Insights
CloudWatch Logs Insights を使用すると、Amazon CloudWatch Logs でログデータをインタラクティブに検索および分析できます。クエリを実行して、運用上の問題により効率的かつ効果的に対応できます。問題が発生した場合、CloudWatch Logs Insights を使用して潜在的な原因を特定し、デプロイされた修正を検証できます。
RDS または Aurora データベースクラスタから CloudWatch にログを発行するには、Amazon RDS または Aurora for MySQL インスタンスのログを CloudWatch に発行するを 参照してください。
CloudWatch で RDS または Aurora ログをモニタリングする方法の詳細については、Amazon RDS ログファイルのモニタリングを参照してください。
CloudWatch アラーム
データベースクラスターのパフォーマンスが低下している時期を特定するには、主要なパフォーマンスメトリクスを定期的に監視し、アラートを設定する必要があります。Amazon CloudWatch アラームを使用すると、指定した期間にわたって単一のメトリクスを監視できます。メトリクスが指定されたしきい値を超えると、Amazon SNS トピックまたは AWS Auto Scaling ポリシーに通知が送信されます。CloudWatch アラームは、特定の状態にあるという理由だけでアクションを呼び出すことはありません。むしろ、状態が変化し、指定された期間数にわたって維持されている必要があります。アラームは、アラーム状態が変化した場合にのみアクションを呼び出します。アラーム状態にあるだけでは不十分です。
CloudWatch アラームを設定するには
- AWS マネジメントコンソールに移動し、https://console.aws.amazon.com/rds/ で Amazon RDS コンソールを開きます。
- ナビゲーションペイン で、[Databases] を選択し、DB インスタンスを選択します。
- [Logs & events] を選択します。
CloudWatch アラームセクションで、Create alarm を選択します。

- Send notifications で、Yes を選択し、Send notifications to で、New email or SMS topic を選択します。
- Topic name に、通知の名前を入力し、With these recipients に、カンマ区切りのメールアドレスと電話番号のリストを入力します。
- Metric で、設定するアラーム統計とメトリクスを選択します。
- Threshold で、メトリクスがしきい値より大きい、小さい、または等しいかを指定し、しきい値を指定します。
- Evaluation period で、アラームの評価期間を選択します。consecutive period(s) of で、アラームをトリガーするためにしきい値に達している必要がある期間を選択します。
- Name of alarm に、アラームの名前を入力します。
- Create Alarm を選択します。
アラームは CloudWatch アラームセクションに表示されます。
Multi-AZ DB クラスターのレプリカラグに対する Amazon CloudWatch アラームを作成するには、この例を参照してください。
データベース監査ログ
データベース監査ログは、RDS および Aurora データベースで実行されたすべてのアクションの詳細な記録を提供し、不正アクセス、データ変更、その他の潜在的に有害なアクティビティを監視できるようにします。データベース監査ログを使用するためのベストプラクティスをいくつか示します。
- すべての RDS および Aurora インスタンスで Database Audit Logs を有効にし、関連するすべてのデータをキャプチャするように設定します。
- Amazon CloudWatch Logs や Amazon Kinesis Data Streams などの一元化されたログ管理ソリューションを使用して、Database Audit Logs を収集および分析します。
- Database Audit Logs を定期的に監視して不審なアクティビティを検出し、問題を迅速に調査して解決するための措置を講じます。
データベース監査ログの設定方法の詳細については、Amazon RDS と Aurora のデータベースアクティビティをキャプチャするための監査ログの設定を参照してください。
データベースのスロークエリおよびエラーログ
スロークエリログは、データベース内のパフォーマンスが低いクエリを見つけるのに役立ちます。こ れにより、遅延の原因を調査し、必要に応じてクエリをチューニングできます。エラーログは、クエリエラーを見つけるのに役立ち、さらにそれらのエラーによるアプリケーションの変更を見つけるのに役立ちます。
Amazon CloudWatch Logs Insights (Amazon CloudWatch Logs でログデータをインタラクティブに検索および分析できます) を使用して CloudWatch ダッシュボードを作成することで、スロークエリログとエラーログを監視できます。
Amazon RDS のエラーログ、スロークエリログ、および一般ログを有効化して監視するには、RDS MySQL のスロークエリログと一般ログの管理を参照してください。Aurora PostgreSQL のスロークエリログを有効化するには、PostgreSQL のスロークエリログの有効化を参照してください。