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
GraphQL における quota を見ながら 高負荷試験 してみた
Search
Kazuki Miura
September 30, 2022
Technology
0
890
GraphQL における quota を見ながら 高負荷試験 してみた
#jawsug_sre
AppSync の負荷試験のお話
token って難しいよね
Kazuki Miura
September 30, 2022
Tweet
Share
More Decks by Kazuki Miura
See All by Kazuki Miura
事業会社の未経験エンジニアチームが内製した2つのWebサービスのアーキテクチャを紹介します!
miu_crescent
0
31
本番環境で Cloudflareを 使ってみた話
miu_crescent
2
71
サウナ
miu_crescent
1
34
メールセキュリティの DMARC周りの設定を少しずつ設定してみたお話
miu_crescent
1
290
#jawsdays を含む #jawsug 全体の活動について
miu_crescent
1
89
ラスベガスに招待されて AWSの勉強をしてきた話
miu_crescent
10
4.4k
本番環境でAmplifyを3年くらい使ってみている弊社環境のご紹介
miu_crescent
0
2.2k
もめんと会
miu_crescent
0
290
ECサービスでのStripe実装例
miu_crescent
0
200
Other Decks in Technology
See All in Technology
One engineer company with Ruby on Rails
rstankov
2
470
Kaggleで学ぶ系列データのための深層学習モデリング
yu4u
7
1k
AWS アーキテクチャ作図入門/aws-architecture-diagram-101
ma2shita
16
6.5k
サービス開発におけるVue3とTypeScriptの親和性について
tsukuha
0
120
LayerXにおけるLLMプロダクト開発の今までとこれから
layerx
PRO
4
1.4k
Handling focus in 2024
tahia910
0
610
【SORACOM UG 東海】あらゆるモノがつながる社会へ、IoT と SORACOM
soracom
PRO
1
370
Cloudflare WorkersがPythonに対応したので試してみた
miura55
0
100
Gitlab本から学んだこと - そーだいなるプレイバック / gitlab-book
soudai
7
1.4k
Zero Data Loss Autonomous Recovery Service サービス概要
oracle4engineer
PRO
0
1.9k
AWSやJAWS-UGとの出会いを振り返る
yoyoyopg
1
180
Secrets of a PowerShell "Guru"
guyrleech
1
110
Featured
See All Featured
The Brand Is Dead. Long Live the Brand.
mthomps
49
29k
Infographics Made Easy
chrislema
238
18k
What the flash - Photography Introduction
edds
64
11k
Art, The Web, and Tiny UX
lynnandtonic
290
19k
Six Lessons from altMBA
skipperchong
22
3k
[RailsConf 2023] Rails as a piece of cake
palkan
28
4k
The Invisible Customer
myddelton
114
12k
Keith and Marios Guide to Fast Websites
keithpitt
408
22k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
155
14k
Designing Experiences People Love
moore
136
23k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
352
28k
Building a Scalable Design System with Sketch
lauravandoore
457
32k
Transcript
#JAWSUG_SRE GraphQL における quota をみながら 負荷試験してみた 2022年9月30日 #04
#jawsug_sre 04 自己紹介 三浦一樹(36) #Sauna #Sapporo #HTB #Amplify #StepFunctions #Serverless
#AWSSamurai2019 #Marvel #Hinatazaka46 #ANN #PdM #PjM #SM
#jawsug_sre 04 SREじゃないんですけど ツイートしたら捕まりましたw
数年に1度やってくる 瞬間的な高負荷 スパ イク #JAWSUG_SRE 04
#jawsug_sre 04
落城
#jawsug_sre 04 2021
None
#jawsug_sre 04 query mutation 商品データ 10Table ユーザデータ 10Table
#jawsug_sre 04 query mutation amplify-cli
#jawsug_sre 04 mutation ここがやばい 商品データ 10Table ユーザデータ 10Table
クォータ #JAWSUG_SRE 04 リクエスト/s 最適化
最初の1クエリで 全データを持ってくる 2022.04.28 〜 2022.03.01 〜
#jawsug_sre 04 2022
クォータ #JAWSUG_SRE 04 リクエスト/s
だと おもってたら
変わってた (本番 1週間前)
クォータ #JAWSUG_SRE 04 リクエスト トークン /s リクエスト/s ↓
とーくん??
#JAWSUG_SRE 04 課金制度が変わった時? クォータが変更されたアナウンスは 見つからず、、 くやしいので、 過去のキャッシュを漁って、履歴を確認する
#JAWSUG_SRE 04 通常は 1token ってことは、変わらなそうじゃん レスポンスヘッダーの x-amzn-appsync-TokenConsumed を確認してみましょう 冷静にドキュメントを読むんだ、、!
x-amzn-appsync-tokenconsumed:50
x-amzn- appsync- tokencon sumed: 50
None
😴
#JAWSUG_SRE 04 2000 リクエスト /s 1ユーザは初期2クエリする 2000 ➗ 2 =
1000 users / s 昔の想定
#JAWSUG_SRE 04 2000 リクエスト /s 1ユーザは初期2クエリする 2000 ➗ 2 =
1000 users / s 2000 リクエスト トークン/s 1ユーザは 約 60トークン消費 2000 ➗ 60 ≒ 33 users/ s 昔の想定 実際
#JAWSUG_SRE 04 2000 リクエスト /s 1ユーザは初期2クエリする 2000 ➗ 2 =
1000 users / s 2000 リクエスト トークン/s 1ユーザは 約 60トークン消費 2000 ➗ 60 ≒ 33 users/ s 昔の想定 実際 想定の 30分の1 しか耐えられない!
怒りのデス・ロード
割愛
高負荷かけると 消費量が変化する 結論 #JAWSUG_SRE 04
#jawsug_sre 04 JMeter から AppSync にクエリなげる CloudWatch logs Insight で頑張って集計する
(金額はまぁすごいことに) いろんな負荷のかけ方をしてみた
#jawsug_sre 04 JMeter から AppSync にクエリなげる 100 rps 付近から トークン消費が
「1」に漸近する CloudWatch logs Insight で頑張って集計する (金額はまぁすごいことに) いろんな負荷のかけ方を試してみ たところ token consumed/queryのログのcount (それぞれ1秒間のSUM)
スパイク前に JMeterで 高負荷かけたれ
スパイクが予想される 前に高負荷かけて クエリあたりのトークン 消費量を 大幅に減少させ クォータの制限ないに 収めることができた!! まとめ #JAWSUG_SRE 04
基本はオンライン 東京以外はオフライン会場も