E-11 Serverlessを高速化しよう!�~試して感じるパフォーマンスチューニング~
�Fusic 清家史郎 (@seike460)
�HTB 三浦一樹 (@miu_crescent)
�Stripe 岡本 秀高(@hidetaka_dev)
�Momento Yoshitaka Koitabashi(@yoshii0110)
JAWS DAYS 2024
JAWS DAYS 2024
ハッシュタグ:#jawsdays2024 #jawsug #jawsdays2024_e
講師紹介
2
清家 史郎
JAWS-UG 福岡支部
Fukuoka.php
JP_Stripes 福岡
福岡
Serverless Meetup Fukuoka
ハッシュタグ:#jawsdays2024 #jawsug #jawsdays2024_e
自己紹介
JAWS-UG 札幌支部
Media-JAWS
JP_Stripes サッポロ
札幌
三浦 一樹
ハッシュタグ:#jawsdays2024 #jawsug #jawsdays2024_e
自己紹介
4
Developer Advocate @ Stripe�💬 @hidetaka_dev�✉️ https://hidetaka.dev
AWS Samurai 2017�AWS Community Builder�Alexa Champions
Hidetaka Okamoto(岡本秀高)
ハッシュタグ:#jawsdays2024 #jawsug #jawsdays2024_e
自己紹介
JAWS-UG コンテナ支部
小板橋 由誉
よく出没するコミュニティ
TiDB User Group
ハッシュタグ:#jawsdays2024 #jawsug #jawsdays2024_e
下準備
6
なにはともあれデプロイをします
今回時間が限られている為、
前提の説明前にデプロイを行います。
https://github.com/seike460/serverless-performance-handson
connpassに貼られているGitHubのREADMEの手順の、
手順1まで進めてAWS SAMのデプロイまで行ってください
7
ここまで16:20
ハッシュタグ:#jawsdays2024 #jawsug #jawsdays2024_e
サーバーレスと高速化
8
Serverlessの長所 -> スケーラビリティ
サーバーレスはスケーラビリティが高い!
でもサーバーレスをただただ使えば解決するわけではない
これらの問題に立ち向かう為に、
パフォーマンスチューニングを行いましょう!
9
ハッシュタグ:#jawsdays2024 #jawsug #jawsdays2024_e
トレーシング
10
まずは現状を知ることから
パフォーマンスチューニングしましょう!
でも特にサーバーレスの場合、状況を追いづらく、
まずどこから手をつけるべきわからない事が多いです
またシステムの端から端まで理解するのは難しい
それではトレーシングを利用することで、
ボトルネックを特定しましょう
手順2まで進めて負荷をかけることで、
問題になっている処理を特定しましょう
11
ここまで16:30
ハッシュタグ:#jawsdays2024 #jawsug #jawsdays2024_e
改善
12
DynamoDBの乱暴なScan
かなり乱暴なDynamoDBをScanをしている事がわかりました
�データ量が多くなれば多くなるほど、
動作に影響が出てきます
お金にものを言わせて高速化する事も出来ますが、
正しくQueryすることでDynamoDBの負荷を下げましょう
13
ここまで16:40
ハッシュタグ:#jawsdays2024 #jawsug #jawsdays2024_e
非同期化
もう一つのボトルネックが購入処理にありました。
今回はSleepが入っていますが、
ここは購入処理を行う別システムに
リクエストしていると読み替えてください。
その場合、私達にはどうしようもすることは出来ません。
そこで非同期化を行うことにします。
手順3まで進めて、SQSによる非同期化とDynamoDBの改善で
購入体験の高速化を行ってください。
14
ここまで16:40
ハッシュタグ:#jawsdays2024 #jawsug #jawsdays2024_e
API キャッシュ
15
API キャッシュ
最後に更に負荷分散を行っていきます。
手順4まで進めてください。
DynamoDBの読込の負荷が減っている事を確認してください
1分間購入履歴が更新されないことにはなりますが、
その代わりにDynamoDBの読込負荷を
大幅に軽減する事が可能です。
※キャッシュは使い方を間違えると両刃の剣になりかねません
仕様の調節や自身のサービスの特性を理解して使いましょう
16
ここまで16:50
ハッシュタグ:#jawsdays2024 #jawsug #jawsdays2024_e
お片付け
17
お片付け
お片付けをします。
手順5を実施してAWS SAMのリソースを削除した後に
Cloud9を削除してください。お疲れ様でした。
今回行ったハンズオンは高速化の入口のような内容ですが�興味が出てきた方は是非パフォーマンスチューニングを�更に行ってみてください。
今回禁止していたVPCを利用することでDynamoDB Accelerator (DAX)利用するなど更なる高速化の世界にのめり込みましょう
18
ここまで17:00
ハッシュタグ:#jawsdays2024 #jawsug #jawsdays2024_e
19