$30 off During Our Annual Pro Sale. View Details »

Refactor Spacesハンズオン延長戦

KMiura
January 29, 2022

Refactor Spacesハンズオン延長戦

温故知新編 Lambda API Gateway ハンズオン
https://awsbasics.connpass.com/event/234744/

KMiura

January 29, 2022
Tweet

More Decks by KMiura

Other Decks in Technology

Transcript

  1. Refactor Spacesハンズオン延長戦 KMiura(@k_miura_io)

  2. 自己紹介 • 三浦 耕生(こうき) • 名古屋のゲーム会社のサーバー エンジニア • 好きなAWSのサービス:Lambda, Dynamo

    DB, AWS IoT @k_miura_io koki.miura05
  3. 先週のハンズオンにて • 架空のECサイトに使われているEC2のバック エンドをLambdaに移植しようというハンズオン • カート機能(一覧参照、追加、削除)をLambda × Dynamo DBに •

    Refactor Spacesを使うことで簡単にAPIの接 続先を変更することができた
  4. ハンズオンを終えて • Lambdaのロードがクソ遅い(レスポンスに約15秒) • Lambdaでjarファイルを立ち上げようとすると読み込みで時間を取られる

  5. jarなんとかしよう • 多分Javaで動かすからこれだけ時間がかかる • ビルドのいらないスクリプト言語に実装し直す • ローカルで動作してからデプロイしたい(無駄なお金は払わないw)

  6. アプリケーションの実装を見てみる • レポジトリはハンズオン資料の中のCloud Formationで使ったテンプレートから特定 • Lambdaのコードもここに入っているっぽい https://github.com/aws-samples/unishop-monolith-to-microservices

  7. それっぽい実装(カートの追加 を例に) • Dynamo DBからデータを取得して商品のUUIDを追 加して更新してるだけ • レスポンスのメッセージを頼りにすればなんとか実装 できそう •

    以外とシンプルで良かったw
  8. 同じ実装をしてみた • ランタイムはPython3.9 • コードエディタにコピペするだけで楽 • 実装がシンプルになって読みやすい(個人差?)

  9. ローカルでの動作確認 • LambdaはHTTPリクエストの形式で 入力をJsonで渡せば確認ができる (メソッドは何でも良さそう) • Dynamo DBに入っているかは Dynamo DB

    Adminというツールで 確認できる • LambdaとDynamo DBのDocker イメージを使って簡単に環境構築
  10. DEMO

  11. 結果どうなったか • カートの読み込みが2,3秒でおわった! • 普段遅いと言われるPythonはLambdaだと早くなるということが証明できた(はず)

  12. まとめ • Lambdaを実装するならやはりスクリプト言語(負荷が大きい処理じゃなければ) • Refactor Spacesを使えばAPI GatewayとLambdaの移植が簡単にできる(手順は多 いけどw) • ハンズオンの復習にもなってまた1つAWSの理解が深まった

    • ハンズオンブランチへのマージお待ちしてますw
  13. 今回のソースコード https://github.com/Miura55/MigrationHub-HandsOn-Extra

  14. 宣伝 https://linedevelopercommunity.connpass.com/event/231939/

  15. END