Amazon DynamoDB監視


概要

Amazon DynamoDBは非リレーショナルデータベースで、様々なスケールで高いパフォーマンスを実現します。
このサービスは、フルマネージ型のプロプライエタリNoSQLデータベースであり、キー・バリュー形式とドキュメントデータ構造をサポートしているほか、ビルトインのセキュリティ、バックアップとリストア、インメモリキャッシングを提供しています。


Amazon DynamoDB監視について

Applications Managerでは、DynamoDBテーブルの自動検出や、遅延、リクエストスループット、スロットルエラーなどのパフォーマンスメトリックを収集できます。
DynamoDBデータベースのリソース最適化と、アプリケーションのパフォーマンス向上に役立てられます。

主な利点は次のとおりです。

  • データベースのパフォーマンス分析:リクエスト遅延を追跡し、Get、Put、Scanなど各種読み書き操作の遅延レポートを提供します。期間を指定して、GetRecords操作(DynamoDB Streams)による戻りレコード数やデータ量(バイト)など、利用率の統計も収集できます。
  • リソース利用の最適化:DynamoDBのスループットプロビジョンに際し、監視データを基にリソース割り当ての決定に役立てられます。消費している読み書きキャパシティユニットの監視でスロットルエラーを防ぐほか、リクエストの処理速度、アプリケーションのスループットパターン、テーブルアクティビティなどを把握可能です。

  • リクエストスロットルのトラブルシュート:リクエストや読み書きイベントでのスロットルを監視します。プロビジョン済みスループットの枯渇を防ぐために容量を予約し、トラフィックの急上昇が発生しても、スロットルエラーに発生させることなく対応可能です。

  • DBエラーと例外への対応:システムエラーとユーザーエラーの内訳をダッシュボードで確認し、パフォーマンスのアノマリを特定できます。

  • DB操作実行を把握:テーブルで条件付きの書き込みに失敗した回数を監視します。データベーススキャンやクエリ操作による戻りアイテムの数も追跡できます。

  • パフォーマンス低下やボトルネックを即時通知:エンドユーザー体感に影響が及ばぬうちに、予兆の段階で素早い是正アクションを起こせます。


Amazon DynamoDB監視の新規追加

Amazon SNS監視の追加方法は、こちらのページをご確認ください。


DynamoDBアカウントのメトリックでデータ収集を有効にする

DynamoDBアカウントのメトリック収集は、デフォルトでは無効となっています。

  1. [管理]タブをクリックします。
  2. ディスカバリとデータ収集欄の[パフォーマンスポーリング]をクリックします。
  3. [データ収集の最適化]タブをクリックします。
  4. 監視タイプのドロップダウンで、[DynamoDB]を選択します。
  5. メトリック名のドロップダウンから対象のメトリックを選択します。
  6. データ収集はポーリングごとに有効とすることも、カスタム期間を設定することもできます(DynamoDBアカウントのメトリックの場合、APIリクエスト数を削減するために、24時間の間隔に設定することを推奨しています)。
  7. ポーリング収集の設定基準を選択してください。
    • [監視タイプ]:監視タイプごとにポーリング設定を行います。同監視タイプの監視全てに対して、ポーリング設定の変更が可能です。
      ※デフォルトの設定ではこの項目が選択されています。

      ポーリング設定は以下の3つの選択肢があります。
      • データ収集しない
      • ポーリングごとにデータを収集する
      • カスタム間隔でデータ収集をする
    • [監視]:特定の監視を指定してポーリング設定を変更する場合、このオプションを使用します。
  8. [保存]をクリックします。

監視パラメーター

[監視]タブをクリックし、クラウドアプリケーション欄から、[DynamoDB]を選択します。
DynamoDB一括設定ビューでは、次の3つのタブが表示されます。

  • [可用性]タブ:過去24時間または30日の可用性履歴を表示します。
  • [パフォーマンス]タブ:過去24時間または30日のステータスとイベントを表示します。
  • [リストビュー]:一括管理設定を行えます。
監視名をクリックすると、Amazon DynamoDBデータベースメトリックが次のタブに分けられて表示されます。

概要

