Amazon Aurora
Aurora のユーザーガイド

拡張モニタリング

Amazon RDS には、DB インスタンスが実行されているオペレーティングシステム (OS) のリアルタイムのメトリクスが用意されています。コンソールで DB インスタンスのメトリクスを表示したり、選択したモニタリングシステムで Amazon CloudWatch Logs からの拡張モニタリング JSON 出力を使用したりできます。

デフォルトでは、拡張モニタリングメトリクスは、CloudWatch Logs に 30 日間保存されます。メトリクスが CloudWatch Logs に保存される時間の長さを変更するには、CloudWatch コンソールの RDSOSMetrics ロググループの保存期間を変更します。詳細については、Amazon CloudWatch Logs User Guide の「CloudWatch ログでのログデータ保管期間の変更」を参照してください。

拡張モニタリングの使用コストは以下のいくつかの要因によって異なります。

  • 料金は、Amazon CloudWatch Logs に示された無料利用枠を超えた拡張モニタリングに対してのみ発生します。

    料金の詳細については、「Amazon CloudWatch 料金表」を参照してください。

  • モニタリング間隔を短くすると、OS メトリクスのレポート回数が増え、モニタリングコストが高くなります。

  • 拡張モニタリングの使用コストは、拡張モニタリングが有効になっている各 DB インスタンスに適用されます。多数の DB インスタンスをモニタリングすると、少数の DB インスタンスをモニタリングするよりもコストが高くなります。

  • 複数のコンピューティング集中型のワークロードをサポートする DB インスタンスでは、レポートする OS プロセスアクティビティが増え、拡張モニタリングのコストがより高くなります。

CloudWatch と拡張モニタリングのメトリクスの相違点

CloudWatch は DB インスタンスのハイパーバイザーから CPU 使用率のメトリクスを収集し、拡張モニタリングはインスタンス上のエージェントからそのメトリクスを収集します。そのため、ハイパーバイザーレイヤーで少量の処理が実行されるため、測定値間に違いが見つかることがあります。DB インスタンスが使用するインスタンスクラスが小さくなるほど、この違いは大きくなることがあります。多くの場合、1 つの物理インスタンスのハイパーバイザーレイヤーによって管理される仮想マシン (VM) の数が増えるためです。拡張モニタリングのメトリクスが便利なのは、DB インスタンス上のさまざまなプロセスやスレッドがどのように CPU を使用しているかを表示するときです。

拡張モニタリングの設定と有効化

拡張モニタリングを有効にするには、以下に記載されているステップを実施します。

開始する前に

拡張モニタリングには、CloudWatch Logs に OS メトリクスの情報を送るためのアクセス権限が必要です。AWS Identity and Access Management (IAM) ロールを使用して、拡張モニタリングに必要なアクセス権限を付与します。

コンソールで拡張モニタリングを初めて有効にするときに、[Monitoring Role ] プロパティの [Default] オプションを選択して、RDS で必要な IAM ロールを作成できます。RDS では、自動的に rds-monitoring-role という名前のロールが作成され、指定した DB インスタンスまたはリードレプリカに使用されます。

また、拡張モニタリングを有効にする前に必要なロールを作成してから、拡張モニタリングを有効にするときに新しいロールの名前を指定することもできます。AWS CLI または RDS API を使用して拡張モニタリングを有効にする場合は、この必要なロールを作成する必要があります。

Amazon CloudWatch Logs サービスとの通信を Amazon RDS に自動的に許可する適切な IAM ロールを作成するには、以下の手順を実行します。

拡張モニタリングを有効にするユーザーには、PassRole アクセス許可を付与する必要があります。詳細については、IAM ユーザーガイドの「AWS サービスにロールを渡すアクセス許可をユーザーに許可する」の「例 2」を参照してください。

