Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

先週のハンズオンにて • 架空のECサイトに使われているEC2のバック エンドをLambdaに移植しようというハンズオン • カート機能(一覧参照、追加、削除)をLambda × Dynamo DBに • Refactor Spacesを使うことで簡単にAPIの接 続先を変更することができた

Slide 4

Slide 4 text

ハンズオンを終えて • Lambdaのロードがクソ遅い(レスポンスに約15秒) • Lambdaでjarファイルを立ち上げようとすると読み込みで時間を取られる

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

ローカルでの動作確認 • LambdaはHTTPリクエストの形式で 入力をJsonで渡せば確認ができる (メソッドは何でも良さそう) • Dynamo DBに入っているかは Dynamo DB Adminというツールで 確認できる • LambdaとDynamo DBのDocker イメージを使って簡単に環境構築

Slide 10

Slide 10 text

DEMO

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

今回のソースコード https://github.com/Miura55/MigrationHub-HandsOn-Extra

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

END