メトリック 説明
読み込みキャパシティユニット
読み込みプロビジョニング量 ポーリング間隔ごとにテーブルやグローバルセカンダリインデックス(GSI)にプロビジョンされる、読み込みキャパシティユニット数を表します。
読み込みプロビジョニング量(平均) 読み込みキャパシティの平均プロビジョン設定量を表します。
読み込みプロビジョニング量(最小) 読み込みキャパシティの最小プロビジョン設定量を表します。
読み込みプロビジョニング量(最大) 読み込みキャパシティの最大プロビジョン設定量を表します。
読み込み消費量 ポーリング間隔ごとに消費された読み込みキャパシティユニットの数です。
プロビジョンしたスループットの利用率を追跡できます。
読み込み消費量(平均) テーブルやインデックスへのリクエストで、1回ごとに消費する読み込みキャパシティの最大ユニット数を表します。
読み込み消費量(最小) テーブルやインデックスへのリクエストで、1回ごとに消費する読み込みキャパシティの最少ユニット数を指します。
読み込み消費量(最大) リクエストごとの読み込みキャパシティの最大消費量を表します。
書き込みキャパシティユニット
書き込みプロビジョニング量 テーブルにプロビジョンされた書き込みキャパシティユニットの数を表します。
書き込みプロビジョニング量(平均) 読み込みキャパシティの平均プロビジョン設定量を表します。
書き込みプロビジョニング量(最小) 読み込みキャパシティの最小プロビジョン設定量を表します。
書き込みプロビジョニング量(最大) 読み込みキャパシティの最大プロビジョン設定量を表します。
書き込み消費量 ポーリング間隔ごとにグローバルセカンダリインデックス(GSI)への書き込みキャパシティユニットの数を表します。
書き込み消費量(平均) リクエストごとの書き込みキャパシティの平均消費量を表します。
書き込み消費量(最小) テーブルやインデックスへのリクエストごとの、書き込みキャパシティの最少消費ユニット数を表します。
書き込み消費量(最大) テーブルやインデックスへのリクエストごとの、書き込みキャパシティの最大消費ユニット数を表します。
読み込みスロットルリクエスト
読み込みリクエストのスロットル 読み書きリクエストがテーブルのスループット設定を超過しているにもかかわらず、キャパシティユニットがプロビジョン以上に消費しようとしたり、インデックスの超過を起こしたりすると、DynamoDBはリクエストをスロットルすることがあります。
リクエストデータの投入は、GET/Scan/Query/BatchGetなどテーブル上の操作ごとにスロットルを受けたのちに実行されます。
GETリクエストのスロットル GET操作では、プライマリキーを用いたリクエストに対して、属性一式を返します。
SCANリクエストのスロットル Scan操作は、テーブルやセカンダリインデックスの全リクエストにアクセスし、複数のリクエストとリクエスト属性を返します。
QUERYリクエストのスロットル Query操作では、プライマリキーの値に基づきリクエストを識別します。
複合プライマリキー(パーティション キーとソートキー)のあるテーブルやセカンダリインデックスにクエリできます。
BatchGetリクエストのスロットル BatchGet操作では、1つ以上のテーブルから、1つ以上のリクエストの属性を返します。
書き込みリクエストのスロットル
PUTリクエストのスロットル Put操作では、リクエストの新規作成や既存リクエストの置換を行います。
UPDATEリクエストのスロットル UPDATE操作では、既存リクエストの属性の更新、また既存リクエストがなければテーブルに新規作成を行います。属性値のプット、削除、追加が可能です。
DELETEスロットル済みリクエストの削除 DELETE操作では、プライマリキーを利用しテーブルにある1つのリクエストを削除します。
BatchWriteリクエストのスロットル BatchWrite操作では、複数テーブルにあるリクエストで、プットまたは削除を実行します。
読み込みスロットルイベント
テーブル読み込みスロットルイベント 特定の期間で発生した書き込みイベントのスロットル件数を表します。
イベントのスロットルは、イベント失敗の場合時、およびバッチ操作での1イベント失敗時にも発生します。
書き込みスロットルイベント
テーブル書き込みイベントのスロットル 特定の期間に発生した読み込みイベントのスロットル件数を指します。
イベントのスロットルは、イベント失敗の場合時、およびバッチ操作での1イベント失敗時にも発生します。

