[小ネタ] DynamoDBのキャパシティユニットをCloudWatchで見るときのコツ

DynamoDBキャパシティユニットのプロビジョニング済と消費をCloudWatchで比較するときは、統計値が異なるのでMertic Mathで調節しましょうという話
2018.06.16

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

ども、大瀧です。
クラウドネイティブなEC/CRM SaaSであるPrismatixでは、AWSマネージドサービスをこれでもかと駆使ししており、日々の運用ではそれらのメトリクス監視が肝要です。マネージドNoSQLサービスであるDynamoDBの運用としては、パフォーマンス設定であるキャパシティユニットの監視が鉄板と言えるでしょう。

DynamoDBのキャパシティユニットは、テーブルないしグローバルセカンダリインデックスにおける単位時間あたりの性能キャパシティを確保するものです。運用としては消費量が確保したキャパシティを超えないよう、CloudWatchアラームを設定して監視したり、スパイクでなければAuto Scalingを設定してキャパシティを増やしたりできます。

CloudWatchでキャパシティユニットの使用状況を見たい!

キャパシティユニットの直近の状況をAWS Management Consoleで見る方法は以下の2通りあります。

  1. DynamoDBのテーブル画面の[メトリックス]タブ
  2. CloudWatchの画面でDynamoDBキャパシティユニットのメトリクスを組み合わせる

注意が必要なのはCloudWatchで、消費量(Consumed)と設定量(Provisioned)で集計単位が異なるため、そのままでは実用に耐えません。

Consumedは[統計]を「合計」に変更するとトレンドは見れるのですが、期間(画面だと5分間)の合計値なので、秒あたりのキャパシティユニット値であるProvisionedとY軸が合いません。

そこで、Metric MathでConsumedの合計値を期間で割ることでProvisionedとY軸を合わせます。期間は5分(300秒)なので、[数学式の追加]リンクをクリックし追加されたe1の詳細(式)に以下を入力します。

<ConsumedのId>/300

表示してみると。。。

Provisionedと比較できる表示になりました。青線が消費量、緑線が確保している量なのでここ3時間は十分足りていると判断できますね。

まとめ

CloudWatchでDynamoDBキャパシティユニットの使用状況を見る方法をご紹介しました。Metric Mathはかゆいところに手が届く良い機能ですね。いろいろ使いドコロを探って行ければと思っています。

参考URL