Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
#JAWSUG_SRE GraphQL における quota をみながら 負荷試験してみた 2022年9月30日 #04
Slide 2
Slide 2 text
#jawsug_sre 04 自己紹介 三浦一樹(36) #Sauna #Sapporo #HTB #Amplify #StepFunctions #Serverless #AWSSamurai2019 #Marvel #Hinatazaka46 #ANN #PdM #PjM #SM
Slide 3
Slide 3 text
#jawsug_sre 04 SREじゃないんですけど ツイートしたら捕まりましたw
Slide 4
Slide 4 text
数年に1度やってくる 瞬間的な高負荷 スパ イク #JAWSUG_SRE 04
Slide 5
Slide 5 text
#jawsug_sre 04
Slide 6
Slide 6 text
落城
Slide 7
Slide 7 text
#jawsug_sre 04 2021
Slide 8
Slide 8 text
No content
Slide 9
Slide 9 text
#jawsug_sre 04 query mutation 商品データ 10Table ユーザデータ 10Table
Slide 10
Slide 10 text
#jawsug_sre 04 query mutation amplify-cli
Slide 11
Slide 11 text
#jawsug_sre 04 mutation ここがやばい 商品データ 10Table ユーザデータ 10Table
Slide 12
Slide 12 text
クォータ #JAWSUG_SRE 04 リクエスト/s 最適化
Slide 13
Slide 13 text
最初の1クエリで 全データを持ってくる 2022.04.28 〜 2022.03.01 〜
Slide 14
Slide 14 text
#jawsug_sre 04 2022
Slide 15
Slide 15 text
クォータ #JAWSUG_SRE 04 リクエスト/s
Slide 16
Slide 16 text
だと おもってたら
Slide 17
Slide 17 text
変わってた (本番 1週間前)
Slide 18
Slide 18 text
クォータ #JAWSUG_SRE 04 リクエスト トークン /s リクエスト/s ↓
Slide 19
Slide 19 text
とーくん??
Slide 20
Slide 20 text
#JAWSUG_SRE 04 課金制度が変わった時? クォータが変更されたアナウンスは 見つからず、、 くやしいので、 過去のキャッシュを漁って、履歴を確認する
Slide 21
Slide 21 text
#JAWSUG_SRE 04 通常は 1token ってことは、変わらなそうじゃん レスポンスヘッダーの x-amzn-appsync-TokenConsumed を確認してみましょう 冷静にドキュメントを読むんだ、、!
Slide 22
Slide 22 text
x-amzn-appsync-tokenconsumed:50
Slide 23
Slide 23 text
x-amzn- appsync- tokencon sumed: 50
Slide 24
Slide 24 text
No content
Slide 25
Slide 25 text
😴
Slide 26
Slide 26 text
#JAWSUG_SRE 04 2000 リクエスト /s 1ユーザは初期2クエリする 2000 ➗ 2 = 1000 users / s 昔の想定
Slide 27
Slide 27 text
#JAWSUG_SRE 04 2000 リクエスト /s 1ユーザは初期2クエリする 2000 ➗ 2 = 1000 users / s 2000 リクエスト トークン/s 1ユーザは 約 60トークン消費 2000 ➗ 60 ≒ 33 users/ s 昔の想定 実際
Slide 28
Slide 28 text
#JAWSUG_SRE 04 2000 リクエスト /s 1ユーザは初期2クエリする 2000 ➗ 2 = 1000 users / s 2000 リクエスト トークン/s 1ユーザは 約 60トークン消費 2000 ➗ 60 ≒ 33 users/ s 昔の想定 実際 想定の 30分の1 しか耐えられない!
Slide 29
Slide 29 text
怒りのデス・ロード
Slide 30
Slide 30 text
割愛
Slide 31
Slide 31 text
高負荷かけると 消費量が変化する 結論 #JAWSUG_SRE 04
Slide 32
Slide 32 text
#jawsug_sre 04 JMeter から AppSync にクエリなげる CloudWatch logs Insight で頑張って集計する (金額はまぁすごいことに) いろんな負荷のかけ方をしてみた
Slide 33
Slide 33 text
#jawsug_sre 04 JMeter から AppSync にクエリなげる 100 rps 付近から トークン消費が 「1」に漸近する CloudWatch logs Insight で頑張って集計する (金額はまぁすごいことに) いろんな負荷のかけ方を試してみ たところ token consumed/queryのログのcount (それぞれ1秒間のSUM)
Slide 34
Slide 34 text
スパイク前に JMeterで 高負荷かけたれ
Slide 35
Slide 35 text
スパイクが予想される 前に高負荷かけて クエリあたりのトークン 消費量を 大幅に減少させ クォータの制限ないに 収めることができた!! まとめ #JAWSUG_SRE 04
Slide 36
Slide 36 text
基本はオンライン 東京以外はオフライン会場も