AWSのサーバーレスアプリケーション作成チュートリアルをやってみた

2020-02-16

なにこれ

AWSのサーバーレスアプリケーションのチュートリアルをやってみました。

コードは用意しているものを利用するのですが、アプリケーションのデプロイが簡単なのがとてもいいね!と思いました。
アクセスが少ないアプリケーションであれば、サーバーレスで作っていくのが良さそうな感覚は得られました。サーバー立てちゃうとお金辛いもんね。。。

チュートリアルについて

題材はユニコーンを召喚するWebサービスです。いいですね。遊び心ありますね。
利用サービスとしてはLambda, API Gateway, S3, DynamoDB, Cognitoです。

構成は以下5ステップになっています。

  • S3を静的サイトとして公開する
  • Cognitoを利用してユーザー管理する
  • サーバーレスでバックエンドを構築する
  • RESTful APIのデプロイ
  • リソースのクリーンアップ

それぞれの感想を述べます。

S3を静的サイトとして公開する

簡単でござる。手順に従うだけです。
デプロイした時にhttpである事と、カスタムドメイン設定をしていなかったので、何処かで学ぼう。。。

Cognitoを利用してユーザー管理する

これも簡単。ユーザー認証をverifyメールで行える。
何もしないと質素なメールが送信されるけど、カスタムすれば良し。
初めてcognito使ったけど便利ですねー。

サーバーレスでバックエンドを構築する

ここは脳死では進んでは行けない。

lambdaでログを吐くため、DynamoDBに書き込みを行うためにIAMロールが必要。
ポリシーはAWSLambdaBasicExecutionRoleを選択しておくとCloudWatchにアクセス出来るっぽい。
DynamoDBにはインラインポリシーでPutItemアクションを通すように指定する。

ここは次回やる時に権限周りで引っかかりそうなのでメモ。
このセクションのステップ2に書いてあるので、何回か読むと思う。

あとARNって何の略なんだろうって思っていたけど謎が解けた。
Amazon Resource Nameの略だった。

RESTful APIのデプロイ

APIの設定を諸々やるステップになってます。
ここも何回か読むと思う。エンドポイントの作成ですね。
エンドポイントはhttpsで作ってくれる。ありがたやー。

リソースのクリーンアップ

最後にチュートリアルで作成した各種リソースを削除する手順がありました。
ありがたやー。

やってみての感想

チュートリアルが本当に簡単で、簡単すぎて物足りない感覚は有ります。
でも最初に感覚つかむのにはこれくらいで良いのかも。

簡単なアプリのデプロイならサーバーレスが良いですね。そんなにアクセス来ないなら料金もお安いし。
普段のデプロイフローと全然違うけど、これいいっすね。(料金が)

DynamoDBへのRead/Writeはコード見てないから分からないから調べる必要有り。これは次にやってみようかな。

中級的なチュートリアルも見つけた。Fargateも安くなったしやってみようかな?
https://aws.amazon.com/jp/getting-started/projects/build-modern-app-fargate-lambda-dynamodb-python/

最後に

ユニコーンをTokyoに手配出来たので写真載せておきますね。 unicorn