前回の記事で使用したDynamoDBStreamの監視についてです。
DynamoDBでレコードが追加更新されたことを契機にLambdaを起動することができる機能がDyanamoDBStreamです。
その際、Lambdaの起動に失敗したり起動が遅延したりする場合を検知するための監視を考えました。
DynamoDBStreamとは
冒頭で書いた通りですが、DyanamoDBのレコードが更新されるとLambdaを起動します。その際、更新されたレコードをLambdaの引数にできます。(更新されたレコードのキーだけか、すべてのキーを渡すのかなどは選択できます。)
レコードからどの属性をLambdaの引数にするのかを選択
それぞれの属性ごとのLambdaへの引数の違いは以下の記事を参照してください。
パターン別監視
DynamoDBStreamの特性上、Lambdaの呼び出し遅延とLambdaの呼出し失敗について監視したいと思いました。
Lambdaからの呼び出しが遅延した場合
Lambda.IteratorAge で監視できることがわかりました。
Lambdaメトリクス
IteratorAge – ストリームから読み取るイベントソースマッピングの場合、イベントの最後のレコードの所要時間。所要時間は、ストリーミングがレコードを受信し、イベントソースマッピングがイベントを関数に送信するまでの時間です。
Lambda 関数のメトリクスの使用
Lambdaからの呼出しが失敗した場合
失敗時にSNSやSQSに通知することができます。マネジメントコンソールからの設定も可能です。失敗時の再試行回数も設定可能でです。
まとめ
DynamoDBStreamの監視で思いつくものは呼び出し遅延と呼出し失敗の2点でした。筆者の経験上、Lambdaの呼出し遅延はコールドスタートなどが原因でそこそこ発生するので監視閾値については様子を見てチューニングするのが良いかと思います。
PR
当ブログはWordPressテーマSWELLを使用しています。非常に使いやすく、簡単にプロのようなデザインを使えるのでお勧めです!!
SWELL – シンプル美と機能性両立を両立させた、圧巻のWordPressテーマ
システムエンジニア
AWSを中心としたクラウド案件に携わっています。
IoTシステムのバックエンド開発、Datadogを用いた監視開発など経験があります。
IT資格マニアでいろいろ取得しています。
AWS認定:SAP, DOP, SAA, DVA, SOA, CLF
Azure認定:AZ-104, AZ-300
ITIL Foundation
Oracle Master Bronze (DBA)
Oracle Master Silver (SQL)
Oracle Java Silver SE
■略歴
理系の大学院を卒業
IT企業に就職
AWSのシステム導入のプロジェクトを担当