Amazon Relational Database Service
ユーザーガイド (API バージョン 2014-10-31)

Amazon RDS のモニタリング

モニタリングは、Amazon RDS と AWS ソリューションの信頼性、可用性、パフォーマンスを維持する上で重要な部分です。マルチポイント障害が発生した場合は、その障害をより簡単にデバッグできるように、AWS ソリューションのすべての部分からモニタリングデータを収集する必要があります。Amazon RDS のモニタリングを開始する前に、以下の質問に対する回答を反映したモニタリング計画を作成することをお勧めします。

  • どのような目的でモニタリングしますか?

  • モニタリングの対象となるリソースとは ?

  • どのくらいの頻度でこれらのリソースをモニタリングしますか?

  • 使用するモニタリングツールは?

  • 誰がモニタリングタスクを実行しますか?

  • 誰が問題が発生したときに通知を受け取りますか?

次のステップは、さまざまなタイミングと負荷条件でパフォーマンスを測定することにより、お客様の環境で通常の Amazon RDS パフォーマンスのベースラインを確定することです。Amazon RDS を監視するには、モニタリングデータの履歴を保存することを検討します。保存データを、最新のパフォーマンスデータと比較するベースラインとして使用し、通常のパフォーマンスのパターンやパフォーマンスの異常を検出して、問題への対応を検討することができます。

たとえば、Amazon RDS を使って、DB インスタンスについてのネットワークのスループット、読み書きやメタデータオペレーションの I/O、クライアント接続、バーストのクレジットバランスなどをモニタリングできます。パフォーマンスが確立されたベースラインから外れた場合、DB インスタンスのインスタンスクラスまたは DB インスタンスとクライアントが利用可能なリードレプリカの数を変更して、ワークロードのためのデータベースの可用性を最適化する必要がある場合があります。

一般的に、パフォーマンスメトリクスの許容値は、ベースラインがどのようになっているか、アプリケーションによって何が実行されているかによって異なります。ベースラインからの一貫した差異またはトレンドになっている差異を調べます。メトリクスのタイプごとのアドバイスは以下のとおりです。

  • CPU または RAM の高消費量 – CPU または RAM の消費量が大きい値になっていても、それは妥当である場合があります。ただし、アプリケーションの目標 (スループット、同時実行数など) に沿った想定値であることが前提です。

  • ディスクスペースの消費量 – 使用されているディスクスペースが一貫して合計ディスクスペースの 85% 以上である場合は、ディスクスペースの消費量を調べます。インスタンスからデータを削除するか、別のシステムにデータをアーカイブして、スペースを解放できるかどうかを確認します。

  • Network traffic – ネットワークトラフィックについてシステム管理者に問い合わせて、ドメインネットワークとインターネット接続に対する想定スループットを把握します。スループットが一貫して想定よりも低い場合は、ネットワークトラフィックを調べます。

  • データベース接続数 – ユーザー接続数が多いことが、インスタンスのパフォーマンスが下がっていること、応答時間が長くなっていることに関連しているとわかった場合、データベース接続数を制限することを検討します。DB インスタンスの最適なユーザー接続数は、インスタンスのクラスと実行中のオペレーションの複雑さによって異なります。User Connections パラメータを 0 (無制限) 以外の値に設定したパラメータグループと DB インスタンスを関連付けることで、データベース接続数を決めることができます。既存のパラメータグループを使用するか、新しいパラメータグループを作成できます。詳細については、「DB パラメータグループを使用する」を参照してください。

  • IOPS メトリクス – IOPS メトリクスの想定値はディスクの仕様とサーバーの設定によって異なるため、ベースラインを使用して一般的な値を把握します。値とベースラインとの差が一貫しているかどうかを調べます。最適な IOPS パフォーマンスを得るには、読み取りおよび書き込みオペレーションが最小限になるように、一般的な作業セットがメモリに収まることを確認してください。

モニタリングツール

AWS では、Amazon RDS のモニタリングに使用できるさまざまなツールを提供しています。これらのツールの中には、自動モニタリングを設定できるものもあれば、手操作を必要とするものもあります。モニタリングタスクをできるだけ自動化することをお勧めします。

