拡張モニタリング - Amazon Aurora

拡張モニタリング

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

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

拡張モニタリングメトリクスは Cloudwatch メトリクスではなく 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) を入力し、[ロールの作成] を選択します。

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

拡張モニタリングを有効または無効にするには、AWS マネジメントコンソール、AWS CLI、または RDS API を使用します。

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

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

  • DB クラスターを作成する – 拡張モニタリングは、[Additional configuration (追加設定)] の [Monitoring (モニタリング)] セクションで有効にできます。

  • リードレプリカを作成する – 拡張モニタリングは [Monitoring (モニタリング)] セクションで有効にできます。

  • DB インスタンスを変更する – 拡張モニタリングは [Monitoring (モニタリング)] ページで有効にできます。

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

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

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

AWS CLI を使用して拡張モニタリングを有効にするには、次のコマンドで --monitoring-interval オプションを 0 以外の値に設定し、--monitoring-role-arn オプションを 開始する前に で作成したロールに設定します。

--monitoring-interval オプションにより、拡張モニタリングのメトリクスが収集される時間点の間隔 (秒単位) が指定されます。オプションの有効な値は、015101530、および 60 です。

AWS CLI を使用して拡張モニタリングを無効にするには、次のコマンドで --monitoring-interval オプションを 0 に設定します。

次の例では、DB インスタンスの拡張モニタリングを有効にします。

Linux、macOS、Unix の場合:

aws rds modify-db-instance \ --db-instance-identifier mydbinstance \ --monitoring-interval 30 \ --monitoring-role-arn arn:aws:iam::123456789012:role/emaccess

Windows の場合:

aws rds modify-db-instance ^ --db-instance-identifier mydbinstance ^ --monitoring-interval 30 ^ --monitoring-role-arn arn:aws:iam::123456789012:role/emaccess

RDS API を使用して拡張モニタリングを有効にするには、次のオペレーションで MonitoringInterval パラメータを0 以外の値に設定し、 MonitoringRoleArn パラメータを 開始する前に で作成したロールに設定します。

MonitoringInterval パラメータにより、拡張モニタリングのメトリクスが収集される時間点の間隔 (秒単位) が指定されます。パラメータの有効な値は、015101530、および 60 です。

RDS API を使用して拡張モニタリングを無効にするには、これらのオペレーションで MonitoringInterval パラメータを 0 に設定します。

拡張モニタリングの表示

拡張モニタリングによってレポートされた 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

該当しません

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

numVCPUs

該当しません

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

timestamp

該当しません

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

uptime

該当しません

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

version

該当しません

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

cpuUtilization

guest

CPU ゲスト

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

idle

CPU アイドル

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

irq

CPU IRQ

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

nice

CPU Nice

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

steal

CPU Steal

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

system

CPU システム

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

total

CPU 合計

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

user

CPU ユーザー

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

wait

CPU 待機

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

diskIO

avgQueueLen

平均キューサイズ

I/O デバイスのキューで待機中のリクエストの数。

avgReqSz

平均リクエストサイズ

平均リクエストサイズ (キロバイト単位)。

await

ディスク I/O 待機

リクエストへの応答に必要なミリ秒数 (キュー時間とサービス時間を含む)。

device

該当しません

使用中のディスクデバイスの識別子。

diskQueueDepth

ディスクキューの深さ

ディスクへのアクセスを待機している保留中の入出力 (I/O) リクエストの数。

readIOsPS

読み取り I/O/秒

読み取りオペレーションの 1 秒あたりの数。

readKb

読み取り合計

読み取りの合計キロバイト数。

readKbPS

読み取り KB/秒

読み取りの 1 秒あたりのキロバイト数。

readLatency

読み取りレイテンシー

読み取り I/O リクエスト送信からその完了までの経過時間(ミリ秒単位)。

このメトリクスは Amazon Aurora にのみ使用できます。

readThroughput

読み取りスループット

DB クラスターへのリクエストによって使用されるネットワークスループットの量 (バイト/秒単位)。

このメトリクスは Amazon Aurora にのみ使用できます。

rrqmPS

Rrqms

キューに入れられてマージされた読み取りリクエストの 1 秒あたりの数。

tps

TPS

I/O トランザクションの 1 秒あたりの数。

util

ディスク I/O 使用率

リクエスト発行中の CPU 時間の消費率。

writeIOsPS

書き込み IO/秒

書き込みオペレーションの 1 秒あたりの数。

writeKb

書き込み合計

書き込みの合計キロバイト数。

writeKbPS

書き込み KB/秒

書き込みの 1 秒あたりのキロバイト数。

writeLatency

書き込みレイテンシー

書き込み I/O リクエスト送信から完了までの平均経過時間(ミリ秒単位)。

このメトリクスは Amazon Aurora にのみ使用できます。

writeThroughput

書き込みスループット

DB クラスターからのレスポンスによって使用されるネットワークスループットの量 (バイト/秒単位)。

このメトリクスは Amazon Aurora にのみ使用できます。

wrqmPS

Wrqms

キューに入れられてマージされた書き込みリクエストの 1 秒あたりの数。

fileSys

maxFiles

最大 i ノード

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

mountPoint

該当しません

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

name

該当しません

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

total

合計ファイルシステム

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

used

使用済みファイルシステム

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

usedFilePercent

使用済み (%)

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

usedFiles

使用済み i ノード

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

usedPercent

使用済み i ノード %

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

loadAverageMinute

fifteen

平均負荷 (15 分)

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

five

平均負荷 (5 分)

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

one

平均負荷 (1 分)

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

memory

active

アクティブなメモリ

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

buffers

バッファ済みメモリ

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

cached

キャッシュ済みメモリ

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

dirty

ダーティメモリ

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

free

空きメモリ

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

hugePagesFree

huge ページ (空き)

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

hugePagesRsvd

huge ページ (予約)

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

hugePagesSize

huge ページサイズ

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

hugePagesSurp

huge ページ (余剰)

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

hugePagesTotal

huge ページ (合計)

huge ページの合計数。

inactive

非アクティブメモリ

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

mapped

マップ済みメモリ

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

pageTables

ページテーブル

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

slab

スラブメモリ

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

total

合計メモリ

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

writeback

書き戻しメモリ

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

network

interface

該当しません

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

rx

RX

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

tx

TX

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

processList

cpuUsedPc

CPU %

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

id

該当しません

プロセスの識別子。

memoryUsedPc

MEM%

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

name

該当しません

プロセスの名前。

parentID

該当しません

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

rss

RES

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

tgid

該当しません

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

VIRT

VIRT

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

swap

swap

スワップ

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

swap in

スワップイン

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

swap out

スワップアウト

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

free

空きスワップ

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

committed

コミット済みスワップ

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

tasks

blocked

ブロック済みタスク

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

running

実行中のタスク

実行中のタスクの数。

sleeping

スリープ中のタスク

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

stopped

停止済みタスク

停止中のタスクの数。

total

タスク合計

タスクの合計数。

zombie

Zombie タスク

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