$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Refactor Spacesハンズオン後半戦の紹介+α
Search
KMiura
March 08, 2022
Technology
0
240
Refactor Spacesハンズオン後半戦の紹介+α
2022/03/08 JAWS-UG千葉支部オンライン#15 re:Invent Tech Re:Cap & ハンズオン
KMiura
March 08, 2022
Tweet
Share
More Decks by KMiura
See All by KMiura
運用しているアプリケーションのDBのリプレイスをやってみた
miura55
1
1.1k
Amazon Rekognitionを使ったインターホンハック
miura55
0
95
Pythonでルンバをハックしてみた
miura55
0
180
あなたの知らないクラフトビールの世界
miura55
0
370
Storage Browser for Amazon S3を触ってみた + α
miura55
0
230
Cloudflare R2をトリガーにCloudflare Workersを動かしてみた
miura55
0
230
あのボタンでつながるSORACOM
miura55
0
150
Postman Flowsで作るAPI連携LINE Bot
miura55
0
390
Lambdaと共に歩んだAWS
miura55
3
870
Other Decks in Technology
See All in Technology
.NET 10の概要
tomokusaba
0
130
日本Rubyの会: これまでとこれから
snoozer05
PRO
5
210
「図面」から「法則」へ 〜メタ視点で読み解く現代のソフトウェアアーキテクチャ〜
scova0731
0
430
シニアソフトウェアエンジニアになるためには
kworkdev
PRO
3
210
Oracle Database@Azure:サービス概要のご紹介
oracle4engineer
PRO
2
170
ActiveJobUpdates
igaiga
1
280
高度サイバー人材育成専科(後半)
nomizone
0
230
SREには開発組織全体で向き合う
koh_naga
0
390
AI-DLCを現場にインストールしてみた:プロトタイプ開発で分かったこと・やめたこと
recruitengineers
PRO
2
200
re:Invent 2025 ~何をする者であり、どこへいくのか~
tetutetu214
0
240
AlmaLinux + KVM + Cockpit で始めるお手軽仮想化基盤 ~ 開発環境などでの利用を想定して ~
koedoyoshida
0
130
生成AI時代におけるグローバル戦略思考
taka_aki
0
210
Featured
See All Featured
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.1k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
12
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.8k
Done Done
chrislema
186
16k
Building Adaptive Systems
keathley
44
2.9k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
2
3.8k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
87
Optimising Largest Contentful Paint
csswizardry
37
3.5k
Balancing Empowerment & Direction
lara
5
810
4 Signs Your Business is Dying
shpigford
186
22k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
400
Transcript
Refactor Spacesハンズオン後半戦の 紹介+α KMiura(@k_miura_io)
自己紹介 • 三浦 耕生(こうき) • 名古屋のゲーム会社のサーバー エンジニア • 好きなAWSのサービス:Lambda, Dynamo
DB, AWS IoT @k_miura_io koki.miura05
今日のハンズオンで作成するアプリ • 架空のECサイトに使われているEC2のバック エンドをLambdaに移植しようというハンズオン • カート機能(一覧参照、追加、削除)をLambda × Dynamo DBに •
Refactor Spacesを使うことで簡単にAPIの接 続先を変更することができる
オリジナルのハンズオンは… • Lambdaのロードがクソ遅い(レスポンスに約15秒) • Lambdaでjarファイルを立ち上げようとすると読み込みで時間を取られる
jarなんとかしよう • 多分Javaで動かすからこれだけ時間がかかる • ビルドのいらないスクリプト言語に実装し直す • ローカルで動作してからデプロイしたい(無駄なお金は払わないw)
アプリケーションの実装を見てみる • レポジトリはハンズオン資料の中のCloud Formationで使ったテンプレートから特定 • Lambdaのコードもここに入っているっぽい https://github.com/aws-samples/unishop-monolith-to-microservices
それっぽい実装(カートの追加 を例に) • Dynamo DBからデータを取得して商品のUUIDを追 加して更新してるだけ • レスポンスのメッセージを頼りにすればなんとか実装 できそう •
以外とシンプルで良かったw
同じ実装をしてみた • ランタイムはPython3.9 • コードエディタにコピペするだけで楽 • 実装がシンプルになって読みやすい(個人差?)
ローカルでの動作確認 • LambdaはHTTPリクエストの形式で 入力をJsonで渡せば確認ができる (メソッドは何でも良さそう) • Dynamo DBに入っているかは Dynamo DB
Adminというツールで 確認できる • LambdaとDynamo DBのDocker イメージを使って簡単に環境構築
結果どうなったか • カートの読み込みが2,3秒でおわった! • 普段遅いと言われるPythonはLambdaだと早くなるということが証明できた(はず)
まとめ • Lambdaを実装するならやはりスクリプト言語(負荷が大きい処理じゃなければ) • Refactor Spacesを使えばモノリシックなアプリとLambdaのハイブリット運用を したいときに便利 • 後半のハンズオンお楽しみに
後半のソースコード https://github.com/Miura55/MigrationHub-HandsOn-Extra
ここで思った これ他の機能もLambda に移植できるんじゃね?
試してみた • Javaはさっぱりなので、フロントエンドでリクエスト している箇所をひたすら洗い出す
カート以外の機能 • ユーザー認証周り • サインアップ(メールアドレスを送信するだけ) • ログイン(メールアドレスを送信するだけ) • 商品情報の一覧参照
カート以外の機能 • ユーザー認証周り→unishop_userテーブル(Hash:メールアドレス) • サインアップ(メールアドレスを送信するだけ) • ログイン(メールアドレスを送信するだけ) • 商品情報の一覧参照→unishop_unicornテーブル(Hash:uuid)
DEMO
完成! • 途中CORSの設定し直しや統合プロキシの再設定とか が必要だったけどなんとか実装できた • 昨日深夜テンションで作ったので詳細な手順が間に合 わなかった…(ごめんなさい)
Appendixに一式あります!
END