自動モニタリングツール

以下に示す自動化されたモニタリングツールを使用すると、Amazon RDS がモニタリングされ、問題が検出されたときにレポートされます。

  • Amazon RDS イベント – Amazon RDS イベントにサブスクライブして、DB インスタンス、DB クラスター、DB スナップショット、DB クラスタースナップショット、DB パラメータグループ、DB セキュリティグループに変更が発生した場合に通知を受け取ります。詳細については、「Amazon RDS イベント通知の使用」を参照してください。

  • データベースのログファイル – Amazon RDS コンソールまたは Amazon RDS API アクションを使用して、データベースのログファイルの表示、ダウンロード、監視を行います。データベーステーブルに読み込まれているデータベースログファイルに対してクエリを実行することもできます。詳細については、「Amazon RDS データベースログファイル」を参照してください。

  • Amazon RDS 拡張モニタリング — は、DB インスタンスまたは DB クラスターが実行されているオペレーティングシステムについてのリアルタイムのメトリクスを参照します。詳細については、「拡張モニタリング」を参照してください。

さらに、Amazon RDS は Amazon CloudWatch と統合してモニタリング機能を追加します。

  • [Amazon CloudWatch Metrics] – Amazon RDS が毎分、アクティブなデータベースインスタンスとクラスターごとにメトリクスを自動的に CloudWatch に送信します。CloudWatch で Amazon RDS メトリクスによってさらに課金されることはありません。詳細については、「DB インスタンスのメトリクスの表示」を参照してください。

  • [Amazon CloudWatch Alarms] – 特定の期間にわたって単一の Amazon RDS メトリクスを監視し、指定したしきい値に関連するメトリクス値に基づいて 1 つ以上のアクションを実行できます。詳細については、「Amazon CloudWatch でのモニタリング」を参照してください。

  • [Amazon CloudWatch Logs] – MariaDB、MySQL、および Aurora MySQL によって、CloudWatch Logs のデータベースログファイルの監視、保存、およびアクセスが可能になります。詳細については、Amazon CloudWatch Logs User Guide を参照してください。

手動モニタリングツール

Amazon RDS のモニタリングにおけるもう 1 つの重要な部分は、CloudWatch アラームで網羅されていない項目を手動でモニタリングすることです。Amazon RDS、CloudWatch、AWS Trusted Advisor、その他の AWS コンソールのダッシュボードには、AWS 環境の状態が一目でわかるビューが表示されます。DB instance のログファイルを確認することもお勧めします。

  • Amazon RDS コンソールから、リソースについて以下の項目をモニタリングできます。

    • DB インスタンスへの接続の数

    • DB インスタンスへの読み書きオペレーションの量

    • DB インスタンスが現在利用しているストレージの量

    • DB インスタンスのために利用されるメモリおよび CPU の量

    • DB インスタンスとの間で送受信されるネットワークトラフィックの量

  • AWS Trusted Advisor ダッシュボードから、以下のコスト最適化、セキュリティ、対障害性、パフォーマンス向上のチェックを確認できます。

    • Amazon RDS アイドル DB インスタンス

    • Amazon RDS セキュリティグループのアクセスリスク

    • Amazon RDS バックアップ

    • Amazon RDS Multi-AZ

    • Amazon Aurora DB インスタンスアクセシビリティ

    これらのチェックの詳細については、「Trusted Advisor のベストプラクティス (チェック)」を参照してください。

  • CloudWatch ホーム ページは以下のように表示されます。

    • 現在のアラームとステータス

    • アラームとリソースのグラフ

    • サービス状態ステータス

    さらに、CloudWatch を使用して次のことが行えます。

    • 重視するサービスをモニタリングするためのカスタマイズしたダッシュボードを作成する

    • メトリクスデータをグラフ化して、問題のトラブルシューティングを行い、傾向を確認する

    • AWS リソースのすべてのメトリクスを検索して、参照する

    • 問題があることを通知するアラームを作成/編集する

Amazon CloudWatch でのモニタリング

