Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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)

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide