クラウド資格実践ラボ ハンズオン手順記事に戻る

SQS でデータベースへの書き込みの急増を受け止める方法 ── 疎結合で DB を落とさない

記事の「実践」を 1 項目ずつ進めるためのページです。AWS マネジメントコンソールで操作したら、右の一覧にチェックを入れてください。チェックはこのブラウザに保存されます。

準備 5 項目中 1 番目

前提条件

  1. リージョン: ap-northeast-1(東京)
  2. SQS・Lambda・DynamoDB・CloudShell の操作権限を持つ IAM ユーザーまたはロールでコンソールにログイン済みであること

以下のリソースが作成済みであることを前提とします。Lambda 関数 vote-lab-worker は、受け取ったメッセージ 1 件ごとに 0.5 秒かけて DynamoDB に書き込みます(書き込みの遅いデータベースの代わり)。同じ vote_id は 1 回だけ書き込みます。

まだ用意していない場合は、「作り方の参考」の記事の手順で作れます。リソース名は、この記事の名前に読み替えてください。

リソース種別リソース名内容作り方の参考
SQS キューvote-lab-queue標準キュー。可視性タイムアウト 180 秒。デッドレターキュー vote-lab-dlq(最大受信数 5)Amazon SQS でキューを作り、SNS との違いを体験する
SQS キューvote-lab-dlqデッドレターキュー同上
Lambda 関数vote-lab-workerPython。タイムアウト 30 秒。SQS の読み取りと DynamoDB への書き込み権限を持つ実行ロールAWS Lambda で関数を作成しイベント駆動で実行する
DynamoDB テーブルvote-lab-votesパーティションキー vote_id(文字列)。オンデマンドAmazon DynamoDB でテーブルを作り Lambda から読み書きする