メニュー
Amazon Relational Database Service
ユーザーガイド (API Version 2014-10-31)

拡張モニタリング

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

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

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

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

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

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

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

拡張モニタリングの可用性

  • 拡張モニタリングは、次のデータベースエンジンに使用できます。

    • Amazon Aurora

    • MariaDB

    • Microsoft SQL Server

    • MySQL (バージョン 5.5 以降)

    • Oracle

    • PostgreSQL

  • 拡張モニタリングは、db.t1.microdb.m1.small を除くすべての DB インスタンスクラスに使用できます。

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 ロールを作成するには、以下の手順を実行します。

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

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

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

  3. [Create New Role] を選択します。

  4. [Role Name] で、自分のロールの名前 (emaccess など) を入力します。[Next Step] を選択します。

  5. [AWS Service Roles] を選択し、[Amazon RDS Role for Enhanced Monitoring] までスクロールします。[Select] を選択します。

  6. [Attach Policy] ページで、[AmazonRDSEnhancedMonitoringRole] ポリシーを選択し、[Next Step] を選択します。

  7. 情報を確認してから、[Create Role] を選択します。

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

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

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

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

  • [Create Read Replica] – [Configure Advanced Settings] ページで拡張モニタリングを有効にすることができます。

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

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

  1. DB インスタンスまたはリードレプリカの [Enable Enhanced Monitoring] プロパティで [Yes] に設定します。

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

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

拡張モニタリングを無効にするには、[Enable Enhanced Monitoring] プロパティで [No] に設定します。

 Enable Enhanced Monitoring

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

注記

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

拡張モニタリングの表示

拡張モニタリングによってレポートされた OS のメトリクスを RDS コンソールで表示するには、[Show Monitoring] の [Enhanced Monitoring Dashboard] ビューを選択します。2 つのビューが用意されています。[Dashboard] ビューでは、OS メトリクスのグラフが表示され、[Process List] ビューでは、DB インスタンスで実行中のプロセスおよびその関連メトリクス (CPU 使用率、メモリ使用量など) が表示されます。

[Dashboard] ビューは以下のように表示されます。

 [Dashboard] ビュー

[Process List] ビューは以下のように表示されます。

 [Process List] ビュー

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

  • [RDS child processes] – DB インスタンスをサポートする RDS プロセス (Amazon Aurora DB クラスターの場合は aurora、MySQL DB インスタンスの場合は mysqld など) の概要を表示します。プロセスのスレッドは親プロセスの下にネストされて表示されます。プロセスのスレッドには 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 General Reference』の「Regions and Endpoints」を参照してください。

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

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

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

使用可能な OS メトリクス

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

Amazon Aurora、MariaDB、MySQL、Oracle、PostgreSQL の DB インスタンスのメトリクス

グループ メトリクス 説明

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 の未使用率。

diskIO

avgQueueLen

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

このメトリクスは Amazon Aurora では利用できません。

avgReqSz

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

このメトリクスは Amazon Aurora では利用できません。

await

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

このメトリクスは Amazon Aurora では利用できません。

device

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

このメトリクスは Amazon Aurora では利用できません。

readIOsPS

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

このメトリクスは Amazon Aurora では利用できません。

readKb

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

このメトリクスは Amazon Aurora では利用できません。

readKbPS

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

このメトリクスは Amazon Aurora では利用できません。

rrqmPS

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

このメトリクスは Amazon Aurora では利用できません。

tps

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

このメトリクスは Amazon Aurora では利用できません。

util

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

このメトリクスは Amazon Aurora では利用できません。

writeIOsPS

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

このメトリクスは Amazon Aurora では利用できません。

writeKb

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

このメトリクスは Amazon Aurora では利用できません。

writeKbPS

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

このメトリクスは Amazon Aurora では利用できません。

wrqmPS

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

このメトリクスは Amazon Aurora では利用できません。

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 を表す番号)。この識別子は同じプロセスのグループスレッドに使用されます。

vss

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

swap

cached

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

free

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

total

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

tasks

blocked

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

running

実行中のタスクの数。

sleeping

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

stopped

停止中のタスクの数。

total

タスクの合計数。

zombie

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

Microsoft SQL Server DB インスタンスのメトリクス

グループ メトリクス 説明

General

engine

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

instanceID

DB インスタンス識別子。

instanceResourceID

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

numVCPUs

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

timestamp

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

uptime

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

version

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

cpuUtilization

idle

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

kern

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

user

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

disks

name

ディスクの識別子。

totalKb

ディスクの合計容量 (キロバイト単位)。

usedKb

ディスクで使用されている容量 (キロバイト単位)。

usedPc

ディスクで使用されている容量の割合。

availKb

ディスクの空き領域 (キロバイト単位)。

availPc

ディスクで使用可能な容量の割合。

rdCountPS

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

rdBytesPS

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

wrCountPS

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

wBytesPS

1 秒あたりに書き込まれるバイト数。

memory

commitToKb

使用中のページファイルバックド仮想アドレス容量は、結果として現在のコミットチャージとなります。この値は、メインメモリ (RAM) とディスク (ページファイル) の合計になります。

commitLimitKb

commitTotKb メトリックの最大有効値。この値は、現在のページファイルサイズに、ページングできない領域に割り当てられた RAM を除くページング可能コンテンツに使用可能な物理メモリを加えた合計値になります。

commitPeakKb

オペレーティングシステムが最後に起動された後の commitTotKb メトリックの最大値。

kernTotKb

ページングされたカーネルプールとページングされないカーネルプールのメモリの合計 (キロバイト単位)。

kernPagedKb

ページジングされたカーネルプールのメモリの量 (キロバイト単位)。

kernNonpagedKb

ページジングされていないカーネルプールのメモリの量 (キロバイト単位)。

pageSize

ページのサイズ (バイト単位)。

physTotKb

物理メモリの量 (キロバイト単位)。

physAvailKb

使用可能な物理メモリの量 (キロバイト単位)。

sqlServerTotKb

Microsoft SQL Server にコミットされたメモリの量 (キロバイト単位)。

sysCacheKb

システムキャッシュメモリの量 (キロバイト単位)。

network

interface

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

rdBytesPS

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

wrBytesPS

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

processList

cpuUsedPc

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

memUsedPc

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

name

プロセスの名前。

pid

プロセスの識別子。この値は、Amazon RDS が所有するプロセスでは表示されません。

ppid

このプロセスの親プロセスの識別子。この値は子プロセスについてのみ表示されます。

tid

スレッド識別子。この値はスレッドについてのみ表示されます。所有プロセスは、pid 値を使用することにより識別できます。

workingSetKb

プライベート作業セットのメモリ量に、プロセスで使用中で他のプロセスと共有できるのメモリ量を加えたメモリ量。

workingSetPrivKb

プロセスで使用中で他のプロセスと共有できないメモリ量 (キロバイト単位)。

workingSetShareableKb

プロセスで使用中で他のプロセスと共有できるメモリ量 (キロバイト単位)。

virtKb

プロセスが使用している仮想アドレス容量 (キロバイト単位)。仮想アドレススペースの使用は、必ずしもディスクまたはメインメモリページのいずれかが対応して使用されていることを意味しません。

system

handles

システムが使用しているハンドル数。

processes

システムで実行されているプロセス数。

threads

システムで実行されているスレッド数。

関連トピック