読み込み操作

メトリック 説明
読み込み遅延
GET遅延(平均) 指定期間における、GET操作の「リクエスト成功時遅延」平均をミリ秒単位で表示します。
BatchGet遅延(平均) 指定期間における、BatchGet操作の「リクエスト成功時遅延」平均をミリ秒単位で表示します。
SCAN遅延(平均) 指定期間における、SCAN操作の「リクエスト成功時遅延」平均をミリ秒単位で表示します。
QUERY遅延(平均) 指定期間における、QUERY操作の「リクエスト成功時遅延」平均をミリ秒単位で報告します。
GET遅延
GET遅延(平均/最小/最大) 指定期間における、DynamoDBへのGET操作に成功したリクエストの経過時間を表します。
BatchGet遅延
BatchGet遅延(平均/最小/最大) 指定期間における、DynamoDBへのBatchGet操作に成功したリクエストの経過時間を表します。
SCAN遅延
Scan遅延(平均/最小/最大) 指定期間における、DynamoDBへのSCAN操作に成功したリクエストの経過時間を表します。
QUERY遅延
QUERY遅延(平均/最小/最大) 指定期間における、DynamoDBへのQUERY操作に成功したリクエストの経過時間を表します。
戻りアイテム数
SCAN戻りアイテム数 指定期間において、SCAN操作の結果、返されたアイテムの数を表します。
QUERY戻りアイテム数 指定期間において、Query操作の結果、返されたアイテムの数を表します。

書き込み操作

メトリック 説明
書き込み遅延
PUT遅延(平均) 指定期間における、PUT操作の「リクエスト成功時遅延」の平均をミリ秒単位で表示します。
BatchWrite遅延(平均) 指定期間における、BatchWrite操作の「リクエスト成功時遅延」の平均をミリ秒単位で表示します。
UPDATE遅延(平均) 指定期間における、UPDATE操作の「リクエスト成功時遅延」平均をミリ秒単位で表示します。
DELETE遅延(平均) 指定期間における、DELETE操作の「リクエスト成功時遅延」平均をミリ秒単位で表示します。
PUT遅延
PUT遅延(平均/最小/最大) 指定期間における、DynamoDBへのPUT操作に成功したリクエストの経過時間を表します。
BatchWrite遅延
BatchWrite遅延(平均/最短/最長) 指定期間における、DynamoDBへのBatchWrite操作に成功したリクエストの経過時間を表します。
UPDATE遅延
UPDATE遅延(平均/最小/最大) 指定期間における、DynamoDBへのUPDATE操作に成功したリクエストの経過時間を表します。
DELETE遅延
DELETE遅延(平均/最小/最大) 指定期間における、DynamoDBへのDELETE操作に成功したリクエストの経過時間を表します。

テーブルエラー

メトリック 説明
ユーザーエラー
ユーザーエラー DynamoDBやAmazon DynamoDB Streamsへのリクエストで、ステータスコードHTTP 400エラー発生数を表します。
システム エラー
システム エラー DynamoDBやAmazon DynamoDB Streamsへのリクエストで、ステータスコードHTTP 500エラー発生数を表します。
条件付きチェックリクエスト失敗
条件付きチェックリクエスト失敗 条件付き書き込みの実行に失敗した件数を表します。
TTL削除アイテム数
TTL削除アイテム数 指定期間にTTL(Time To Live)が原因で削除されたアイテムの数を表します。

GSI(グローバルセカンダリインデックス)