Amazon RDS 拡張モニタリング用の IAM ロールを作成するには

  1. IAM コンソール (https://console.aws.amazon.com) を開きます。

  2. ナビゲーションペインで [Roles (ロール) ] を選択します。

  3. [ロールの作成] を選択します。

  4. [AWS のサービス] タブを選択し、サービスのリストから [RDS] を選択します。

  5. [RDS - 拡張モニタリング]、[次へ: アクセス許可] の順に選択します。

  6. [アタッチされたアクセス許可ポリシー] ページに [AmazonRDSEnhancedMonitoringRole] が表示されていることを確認し、[次へ : タグ] を選択します。

  7. [タグの追加] ページで、[次へ: レビュー] を選択します。

  8. [ロール名] にロール名 (例: emaccess) を入力し、[ロールの作成] を選択します。

拡張モニタリングの有効化と無効化

DB クラスターまたはリードレプリカを作成するときか、DB クラスターを変更するときに、拡張モニタリングを有効にすることができます。DB インスタンスを変更して拡張モニタリングを有効にした場合は、変更を有効にするために DB インスタンスを再起動する必要はありません。

以下のいずれかの操作を行うときに、RDS コンソールで拡張モニタリングを有効にすることができます。

  • [DB クラスターの作成] – [[詳細設定] の設定] ページで拡張モニタリングを有効にすることができます。

  • [Create a Read Replica (リードレプリカの作成)] – [[詳細設定] の設定] ページで拡張モニタリングを有効にすることができます。

  • [Modify a DB Instance] – [Modify DB Instance] ページで拡張モニタリングを有効にすることができます。

RDS のコンソールを使用して拡張モニタリングを有効にするには、[Monitoring] セクションまでスクロールし、以下の手順を実行します。

  1. DB インスタンスまたはリードレプリカの [拡張モニタリングを有効にする] を選択します。

  2. [Monitoring Role] プロパティで、Amazon CloudWatch Logs との通信を Amazon RDS に許可するために作成した IAM ロールに設定するか、[Default] を選択して、RDS によって rds-monitoring-role という名前でロールが作成されるようにします。

  3. [Granularity] プロパティで、DB インスタンスまたはリードレプリカのメトリクスが収集される間隔 (秒単位) に設定します。[詳細度] プロパティは、1510153060 のいずれかの値に設定できます。

拡張モニタリングを無効にするには、[拡張モニタリングを無効にする] を選択します。


          拡張モニタリングを有効にする

拡張モニタリングを有効にするために DB インスタンスを再起動する必要はありません。

注記

RDS コンソールは最速で 5 秒ごとに更新されます。RDS コンソールで詳細度を 1 秒に設定しても、メトリクスはやはり 5 秒ごとに更新されます。1 秒ごとにメトリクスの更新を取得するには、CloudWatch Logs を使用します。

拡張モニタリングの表示

拡張モニタリングによってレポートされた OS のメトリクスを RDS コンソールで表示するには、[モニタリング] の [拡張モニタリング] を選択します。

拡張モニタリングページは、以下に表示されます。


        [Dashboard] ビュー

DB インスタンスで実行中のプロセスの詳細を確認する場合は、[モニタリング] の [OS プロセスリスト] を選択します。

[処理一覧] ビューは次のように表示されます。


        [Process List] ビュー

[処理一覧] ビューに表示される拡張モニタリングのメトリクスは以下のように整理されます。

  • [RDS child processes] – DB インスタンスをサポートする RDS プロセス (Amazon Aurora DB クラスターの場合は aurora) の概要を表示します。プロセスのスレッドは親プロセスの下にネストされて表示されます。プロセスのスレッドには CPU 使用率のみが表示されます。他のメトリクスはプロセスのすべてのスレッドで同じであるためです。コンソールには最大 100 個のプロセスとスレッドが表示されます。結果は、プロセスとスレッドを消費している上位の CPU とメモリの組み合わせです。プロセスとスレッドが 50 個よりも多い場合、コンソールではカテゴリ別に上位 50 個の消費元が表示されます。この表示は、パフォーマンスに最大の影響を与えているプロセスを特定するために役立ちます。

  • [RDS processes] – RDS DB インスタンスをサポートするために必要な RDS 管理エージェント、診断モニタリングプロセス、その他の AWS プロセスによって使用されているリソースの概要を表示します。

  • [OS processes] – 一般的にパフォーマンスに最小の影響を与えているカーネルとシステムプロセスの概要を表示します。

各プロセスに対して表示される項目は次のとおりです。

  • VIRT – プロセスの仮想サイズを表示します。

  • RES – プロセスが使用する実際の物理メモリを表示します。

  • CPU% – プロセスで消費された CPU 帯域幅のパーセンテージを表示します。

  • MEM% – プロセスで消費された合計メモリのパーセンテージを表示します。

RDS コンソールに表示するモニタリングデータは、Amazon CloudWatch Logs から取得されます。また、DB インスタンスのメトリクスも CloudWatch Logs からログストリームとして取得できます。詳細については、「CloudWatch Logs を使用した拡張モニタリングの表示」を参照してください。

以下の実行中は拡張モニタリングメトリクスは返されません:

  • DB インスタンスのフェイルオーバー。

  • DB インスタンスのインスタンスクラスの変更 (コンピューティングのスケール)。

拡張モニタリングのメトリクスは DB インスタンスの再起動中も返されます。これはデータベースエンジンのみが再起動するためです。オペレーティングシステムのメトリクスは、引き続き報告されます。

CloudWatch Logs を使用した拡張モニタリングの表示

DB インスタンスの拡張モニタリングを有効にした後、CloudWatch Logs を使用して DB インスタンスのメトリクスを表示できます。各ログストリームはモニタリング中の 1 つの DB インスタンスを表します。ログストリーム識別子は DB インスタンスのリソース識別子 (DbiResourceId) です。

拡張モニタリングのログデータを表示するには

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

  2. 必要に応じて、DB インスタンスがあるリージョンを選択します。詳細については、『Amazon Web Services の全般的なリファレンス』の「リージョンとエンドポイント」を参照してください。

  3. ナビゲーションペインで [Logs (ログ)] を選択します。

  4. ロググループのリストから [RDSOSMetrics] を選択します。

  5. ログストリームのリストから、表示するログストリームを選択します。

使用可能な OS メトリクス

以下の表では、Amazon CloudWatch Logs で使用できる OS メトリクスを示しています。

Aurora のメトリクス

グループ メトリクス 説明

General

engine

DB インスタンスのデータベースエンジン。

instanceID

DB インスタンス識別子。

instanceResourceID

DB インスタンスのリージョン固有の変更不可の識別子。ログストリーム識別子としても使用されます。

numVCPUs

DB インスタンスの仮想 CPU の数。

timestamp

メトリクスが作成された時間。

uptime

DB インスタンスがアクティブになってからの経過時間。

version

OS メトリクスのストリーム JSON 形式のバージョン。

cpuUtilization

guest

ゲストプログラムが使用中の CPU の使用率。

idle

アイドル状態の CPU の使用率。

irq

ソフトウェア割り込みが使用中の CPU の使用率。

nice

最も低い優先順位で実行されているプログラムが使用中の CPU の使用率。

steal

他の仮想マシンが使用中の CPU の使用率。

system

カーネルが使用中の CPU の使用率。

total

使用中の CPU の合計使用率。この値は nice 値を含みます。

user

ユーザープログラムが使用中の CPU の使用率。

wait

I/O アクセスを待機中の CPU の未使用率。

fileSys

maxFiles

ファイルシステム用に作成できるファイルの最大数。

mountPoint

ファイルシステムへのパス。

name

ファイルシステムの名前。

total

ファイルシステムに使用できるディスク領域の合計量 (キロバイト単位)。

used

ファイルシステム内のファイルが使用中のディスク領域の量 (キロバイト単位)。

usedFilePercent

使用中のファイルの割合。

usedFiles

ファイルシステム内のファイルの数。

usedPercent

ファイルシステムが使用中のディスク領域の割合。

loadAverageMinute

fifteen

過去 15 分間に CPU 時間をリクエストしたプロセスの数。

five

過去 5 分間に CPU 時間をリクエストしたプロセスの数。

one

過去 1 分間に CPU 時間をリクエストしたプロセスの数。

memory

active

割り当てられたメモリの量 (キロバイト単位)。

buffers

ストレージデバイスへの書き込み前に I/O バッファリングリクエストに使用されたメモリの量 (キロバイト単位)。

cached

ファイルシステムベースの I/O のキャッシュに使用されたメモリの量。

dirty

変更されたがストレージ内のその関連データブロックに書き込まれなかった RAM 内のメモリページの量 (キロバイト単位)。

free

未割り当てのメモリの量 (キロバイト単位)。

hugePagesFree

空き huge ページの数。huge ページは Linux カーネルの機能です。

hugePagesRsvd

コミットされた huge ページの数。

hugePagesSize

各 huge ページユニットのサイズ (キロバイト単位)。

hugePagesSurp

使用可能な huge ページの余剰数/合計数。

hugePagesTotal

システム用の huge ページの合計数。

inactive

最も使用されていないメモリページの量 (キロバイト単位)。

mapped

プロセスアドレス空間内でメモリマップされているファイルシステムの内容の合計量 (キロバイト単位)。

pageTables

ページテーブルが使用中のメモリの量 (キロバイト単位)。

slab

再利用可能なカーネルデータ構造体の量 (キロバイト単位)。

total

メモリの合計量 (キロバイト単位)。

writeback

バックアップストレージにまだ書き込み中の RAM 内のダーティページの量 (キロバイト単位)。

network

interface

DB インスタンスに使用中のネットワークインターフェイスの識別子。

rx

1 秒あたりの受信バイト数。

tx

1 秒あたりのアップロードバイト数。

processList

cpuUsedPc

プロセスが使用中の CPU の使用率。

id

プロセスの識別子。

memoryUsedPc

プロセスが使用中のメモリの量 (キロバイト単位)。

name

プロセスの名前。

parentID

プロセスの親プロセスの識別子。

rss

プロセスに割り当てられたメモリの量 (キロバイト単位)。

tgid

スレッドグループ識別子 (スレッドが属するプロセス ID を表す番号)。この識別子は同じプロセスのグループスレッドに使用されます。

VIRT

プロセスに割り当てられた仮想メモリの量 (キロバイト単位)。

swap

swap

使用可能なスワップメモリの量 (キロバイト単位)。

swap in

ディスクからスワップされたメモリの量 (キロバイト単位)。

swap out

ディスクにスワップされたメモリの量 (キロバイト単位)。

free

空きスワップメモリの量 (キロバイト単位)。

committed

キャッシュメモリとして使用されたスワップメモリの量 (キロバイト単位)。

tasks

blocked

ブロックされているタスクの数。

running

実行中のタスクの数。

sleeping

スリープ中のタスクの数。

stopped

停止中のタスクの数。

total

タスクの合計数。

zombie

アクティブな親タスクの非アクティブな子タスクの数。