Amazon CloudWatch を使用して DB インスタンスをモニタリングすることで、Amazon RDS から未加工データを収集し、リアルタイムに近い読み取り可能なメトリクスに加工することができます。これらの統計は 2 週間記録されるため、履歴情報にアクセスしてウェブアプリケーションまたはサービスの動作をより的確に把握することができます。デフォルトでは、Amazon RDS メトリクスデータは 1 分間隔で CloudWatch に自動的に送信されます。CloudWatch の詳細については、「Amazon CloudWatch、Amazon CloudWatch Events、Amazon CloudWatch Logs とは」 (Amazon CloudWatch ユーザーガイド) を参照してください。

Amazon RDS のメトリクスとディメンション

Amazon RDS リソースを使用する場合、Amazon RDS はメトリクスとディメンションを Amazon CloudWatch に毎分送信します。以下の手順を使用して、Amazon RDS のメトリクスを表示できます。

Amazon CloudWatch コンソールを使用してメトリクスを表示するには

メトリクスはまずサービスの名前空間ごとにグループ化され、次に各名前空間内のさまざまなディメンションの組み合わせごとにグループ化されます。

  1. https://console.aws.amazon.com/cloudwatch/にある CloudWatch コンソールを開きます。

  2. 必要に応じてリージョンを変更します。ナビゲーションバーから、AWS リソースがあるリージョンを選択します。詳細については、「リージョンとエンドポイント」を参照してください。

  3. ナビゲーションペインで メトリクスを選択します。RDS のメトリクスの名前空間を選択します。

     メトリクスの名前空間を選択する
  4. メトリクスディメンションを選択します。たとえば [By Database Class] を選択します。

  5. メトリクスを並べ替えるには、列見出しを使用します。メトリクスをグラフ表示するには、メトリクスの横にあるチェックボックスを選択します。リソースでフィルタするには、リソース ID を選択し、[Add to search] を選択します。メトリクスでフィルタするには、メトリクスの名前を選択し、[Add to search] を選択します。

     メトリクスのフィルタリング

AWS CLI を使ってメトリクスを表示するには

  • コマンドプロンプトで、次のコマンドを使用します。

    aws cloudwatch list-metrics --namespace AWS/RDS

Amazon RDS メトリクス

AWS/RDS 名前空間には、次のメトリクスが含まれます。

メトリクス 説明
BinLogDiskUsage

マスターでバイナリログが占有するディスク領域の量。MySQL リードレプリカに適用されます。

単位: バイト

BurstBalance

汎用 SSD (gp2) のバーストバケット I/O クレジットの利用可能パーセント。

単位: パーセント

CPUUtilization

CPU 使用率。

単位: パーセント

CPUCreditUsage

[T2 インスタンス] CPU 使用率に関してインスタンスで消費される CPU クレジットの数。1 つの CPU クレジットは、1 個の vCPU が 100% の使用率で 1 分間実行されること、または、vCPU、使用率、時間の同等の組み合わせ (たとえば、1 個の vCPU が 50% の使用率で 2 分間実行されるか、2 個の vCPU が 25% の使用率で 2 分間実行される) に相当します。

CPU クレジットメトリクスは、5 分間隔でのみ利用可能です。5 分を超える期間を指定する場合は、Average 統計の代わりに Sum 統計を使用します。

単位: クレジット (vCPU 分)

CPUCreditBalance

[T2 インスタンス] インスタンスが起動または開始後に蓄積した獲得 CPU クレジットの数。T2 スタンダードの場合、CPUCreditBalance には蓄積された起動クレジットの数も含まれます。

クレジットは、獲得後にクレジット残高に蓄積され、消費されるとクレジット残高から削除されます。クレジットバランスには、インスタンスサイズによって決まる上限があります。制限に到達すると、新しいクレジットはすべて破棄されます。T2 スタンダードの場合、起動クレジットは制限に対してカウントされません。

CPUCreditBalance のクレジットは、インスタンスがそのベースライン CPU 使用率を超えてバーストするために消費できます。