メトリック 説明
GSI読み込みキャパシティユニット
プロビジョン済み読み込み ポーリング間隔における、グローバルセカンダリインデックス(GSI)での読み込みキャパシティユニットのプロビジョニング量を表します。
GSI書き込みキャパシティユニット
プロビジョン済み書き込み ポーリング間隔における、グローバルセカンダリインデックス(GSI)での書き込みキャパシティユニットのプロビジョニング量を表します。
GSIキャパシティユニット
GSI名
プロビジョン済み読み込み
消費済み読み込み ポーリング間隔における、グローバルセカンダリインデックスでの読み込みキャパシティユニットの消費量を表します。
プロビジョン済み書き込み
消費済み書き込み ポーリング間隔における、グローバルセカンダリインデックスでの書き込みキャパシティユニットの消費量を表します。
GSI読み込みスロットルイベント
GSI読み込みスロットルイベント
GSI書き込みスロットルイベント
書き込みイベントのスロットル
GSIスロットルイベント
GSI名
GSI読み込みイベントスロットル グローバルセカンダリインデックスで、DynamoDBへのリクエストが、読み込みキャパシティユニットのプロビジョニング量を超過した回数を表します。
GSI書き込みイベントスロットル グローバルセカンダリインデックスで、DynamoDBへのリクエストが、書き込みキャパシティユニットのプロビジョニング量を超過した回数を表します。
GSIインデックス作成
GSI名
オンラインインデックス消費済み書き込みキャパシティ グローバルセカンダリインデックスをテーブルに新規追加する際に消費した、書き込みキャパシティユニットを表します。
オンラインインデックス進捗率 テーブルへのグローバルセカンダリインデックスの追加完了率を表します。
オンラインインデックススロットルイベント グローバルセカンダリインデックスをテーブルに新規追加する際に発生した、書き込みスロットルイベントの数を表します。
設定
インデックス名 グローバルセカンダリインデックスの名前です。
ステータス インデックスのステータスです。
項目数 インデックスにあるアイテムの総数を表します。
サイズ(MB) ストレージサイズです。
パーティションキー インデックスのHASH属性です。
ソートキー インデックスのRANGE属性です。
プロジェクションタイプ インデックスに射影されている属性です。

Stream

メトリック 説明
リクエスト遅延
GetRecordsリクエスト遅延 指定期間における、GetRecords操作によるリクエスト成功時の遅延をミリ秒単位で表します。
戻りバイト
平均戻りバイト 指定期間における、GetRecords操作による戻りデータ量をMB単位で表します(。
総戻りバイト 戻りデータ速度を指します。
戻りレコード数(COUNT)
戻りレコード数 指定期間における、GetRecords操作から返されたストリームレコード数を表します。
ストリーム設定
ストリームラベル ストリームを有効にした時のタイムスタンプを、ISO 8601形式で示します。
ストリームステータス テーブルでDynamoDB Streamsが有効となっているかを表します。
ストリームビュータイプ テーブルでストリームに書き込まれた情報を表します。
ストリームARN テーブルの最新ストリームを一意に特定できる、Amazonリソースネームです(ARN)。

設定

メトリック 説明
設定
テーブル名 DynamoDBのテーブル名です。
リージョン 現在のDynamoDBテーブルがあるAWSリージョンのIDです。
リージョン名 現在のDynamoDBテーブルが存在するAWSリージョンの名前です。
総プロビジョン済み読み込みCU プロビジョン済み読み込みキャパシティユニットの総数を表します。
テーブルおよび全グローバルセカンダリインデックス(GSI)が対象です。
総プロビジョン済み書き込みCU プロビジョン済み書き込みキャパシティユニットの総数を表します。
テーブルとおよび全グローバル セカンダリ インデックス(GSI)が対象です。
ストレージサイズ 特定テーブルの総サイズをGB単位で表します。
アイテム数 特定テーブルにあるアイテムの数です。
テーブルステータス テーブルの現在のステータスです。
パーティションキー アイテムのパーティションキーで、HASH属性とも呼ばれます。
ソートキー アイテムのソートキーで、RANGE属性とも呼ばれます。
作成日 テーブルが作成された日時を表します。
Amazonリソースネーム(ARN) テーブルを一意に特定できる、Amazonリソースネームです。
最新減少時刻 テーブルでスループットのプロビジョン量を増やした最新の日時を表します。
最新増加時刻 テーブルでスループットのプロビジョン量を減らした最新の日時を表します。
当日減少回数 UTC暦日でテーブルへの帯域プロビジョニングを減らした回数を表します。
グローバルセカンダリインデックス数 グローバルセカンダリインデックスの総数です。
ストリーム ストリームのステータスを有効または無効で表します。