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
January 29, 2022
Technology
960
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Refactor Spacesハンズオン延長戦
温故知新編 Lambda API Gateway ハンズオン
https://awsbasics.connpass.com/event/234744/
KMiura
January 29, 2022
More Decks by KMiura
See All by KMiura
運用しているアプリケーションのDBのリプレイスをやってみた
miura55
1
1.2k
Amazon Rekognitionを使ったインターホンハック
miura55
0
130
Pythonでルンバをハックしてみた
miura55
0
260
あなたの知らないクラフトビールの世界
miura55
0
450
Storage Browser for Amazon S3を触ってみた + α
miura55
0
300
Cloudflare R2をトリガーにCloudflare Workersを動かしてみた
miura55
0
320
あのボタンでつながるSORACOM
miura55
0
190
Postman Flowsで作るAPI連携LINE Bot
miura55
0
440
Lambdaと共に歩んだAWS
miura55
3
1.1k
Other Decks in Technology
See All in Technology
【公開用】AI_Dev_Ex2026_AI_登壇資料
matsuritechnologies
PRO
1
490
ファミコンでPHPを動かす / PHP on the Famicom
tomzoh
2
610
AI時代の開発生産性は、個人技からチーム設計へ
moongift
PRO
4
2.5k
Webアプリ認証の全体像 / The Big Picture of Web App Authentication
kitano_yuichi
1
430
OPENLOGI Company Profile for engineer
hr01
1
74k
StepFunctionsとGraphRAGを活用した暗黙知活用のためのRAG基盤
yakumo
0
140
それでも、技術なブログを書く理由 #kichijojipm / Why I Still Write Tech Blogs Even Now
shinkufencer
0
450
壊して学ぶAWS CDK: そのcdk deployで消えるもの、残るもの
k_adachi_01
1
480
インシデント事例と パッケージの全量解析に学ぶ ソフトウェアサプライチェーンの守り方 / supply-chain-attack-defense
flatt_security
0
890
凡エンジニアがこの先生きのこるためには。〜TypeScript完全に理解したい〜
alchemy1115
2
420
2年前に削除したPHPクラスが、 ある日突然決済をエラーにした
ykagano
1
780
事業成長とAI活用を止めないデータ基盤アーキテクチャの設計思想
hiracky16
0
540
Featured
See All Featured
How Software Deployment tools have changed in the past 20 years
geshan
0
34k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
420
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
440
Ethics towards AI in product and experience design
skipperchong
2
330
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.4k
Fireside Chat
paigeccino
42
4k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.5k
How GitHub (no longer) Works
holman
316
150k
Crafting Experiences
bethany
1
230
A designer walks into a library…
pauljervisheath
211
24k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Building Applications with DynamoDB
mza
96
7.1k
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 イメージを使って簡単に環境構築
DEMO
結果どうなったか • カートの読み込みが2,3秒でおわった! • 普段遅いと言われるPythonはLambdaだと早くなるということが証明できた(はず)
まとめ • Lambdaを実装するならやはりスクリプト言語(負荷が大きい処理じゃなければ) • Refactor Spacesを使えばAPI GatewayとLambdaの移植が簡単にできる(手順は多 いけどw) • ハンズオンの復習にもなってまた1つAWSの理解が深まった
• ハンズオンブランチへのマージお待ちしてますw
今回のソースコード https://github.com/Miura55/MigrationHub-HandsOn-Extra
宣伝 https://linedevelopercommunity.connpass.com/event/231939/
END