インスタンスが実行中の場合、CPUCreditBalance のクレジットは期限切れになりません。インスタンスが停止すると、CPUCreditBalance は保持されず、蓄積されたすべてのクレジットが失われます。

CPU クレジットメトリクスは、5 分間隔でのみ利用可能です。

単位: クレジット (vCPU 分)

DatabaseConnections

使用中のデータベース接続の数。

単位: Count

DiskQueueDepth

未処理のディスク I/O アクセス (読み取り/書き込みリクエスト) の数。

単位: Count

FreeableMemory

使用可能な RAM の容量。

単位: バイト

FreeStorageSpace

使用可能なストレージ領域の容量。

単位: バイト

MaximumUsedTransactionIDs

使用された最大のトランザクション ID。PostgreSQL に適用されます。

単位: Count

NetworkReceiveThroughput

モニタリングとレプリケーションに使用する顧客データベーストラフィックと Amazon RDS トラフィックの両方を含む、DB インスタンスの受信ネットワークトラフィック。

単位: バイト/秒

NetworkTransmitThroughput

モニタリングとレプリケーションに使用する顧客データベーストラフィックと Amazon RDS トラフィックの両方を含む、DB インスタンスの送信ネットワークトラフィック。

単位: バイト/秒

OldestReplicationSlotLag

受信した WAL データに関して最も遅延の大きいレプリカの遅延サイズ。PostgreSQL に適用されます。

単位: メガバイト

ReadIOPS

1 秒あたりのディスク読み取り I/O 操作の平均回数。

単位: Count/Second

ReadLatency

1 回のディスク I/O 操作にかかる平均時間。

単位: Seconds

ReadThroughput

1 秒あたりのディスクからの平均読み取りバイト数。

単位: バイト/Second

ReplicaLag

ソース DB インスタンスからリードレプリカ DB インスタンスまでのラグ。MySQL、MariaDB、PostgreSQL リードレプリカに適用。

単位: Seconds

ReplicationSlotDiskUsage

レプリケーションスロットファイルで使用されているディスク容量。PostgreSQL に適用されます。

単位: メガバイト

SwapUsage

DB インスタンスで使用するスワップ領域の量。

単位: バイト

TransactionLogsDiskUsage

トランザクションログで使用されているディスク容量。PostgreSQL に適用されます。

単位: メガバイト

TransactionLogsGeneration

1 秒あたりに生成されるトランザクションログのサイズ。PostgreSQL に適用されます。

単位: メガバイト/秒

WriteIOPS

1 秒あたりのディスク書き込み I/O 操作の平均回数。

単位: Count/Second

WriteLatency

1 回のディスク I/O 操作にかかる平均時間。

単位: Seconds

WriteThroughput

1 秒あたりのディスクへの平均書き込みバイト数。

単位: バイト/Second

Amazon RDS ディメンション

Amazon RDS メトリクスデータは、次の表のいずれかのディメンションを使用してフィルタリングできます。

ディメンション

説明

DBInstanceIdentifier

このディメンションを指定すると、リクエストしたデータをフィルタリングして、特定の DB インスタンスを抽出することができます。

DBClusterIdentifier

このディメンションでは、特定の Amazon Aurora DB クラスターからリクエストしたデータをフィルタリングします。

DBClusterIdentifier, Role

このディメンションは、特定の Amazon Aurora DB クラスターに対してリクエストするデータをフィルタし、インスタンスロール (WRITER/READER) 別にメトリクスを集計します。たとえば、クラスターに属するすべての READER インスタンスのメトリクスを集計できます。

DatabaseClass

このディメンションを指定すると、リクエストしたデータをフィルタリングして、特定のデータベースクラスに属する全インスタンスを抽出することができます。たとえば、メトリクスを組み合わせて、db.m1.small というデータベースクラスに属する全インスタンスを抽出することができます。

EngineName

このディメンションを指定すると、リクエストしたデータをフィルタリングして、特定のエンジン名を有するインスタンスだけを抽出することができます。たとえば、メトリクスを組み合わせて、mysql というエンジン名を有する全インスタンスを抽出することができます。

Amazon RDS をモニタリングする CloudWatch アラームの作成

