#jawsug_sre
AppSync の負荷試験のお話 token って難しいよね
#JAWSUG_SREGraphQLにおけるquotaをみながら負荷試験してみた2022年9月30日#04
View Slide
#jawsug_sre 04自己紹介三浦一樹(36)#Sauna #Sapporo #HTB #Amplify#StepFunctions #Serverless#AWSSamurai2019#Marvel #Hinatazaka46 #ANN#PdM #PjM #SM
#jawsug_sre 04SREじゃないんですけどツイートしたら捕まりましたw
数年に1度やってくる瞬間的な高負荷スパイク#JAWSUG_SRE 04
#jawsug_sre 04
落城
#jawsug_sre 042021
#jawsug_sre 04querymutation商品データ10Tableユーザデータ10Table
#jawsug_sre 04querymutationamplify-cli
#jawsug_sre 04mutationここがやばい商品データ10Tableユーザデータ10Table
クォータ#JAWSUG_SRE 04リクエスト/s最適化
最初の1クエリで全データを持ってくる2022.04.28 〜2022.03.01 〜
#jawsug_sre 042022
クォータ#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
😴
#JAWSUG_SRE 042000 リクエスト /s1ユーザは初期2クエリする2000 ➗ 2 = 1000 users / s昔の想定
#JAWSUG_SRE 042000 リクエスト /s1ユーザは初期2クエリする2000 ➗ 2 = 1000 users / s2000 リクエスト トークン/s1ユーザは 約 60トークン消費2000 ➗ 60 ≒ 33 users/ s昔の想定 実際
#JAWSUG_SRE 042000 リクエスト /s1ユーザは初期2クエリする2000 ➗ 2 = 1000 users / s2000 リクエスト トークン/s1ユーザは 約 60トークン消費2000 ➗ 60 ≒ 33 users/ s昔の想定 実際想定の30分の1しか耐えられない!
怒りのデス・ロード
割愛
高負荷かけると消費量が変化する結論#JAWSUG_SRE 04
#jawsug_sre 04JMeter からAppSync にクエリなげるCloudWatch logs Insightで頑張って集計する(金額はまぁすごいことに)いろんな負荷のかけ方をしてみた
#jawsug_sre 04JMeter からAppSync にクエリなげる100 rps 付近からトークン消費が「1」に漸近するCloudWatch logs Insightで頑張って集計する(金額はまぁすごいことに)いろんな負荷のかけ方を試してみたところtoken consumed/queryのログのcount(それぞれ1秒間のSUM)
スパイク前にJMeterで高負荷かけたれ
スパイクが予想される前に高負荷かけてクエリあたりのトークン消費量を大幅に減少させクォータの制限ないに収めることができた!!まとめ#JAWSUG_SRE 04
基本はオンライン東京以外はオフライン会場も