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
230
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
1k
Amazon Rekognitionを使ったインターホンハック
miura55
0
60
Pythonでルンバをハックしてみた
miura55
0
130
あなたの知らないクラフトビールの世界
miura55
0
310
Storage Browser for Amazon S3を触ってみた + α
miura55
0
180
Cloudflare R2をトリガーにCloudflare Workersを動かしてみた
miura55
0
190
あのボタンでつながるSORACOM
miura55
0
120
Postman Flowsで作るAPI連携LINE Bot
miura55
0
360
Lambdaと共に歩んだAWS
miura55
3
790
Other Decks in Technology
See All in Technology
品質と速度の両立:生成AI時代の品質保証アプローチ
odasho
1
340
B2C&B2B&社内向けサービスを抱える開発組織におけるサービス価値を最大化するイニシアチブ管理
belongadmin
1
6.9k
CRE Camp #1 エンジニアリングを民主化するCREチームでありたい話
mntsq
1
120
AI専用のリンターを作る #yumemi_patch
bengo4com
5
4.3k
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
27k
united airlines ™®️ USA Contact Numbers: Complete 2025 Support Guide
flyunitedhelp
1
310
赤煉瓦倉庫勉強会「Databricksを選んだ理由と、絶賛真っ只中のデータ基盤移行体験記」
ivry_presentationmaterials
2
360
Glacierだからってコストあきらめてない? / JAWS Meet Glacier Cost
taishin
1
160
いつの間にか入れ替わってる!?新しいAWS Security Hubとは?
cmusudakeisuke
0
120
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
3
960
生成AI開発案件におけるClineの業務活用事例とTips
shinya337
0
260
敢えて生成AIを使わないマネジメント業務
kzkmaeda
2
440
Featured
See All Featured
Automating Front-end Workflow
addyosmani
1370
200k
Being A Developer After 40
akosma
90
590k
A designer walks into a library…
pauljervisheath
207
24k
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.5k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
48
2.9k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
107
19k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
[RailsConf 2023] Rails as a piece of cake
palkan
55
5.7k
Java REST API Framework Comparison - PWX 2021
mraible
31
8.7k
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