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
[JAWS-UG GameTech] 第6回 各種事例紹介_18TRIPにおけるAWSサービス...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Naoto Yasuda
September 30, 2024
Technology
0
570
[JAWS-UG GameTech] 第6回 各種事例紹介_18TRIPにおけるAWSサービスを活用した負荷テスト・障害テスト
Naoto Yasuda
September 30, 2024
Tweet
Share
Other Decks in Technology
See All in Technology
SREが向き合う大規模リアーキテクチャ 〜信頼性とアジリティの両立〜
zepprix
0
480
広告の効果検証を題材にした因果推論の精度検証について
zozotech
PRO
0
210
会社紹介資料 / Sansan Company Profile
sansan33
PRO
15
400k
量子クラウドサービスの裏側 〜Deep Dive into OQTOPUS〜
oqtopus
0
150
CDKで始めるTypeScript開発のススメ
tsukuboshi
1
590
旅先で iPad + Neovim で iOS 開発・執筆した話
zozotech
PRO
0
100
ブロックテーマ、WordPress でウェブサイトをつくるということ / 2026.02.07 Gifu WordPress Meetup
torounit
0
210
AWS Network Firewall Proxyを触ってみた
nagisa53
1
250
私たち準委任PdEは2つのプロダクトに挑戦する ~ソフトウェア、開発支援という”二重”のプロダクトエンジニアリングの実践~ / 20260212 Naoki Takahashi
shift_evolve
PRO
2
230
ランサムウェア対策としてのpnpm導入のススメ
ishikawa_satoru
0
230
OpenShiftでllm-dを動かそう!
jpishikawa
0
140
We Built for Predictability; The Workloads Didn’t Care
stahnma
0
150
Featured
See All Featured
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
1.9k
YesSQL, Process and Tooling at Scale
rocio
174
15k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
196
71k
It's Worth the Effort
3n
188
29k
How to Ace a Technical Interview
jacobian
281
24k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
9.9k
[SF Ruby Conf 2025] Rails X
palkan
1
760
We Have a Design System, Now What?
morganepeng
54
8k
Claude Code のすすめ
schroneko
67
210k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
200
Code Review Best Practice
trishagee
74
20k
Transcript
1 18TRIPにおける AWSサービスを活用した 負荷テスト・障害テスト 2024/9/25 JAWS-UG GameTech ©18TRIP PROJECT
2 株式会社フリースタイル ゲーム事業部 インフラセクション マネージャー 安田 直人 NintendoSwitch 向けソフト 「オバケイドロ!」
開発・運営 CloudFront フリースタイルとは? ・本社:愛知県名古屋市 ・業務内容: システムエンジニアリングサービス 自社/受託開発(システム / ゲーム) 好きなAWSサービス ©18TRIP PROJECT ©2018 FREE STYLE, Inc.
3 ©18TRIP PROJECT 18TRIP(エイトリ) 近未来の横浜「HAMA18区」を舞台に、 旅をテーマに展開される “おもてなしアドベンチャー” 企画・制作 音楽制作 開発
リベル・エンタテインメント ポニーキャニオン フリースタイル iOS/Android 2024/5/23 サービス開始
4 アジェンダ • 18TRIPのインフラ構成 • AWSサービスを活用したテストとは • FISって何? • DLTって何?
• まとめ ©18TRIP PROJECT
5 ©18TRIP PROJECT 18TRIPのインフラ構成
6 ©18TRIP PROJECT
7 サービスを活かしたサーバ構成 • LEMP環境をモダンなサービスをベースに構成 • WebサーバはECS on Fargate+Nginx+Laravel • DBはAurora
for MySQL • キャッシュDBとしてElastiCache for Redis ©18TRIP PROJECT
8 運用にもAWSサービスを活用 • デプロイやバッチ処理もAWSサービスで! • CodePipeline+GitHubでデプロイを管理 • StepFunctions+EventBridgeで各種バッチ処理を実施 • 更に今回はテスト関連もAWSサービスを活用することに
©18TRIP PROJECT
9 ©18TRIP PROJECT AWSサービスを活用した テストとは
10 AWSサービスを活用したテストとは • 本作ではリリース前に障害テストと負荷テストを実施 • これまでのプロジェクトでは • 手動で停止するなどの障害テスト • 攻撃サーバを別で構築しての負荷テスト
をしていた • FIS、DLTを利用することで手間を最小限に! ©18TRIP PROJECT
11 ©18TRIP PROJECT 「FIS」って何?
12 FIS = AWS製障害テストツール • 正式名称:AWS Fault Injection Service •
AWSの各リソースに対して疑似障害を起こせる • 例:EC2の停止・再起動、ECSタスクの停止、 RDSのフェールオーバーなどが実施可能 ©18TRIP PROJECT
13 シナリオに沿った障害テストが可能 • 複数の障害を順番に組み合わせて実施可能 • GUIでアクションとターゲット を順番に追加していく • 18TRIPでは •
ECSタスク停止 • RDSフェールオーバー を実施 ©18TRIP PROJECT
14 FISを使ってみて… • 設定方法はシンプルでわかりやすく、 最低限のテストならサクッと設定することが出来た • テスト内容のインポート、エクスポートもできるため パターン違いなども作りやすそう • 作り込んだシナリオや負荷テスト中に実行するなど、
多様な観点での実施は今後利用するうえでの課題 ©18TRIP PROJECT
15 ©18TRIP PROJECT 「DLT」って何?
16 DLT = AWS製負荷テストツール • 正式名称:Distributed Load Testing on AWS
• 単一のサービスではなく、CloudFormationにより 一括構築されたサービス群 • CloudFront、Lambda等から構成される ©18TRIP PROJECT
17 DLTの構成図 ©18TRIP PROJECT
18 JMeterベースで負荷テスト • Webコンソールからテスト内容を設定可能 • JMeterのシナリオとデータをまとめ、 Zipでアップロードして使用することもできる • 18TRIPではJMeterのシナリオを使って実施 ©18TRIP
PROJECT
19 DLTの設定画面 ©18TRIP PROJECT
20 DLTの実行結果画面 ©18TRIP PROJECT
21 ©18TRIP PROJECT DLTに問題発生…!!
22 負荷テストが上手くいかない… • DLTは指定した並列数に応じて Fargateが起動し、ターゲットへアタックする • が…テスト開始と共にFargateが次々止まり アタックが終わってしまう… ©18TRIP PROJECT
23 原因はS3の仕様にあり • DLT内部で設定用のファイルをアップロードしている S3の仕様に問題があった • 詳しくは後述 • ファイル容量が一定以上だとアップロードの 完了前にテストが開始してしまう…
• 結果、エラーになってFargateが停止… ©18TRIP PROJECT
24 問題となったS3の仕様とは • DLTはアップするファイルサイズにより、使うAPIが変わる • 5MB以上だとマルチパートアップロードが利用される • が…S3のマルチパートアップロードはタイムアウト回避の ためにアップロード途中でも完了ステータスを返してしまう •
レスポンスの詳細を見れば本当に完了しているか判定できるが、 DLTはそこまで行ってくれない ©18TRIP PROJECT
25 駄目なら直せば良い • DLT用のLambda関数は通常の関数と同様に 編集が可能 • 担当SAに助力頂きながら関数を修正 • S3へのアップロード処理に待ち時間を持たせることで 正常に動作するように
©18TRIP PROJECT
26 DLTを使ってみて… • JMeterの知見があれば比較的簡単に利用できた • 使われるサービスがサーバレス中心のため、 攻撃サーバを建てるよりもコスパが良かった • ただ、使い始めには前述したような謎挙動に 振り回される場面も…
©18TRIP PROJECT
27 まとめ • FIS、DLTの導入で工数もコストも改善できた • 今後も使い込むことで更にメリットが得られる • 知見の少なさ、挙動の読めなさで困ることもあったが、 SAさんに協力いただくことで対処が出来た ©18TRIP
PROJECT
28 ©18TRIP PROJECT ご清聴ありがとうございました