CloudWatch アラームを作成できます。これは、アラームの状態が変わったときに Amazon SNS メッセージを送信します。アラームは、指定期間にわたって単一のメトリクスを監視し、その値と複数期間に対するしきい値との比較結果に基づいて 1 つ以上のアクションを実行します。アクションは、Amazon SNS トピックまたは Auto Scaling ポリシーに送信される通知です。

アラームは、持続している状態変化に対してのみアクションを呼び出します。CloudWatch アラームは、単に特定の状態にあるというだけでアクションを呼び出すわけではありません。状態が変わり、それが指定した数の期間にわたって持続している必要があります。次の手順は、Amazon RDS のアラームを作成する方法を示しています。

CloudWatch コンソールを使用してアラームを設定するには

  1. AWS マネジメントコンソール にサインインした後、 https://console.aws.amazon.com/cloudwatch/にある CloudWatch コンソールを開きます。

  2. [アラーム]、[アラームの作成] の順に選択します。これにより、[Create Alarm Wizard] が起動します。

  3. [RDS メトリクス] をクリックし、Amazon RDS メトリクスをスクロールして、アラームを設定するメトリクスを見つけます。ダイアログボックスに Amazon RDS メトリクスのみを表示するには、リソースの識別子で検索します。アラームを作成するメトリクスを選択し、[次へ] をクリックします。

  4. [名前]、[説明]、[次の時] のそれぞれにメトリクスの値を入力します。

  5. CloudWatch が必要な場合、アラーム状態に達したときメールを送信するために、[Whenever this alarm:] フィールドで、[State is ALARM] を選択します。[Send notification to:] フィールドで、既存の SNS トピックを選択します。[Create topic] を選択すると、新しいメールサブスクリプションリストの名前とメールアドレスを設定できます。このリストは保存され、今後のアラーム用のフィールドに表示されます。

    注記

    [Create Topic] を使用して新しい Amazon SNS トピックを作成する場合、メールアドレスを検証しなければ、そのアドレスで通知を受け取ることができません。メールは、アラームがアラーム状態になったときにのみ送信されます。アラーム状態になったときに、メールアドレスの検証がまだ完了していない場合は、そのアドレスで通知を受け取ることはできません。

  6. この時点で、[アラームのプレビュー] エリアで、作成するアラームを確認できます。[Create Alarm] を選択します。

AWS CLI を使用してアラームを設定するには

CloudWatch API を使用してアラームを設定するには

Amazon CloudWatch Logs へのデータベースエンジンログの発行

Amazon RDS データベースエンジンを設定して、ログデータを Amazon CloudWatch Logs のロググループに発行することができます。CloudWatch Logs を使用すると、ログデータのリアルタイム分析や、CloudWatch を使用したアラームの作成、メトリクスの表示を行うことができます。CloudWatch Logs を使用して、ログレコードを堅牢性の高いストレージに保存できます。これは、CloudWatch Logs エージェントで管理できます。たとえば、必要なときに raw ログにアクセスできるように、ログレコードをホストからログサービスにローテーションさせるタイミングを決定できます。

Amazon RDS MariaDB (バージョン 10.0 および 10.1)、Amazon RDS MySQL (バージョン 5.6 および 5.7)、および Aurora MySQL のログをエクスポートできます。

注記

データ発行を有効化する前に、サービスにリンクされたロールが必要になります。サービスにリンクされたロールの詳細については、Amazon RDS のサービスにリンクされたロールの使用 を参照してください。

これらのエンジンに固有の要件については、次を参照ください。

CloudWatch Log 統合の設定

CloudWatch Logs にデータベースログファイルを発行するには、発行するログを選択します。新しい DB インスタンスを作成するとき、[Advanced Settings] セクションでこの選択を行います。また、既存の DB インスタンスを変更して発行を開始できます。

 CloudWatch Logs の追加

発行を有効化したあと、Amazon RDS はすべての DB インスタンスログレコードをロググループに継続してストリームします。たとえば、発行した各タイプのログにロググループ /aws/rds/instance/log type を持っているとします。このロググループは、ログを生成するデータベースインスタンスと同じ AWS リージョンにあります。

