Upgrade to Pro — share decks privately, control downloads, hide ads and more …

GraphQL における quota を見ながら 高負荷試験 してみた

Kazuki Miura
September 30, 2022

GraphQL における quota を見ながら 高負荷試験 してみた

#jawsug_sre

AppSync の負荷試験のお話
token って難しいよね

Kazuki Miura

September 30, 2022
Tweet

More Decks by Kazuki Miura

Other Decks in Technology

Transcript

  1. #JAWSUG_SRE GraphQL における quota をみながら 負荷試験してみた 2022年9月30日 #04

  2. #jawsug_sre 04 自己紹介 三浦一樹(36) #Sauna #Sapporo #HTB #Amplify #StepFunctions #Serverless

    #AWSSamurai2019 #Marvel #Hinatazaka46 #ANN #PdM #PjM #SM
  3. #jawsug_sre 04 SREじゃないんですけど ツイートしたら捕まりましたw

  4. 数年に1度やってくる 瞬間的な高負荷 スパ イク #JAWSUG_SRE 04

  5. #jawsug_sre 04

  6. 落城

  7. #jawsug_sre 04 2021

  8. None
  9. #jawsug_sre 04 query mutation 商品データ 10Table ユーザデータ 10Table

  10. #jawsug_sre 04 query mutation amplify-cli

  11. #jawsug_sre 04 mutation ここがやばい 商品データ 10Table ユーザデータ 10Table

  12. クォータ #JAWSUG_SRE 04 リクエスト/s 最適化

  13. 最初の1クエリで 全データを持ってくる 2022.04.28 〜 2022.03.01 〜

  14. #jawsug_sre 04 2022

  15. クォータ #JAWSUG_SRE 04 リクエスト/s

  16. だと おもってたら

  17. 変わってた (本番 1週間前)

  18. クォータ #JAWSUG_SRE 04 リクエスト トークン /s リクエスト/s ↓

  19. とーくん??

  20. #JAWSUG_SRE 04 課金制度が変わった時? クォータが変更されたアナウンスは 見つからず、、 くやしいので、 過去のキャッシュを漁って、履歴を確認する

  21. #JAWSUG_SRE 04 通常は 1token ってことは、変わらなそうじゃん レスポンスヘッダーの x-amzn-appsync-TokenConsumed を確認してみましょう 冷静にドキュメントを読むんだ、、!

  22. x-amzn-appsync-tokenconsumed:50

  23. x-amzn- appsync- tokencon sumed: 50

  24. None
  25. 😴

  26. #JAWSUG_SRE 04 2000 リクエスト /s 1ユーザは初期2クエリする 2000 ➗ 2 =

    1000 users / s 昔の想定
  27. #JAWSUG_SRE 04 2000 リクエスト /s 1ユーザは初期2クエリする 2000 ➗ 2 =

    1000 users / s 2000 リクエスト トークン/s 1ユーザは 約 60トークン消費 2000 ➗ 60 ≒ 33 users/ s 昔の想定 実際
  28. #JAWSUG_SRE 04 2000 リクエスト /s 1ユーザは初期2クエリする 2000 ➗ 2 =

    1000 users / s 2000 リクエスト トークン/s 1ユーザは 約 60トークン消費 2000 ➗ 60 ≒ 33 users/ s 昔の想定 実際 想定の 30分の1 しか耐えられない!
  29. 怒りのデス・ロード

  30. 割愛

  31. 高負荷かけると 消費量が変化する 結論 #JAWSUG_SRE 04

  32. #jawsug_sre 04 JMeter から AppSync にクエリなげる CloudWatch logs Insight で頑張って集計する

    (金額はまぁすごいことに) いろんな負荷のかけ方をしてみた
  33. #jawsug_sre 04 JMeter から AppSync にクエリなげる 100 rps 付近から トークン消費が

    「1」に漸近する CloudWatch logs Insight で頑張って集計する (金額はまぁすごいことに) いろんな負荷のかけ方を試してみ たところ token consumed/queryのログのcount (それぞれ1秒間のSUM)
  34. スパイク前に JMeterで 高負荷かけたれ

  35. スパイクが予想される 前に高負荷かけて クエリあたりのトークン 消費量を 大幅に減少させ クォータの制限ないに 収めることができた!! まとめ #JAWSUG_SRE 04

  36. 基本はオンライン 東京以外はオフライン会場も