2
2

More than 3 years have passed since last update.

AWS+NodeJSでサーバレスな環境構築②

Last updated at Posted at 2020-01-03

はじめに

前回の記事ではAPI Gateway+Lambda(NodeJS)を組み合わせてWEBページを表示するというアウトプットでした。今回はDynamoDBのテーブルと項目作成、Lambda関数で使うロールやインラインポリシーの設定を載せていきます。サーバレスに関しては個人的に興味があるとのと、次の案件で用いるからその予習になります。自身も初めてということもあり、表現がわかりにくいところもあるかもしれません。その場合は容赦無く、コメントで指摘していただければ幸いです。
※サーバレスに関してよくわからない方は、前回の記事をご覧いただければと思います。

DynamoDBってなぁに?

簡単に言ってしまうと、AWSがマネージドサービスとして提供しているNoSQL(非リレーショナル)データベースになります。「値」とそれを取得するための「キー」だけを格納するというシンプルな機能を持った「Key-Valueストア」です。

一般的なユースケース
・ミリ秒単位のアクセスレイテンシーが求められる
・データの拡張性が求められる

参考記事
NoSQLとは
DynamoDBをわかりやすく説明

DynamoDBテーブルの作成

DynamoDBダッシュボード>テーブルの作成>テーブル名とプライマリキーだけ入力>作成ボタン

スクリーンショット 2020-01-03 13.32.13.png

項目タブを選択>項目の作成>以下のように項目と値を追加

スクリーンショット 2020-01-03 15.19.31.png
スクリーンショット 2020-01-03 15.20.39.png

あとで使うので、DynamoDBテーブルのリソース名をコピー(黒枠部分)しておきます

スクリーンショット 2020-01-03 15.23.02.png

IAMでロールの作成

IAMダッシュボードのロールを選択>ロール作成ボタン

スクリーンショット 2020-01-03 15.40.49.png

Lambdaを選択>次のステップへ

スクリーンショット 2020-01-03 15.41.56.png

AWSLambdaBasicExecutionRoleにチェック>次のステップへ

スクリーンショット 2020-01-03 15.59.25.png

タグの追加 (オプション)そのまま>次のステップへ

スクリーンショット 2020-01-03 16.02.25.png

ロール名の入力>作成ボタン

スクリーンショット 2020-01-03 16.04.15.png

作成したロールでインラインポリシーの作成

ロール一覧から作成したロールを選択>概要画面でインラインポリシーの作成を選択

スクリーンショット 2020-01-03 16.09.06.png
スクリーンショット 2020-01-03 16.09.59.png

サービスをDynamoDBを選択>2つアクションを追加

⚠️ 下記ではGetItemとPutItemしか追加されませんが、DeleteItemとUpdateItemとScanも追加します。
スクリーンショット 2020-01-03 16.22.29.png

リソースのARNを指定>追加

スクリーンショット 2020-01-03 16.27.35.png

ポリシーの確認>ポリシー名>ポリシーの作成

スクリーンショット 2020-01-03 16.30.59.png
スクリーンショット 2020-01-03 16.35.04.png
スクリーンショット 2020-01-03 16.35.59.png

最後に

次回はAPI Gateway(REST API)+Lambda(NodeJS)+DynamoDBの組み合わせで、DynamoDBのテーブルが更新されるようにしていきます。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2