めるぶろぐ

まったりぷろぐらまーの雑記

【参加記録】JAWS-UG千葉支部オンライン#7 Serverless Hands-on Advanced #jawsugchiba

JAWS-UG千葉支部のオンラインハンズオンに参加しました。
サーバレス完全に理解した(わかってない)。

千葉に行くには熊除けの鈴がいるらしいです……。
千葉……千葉LOOKに一回行ったことあるのと、大学院生時代に千葉大学で数日お世話になったくらいの縁しかないですね。

以下個人的なまとめです。

イベントページ

jawsug-chiba.connpass.com

資料

github.com

使用したサービスについて

AWS Lambda
  • コンテナを立ち上げてプログラムを作成する。
  • コンテナは一定時間で破棄される。(破棄されないようにするならAWS Fargateを使用)
  • 使用するプログラムはユースケースに合わせて選ぶ。(例:Javaは初回起動が遅く、node.jsは初回起動が早いけど、CPU効率などを考えるとJavaのほうがいいケースもある)
AWS Cognito
  • ユーザーの認証・認可をする。
  • ユーザプールとIDプールを使用して認証・認可を提供。
Amazon API Gateway
  • Lambdaを使用したAPIREST API 等)を作成する。
AWS Amplify
  • SPA(Single Page Application)の構築・デプロイ・ホスティングができる。

ハンズオン

やったこと概要
  1. Amazon DynamoDBでNoSQLのデータベースを作成する。
  2. IAMでAWS Lambdaの実行権限を制御する。
  3. AWS Lambda関数をCloud9から作成し、DynamoDBにアクセスする。
  4. Amazon API Gatewayで、前項で作成した関数をRestful APIにする。
  5. AWS Cognitoでユーザーの認証・認可を追加する。
  6. AWS Amplifyで、前項までの手順で作成したのと同様のSPAを作成する。
つまづいた
  • API Gateway TestのWebブラウザでどうやってもStatus Code:0になる→apigClient.js配置するフォルダ間違ってた><

メモ(主にツイッターにリアルタイムで書いてたまとめ)

ハンズオンの内容
  • Cloud9からLambda関数の作成やロールの権限付与・実行などがウィザード形式で行える。
  • Lambdaの実行について、初回は時間がかかる。
  • Cognitoは後から変更できない項目が多い。
  • Cloud9のデフォルトは10GB。拡張する場合はシェルスクリプトで行う(公式の手順)。
  • Cognitoではログインユーザの権限だけでなく、未ログインのユーザの権限も設定できる。
CORSの設定
  • CORS(Cross-Origin Resource Sharing)(オリジン間リソース共有)
  • 一般的なWebブラウザでは異なるサイト(オリジン)間でスクリプトが実行できるようになっていないので、そこを実行できるように変更
  • 本ハンズオンだとローカルPCからAWSにアクセスできるようにする
  • IE(仕事で触ってるシステムはIE固定なので……)のオプションのセキュリティ設定で「ドメイン間でのデータソースにアクセス」で設定変更しているあたりの内容(たぶん)
  • あとでググろう……ってツイートしたら親切な方(ハンズオン手順書の作成者の方)が教えてくださった……感謝の極み……

所感

サーバレス完全に理解した(わかってない)
AWSのサービスあんまり使えてないので、いろいろ使えたのすごい楽しかった、ハンズオンの量が多くて順にやっていくだけで手いっぱいだった感はありますが……。
AWS Amplify、ぽちぽち選んでたらSPAができて便利なんだけど裏で何やってるかを理解しないと本当に使ってるだけになりそうだな~という感じ。それでもいいのかな……?
たぶん裏でCloudFormationのテンプレートからリソース作成している(んだと思う)。

JAWS-UG千葉支部の和田さんが共著の書籍「基礎から学ぶ サーバーレス開発」を買った(正確には最寄りの本屋に取り寄せを頼んだので週末には届く)のでもうちょっと勉強します。
www.amazon.co.jp