なにこれ
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/