Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Refactor Spacesハンズオン後半戦の紹介+α
Search
KMiura
March 08, 2022
Technology
0
220
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
910
Amazon Rekognitionを使ったインターホンハック
miura55
0
37
Pythonでルンバをハックしてみた
miura55
0
87
あなたの知らないクラフトビールの世界
miura55
0
260
Storage Browser for Amazon S3を触ってみた + α
miura55
0
140
Cloudflare R2をトリガーにCloudflare Workersを動かしてみた
miura55
0
150
あのボタンでつながるSORACOM
miura55
0
90
Postman Flowsで作るAPI連携LINE Bot
miura55
0
320
Lambdaと共に歩んだAWS
miura55
3
680
Other Decks in Technology
See All in Technology
Two Blades, One Journey: Engineering While Managing
ohbarye
4
2.1k
NFV基盤のOpenStack更新 ~9世代バージョンアップへの挑戦~
vtj
0
360
LINEギフトにおけるバックエンド開発
lycorptech_jp
PRO
0
320
2/18 Making Security Scale: メルカリが考えるセキュリティ戦略 - Coincheck x LayerX x Mercari
jsonf
0
230
急成長する企業で作った、エンジニアが輝ける制度/ 20250227 Rinto Ikenoue
shift_evolve
0
140
OPENLOGI Company Profile for engineer
hr01
1
20k
ABWG2024採択者が語るエンジニアとしての自分自身の見つけ方〜発信して、つながって、世界を広げていく〜
maimyyym
1
180
IAMのマニアックな話2025
nrinetcom
PRO
6
1.2k
データエンジニアリング領域におけるDuckDBのユースケース
chanyou0311
9
2.2k
【詳説】コンテンツ配信 システムの複数機能 基盤への拡張
hatena
0
270
システム・ML活用を広げるdbtのデータモデリング / Expanding System & ML Use with dbt Modeling
i125
1
330
Aurora PostgreSQLがCloudWatch Logsに 出力するログの課金を削減してみる #jawsdays2025
non97
1
230
Featured
See All Featured
For a Future-Friendly Web
brad_frost
176
9.6k
Optimising Largest Contentful Paint
csswizardry
34
3.1k
Fontdeck: Realign not Redesign
paulrobertlloyd
83
5.4k
BBQ
matthewcrist
87
9.5k
Making Projects Easy
brettharned
116
6k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7.1k
How to Think Like a Performance Engineer
csswizardry
22
1.4k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
21
2.5k
Documentation Writing (for coders)
carmenintech
67
4.6k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
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