ログレコードを発行したあと、CloudWatch Logs を使用してレコードの検索およびフィルタリングができます。ログの検索およびフィルタリングについての詳細は、「ログデータの検索およびフィルタリング」を参照してください。

DB インスタンスのメトリクスの表示

Amazon RDS には、DB インスタンスと DB クラスターの状態をモニタリングするためのメトリクスが用意されています。DB インスタンスとオペレーティングシステム (OS) の両方のメトリクスをモニタリングできます。

このセクションでは RDS コンソールと CloudWatch を使用して DB インスタンスのメトリクスを表示する方法の詳細について説明しています。CloudWatch Logs を使用して DB インスタンスのオペレーティングシステムのメトリクスをリアルタイムでモニタリングする方法の詳細については、「拡張モニタリング」を参照してください。

コンソールを使用したメトリクスの表示

DB インスタンスの DB と OS のメトリクスを表示するには

  1. AWS マネジメントコンソールにサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/) を開きます。

  2. ナビゲーションペインで、[インスタンス] を選択します。

  3. 情報が必要な DB の左側にあるチェックボックスをオンにします。[Show Monitoring] で、メトリクスを表示する方法を以下のオプションから選択します。

    • [CloudWatch] – Amazon CloudWatch から使用できる DB インスタンスメトリクスの概要を表示します。各メトリクスには、特定の期間にわたってモニタリングされたメトリクスを示すグラフが含まれます。

    • [拡張モニタリング] – 拡張モニタリングが有効になっている DB インスタンスに使用できる OS メトリクスの概要を表示します。各メトリクスには、特定の期間にわたってモニタリングされたメトリクスを示すグラフが含まれます。

    • [OS プロセスリスト] – 選択したインスタンスで実行中の各プロセスの詳細を表示します。

     RDS メトリクスの表示オプション

    ヒント

    [時間範囲] ドロップダウンリストを使用して、グラフで表されるメトリックの時間範囲を選択できます。

    任意のグラフを選択して、より詳細なビューを表示することができます。メトリック固有のフィルターをデータに適用することもできます。

CLI または API での DB インスタンスメトリクスの表示

Amazon RDS は CloudWatch メトリクスと統合されて、さまざまな DB インスタンスメトリクスが用意されています。CloudWatch のメトリクスは、RDS コンソール、AWS CLI、または API を使用して表示できます。

Amazon RDS メトリクスの完全なリストについては、Amazon CloudWatch ユーザーガイド の「Amazon RDS ディメンションとメトリクス」を参照してください。

CloudWatch CLI を使用した DB メトリクスの表示

注記

次の CLI の例には、コマンドラインツール CloudWatch が必要です。CloudWatch の詳細と開発者ツールのダウンロードについては、「Amazon CloudWatch 製品ページ」を参照してください。この例で指定されている StartTime 値と EndTime 値は、例示を目的としています。DB インスタンスの適切な開始時間と終了時間の値に置き換える必要があります。

DB インスタンスの使用状況およびパフォーマンス統計情報を表示するには

  • 以下のパラメータを指定して CloudWatch コマンド mon-get-stats を使用します。

    PROMPT>mon-get-stats FreeStorageSpace --dimensions="DBInstanceIdentifier=mydbinstance" --statistics= Average --namespace="AWS/RDS" --start-time 2009-10-16T00:00:00 --end-time 2009-10-16T00:02:00
CloudWatch API を使用した DB メトリクスの表示

この例で指定されている StartTime 値と EndTime 値は、例示を目的としています。DB インスタンスの適切な開始時間と終了時間の値に置き換える必要があります。

DB インスタンスの使用状況およびパフォーマンス統計情報を表示するには

  • 以下のパラメーターを指定して CloudWatch API GetMetricStatistics を呼び出します。

    • Statistics.member.1 = Average

    • Namespace = AWS/RDS

    • StartTime = 2009-10-16T00:00:00

    • EndTime = 2009-10-16T00:02:00

    • Period = 60

    • MeasureName = FreeStorageSpace