メニュー
Amazon Relational Database Service
ユーザーガイド (API Version 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 CloudWatch Alarms] – 指定された期間にわたって単一のメトリクスを監視し、複数の期間にわたり既定のしきい値に関連するメトリクス値に基づいて 1 つ以上のアクションを実行します。アクションは、Amazon Simple Notification Service (Amazon SNS) トピックまたは Auto Scaling ポリシーに送信される通知です。CloudWatch アラームはそれが特定の状態にあるという理由だけではアクションを呼び出しません。アクションを呼び出すには、状態が変更され、その状態が特定の期間にわたって維持されている必要があります。詳細については、「Amazon CloudWatch でのモニタリング」を参照してください。

  • [Amazon CloudWatch Logs] – AWS CloudTrail またはその他のソースのログファイルの監視、保存、アクセスができます。詳細については、Amazon CloudWatch ユーザーガイドの「ログファイルのモニタリング」を参照してください。

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

  • [Amazon CloudWatch Events] – イベントに一致し、1 つ以上のターゲット関数またはストリームにルーティングして変更を行い、状態情報を取得して、修正作業を行います。詳細については、Amazon CloudWatch ユーザーガイドの「イベントの使用」を参照してください。

  • [AWS CloudTrail Log Monitoring] – アカウント間でログファイルを共有し、CloudWatch Logs に送信してリアルタイムで CloudTrail ログファイルを監視し、Java でログを処理するアプリケーションを記述して、CloudTrail によって配信後にログファイルが変更されていないことを確認します。詳細については、AWS CloudTrail User Guideの「CloudTrail ログファイルを使用する」を参照してください。

    Amazon RDS で AWS CloudTrail ログモニタリングを使用する詳細については、「AWS CloudTrail を使用して Amazon RDS API 呼び出しのログを記録する」を参照してください。

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

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

手動モニタリングツール

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 でのモニタリング

CloudWatch を使用して DB instance をモニタリングすることで、Amazon RDS から未加工データを収集し、リアルタイムに近い読み取り可能なメトリクスに加工することができます。これらの統計は 2 週間記録されるため、履歴情報にアクセスしてウェブアプリケーションまたはサービスの動作をより的確に把握することができます。デフォルトでは、Amazon RDS メトリクスデータは 1 分間隔で Amazon CloudWatch に自動的に送信されます。Amazon 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 を使ってメトリクスを表示するには

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

    Copy
    aws cloudwatch list-metrics --namespace AWS/RDS

Amazon RDS メトリクス

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

メトリクス 説明
BinLogDiskUsage

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

単位: バイト

BurstBalance

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

単位: パーセント

CPUUtilization

CPU 使用率。

単位: パーセント

CPUCreditUsage

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

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

単位: Count

CPUCreditBalance

[T2 インスタンス] インスタンスがそのベース CPU 使用率を超えてバーストするために使用できる CPU クレジットの数。クレジットは、獲得後にクレジットバランスに保存され、期限切れになるとクレジットバランスから削除されます。クレジットは獲得してから 24 時間後に期限切れになります。

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

単位: Count

DatabaseConnections

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

単位: Count

DiskQueueDepth

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

単位: Count

FreeableMemory

使用可能な RAM の容量。

単位: バイト

FreeStorageSpace

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

単位: バイト

ReplicaLag

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

単位: Seconds

SwapUsage

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

単位: バイト

ReadIOPS

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

単位: Count/Second

WriteIOPS

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

単位: Count/Second

ReadLatency

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

単位: Seconds

WriteLatency

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

単位: Seconds

ReadThroughput

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

単位: バイト/Second

WriteThroughput

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

単位: バイト/Second

NetworkReceiveThroughput

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

単位: バイト/秒

NetworkTransmitThroughput

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

単位: バイト/秒

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 を使用してアラームを設定するには

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. ナビゲーションペインで、[DB Instances] を選択します。

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

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

    • [Show Single Graph View] – 一度に 1 つのメトリクスをより詳細に表示します。各メトリクスには、特定の期間にわたってモニタリングされたメトリクスを示すグラフが含まれます。

    • [Show Latest Metrics View] – DB インスタンスメトリクスの概要をグラフなしで表示します。[Full Monitoring View] には、全画面表示オプションが含まれます。

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

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

    ヒント

    グラフで表されるメトリクスの時間範囲を選択するには、[Time Range] を使用します。

    グラフを選択して、より詳細なビューを表示したら、メトリクスデータにメトリクス固有のフィルタを適用できます。

    [Time Range] は拡張モニタリングダッシュボードでは使用できません。

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 を使用します。

    Copy
    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

    Copy
    http://monitoring.amazonaws.com/ ?SignatureVersion=2 &Action=GetMetricStatistics &Version=2009-05-15 &StartTime=2009-10-16T00:00:00 &EndTime=2009-10-16T00:02:00 &Period=60 &Statistics.member.1=Average &Dimensions.member.1="DBInstanceIdentifier=mydbinstance" &Namespace=AWS/RDS &MeasureName=FreeStorageSpace &Timestamp=2009-10-15T17%3A48%3A21.746Z &AWSAccessKeyId=<AWS Access Key ID> &Signature=<Signature>

関連トピック