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
「戦国炎舞 -KIZNA-」で行ったAWSのコスト最適化の話
Search
CyberAgent SGE Engineer
September 11, 2020
Technology
2.5k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
「戦国炎舞 -KIZNA-」で行ったAWSのコスト最適化の話
「ゲームインフラ運用・開発メソッドLT大会! - AWS, Kubernetes, Jenkins -」の発表資料です。
https://techplay.jp/event/791398
CyberAgent SGE Engineer
September 11, 2020
More Decks by CyberAgent SGE Engineer
See All by CyberAgent SGE Engineer
SREチームの立ち上げから5年間とこれから
sgeengineer
0
2.5k
サムザップにおけるNotionの 活用事例とPHPでのNotionAPIを利用した仕組み構築の紹介
sgeengineer
0
2.8k
Laravel OctaneをどうしてもPharで運用したい話
sgeengineer
2
3.3k
大規模Unityゲーム開発の設計事例 〜ドメイン駆動設計とDIコンテナを導入した一年を振り返る〜 / cedec2021-ddd
sgeengineer
2
17k
ロボットを動かすビジュアルプログラミングでできることはPHPでもできる!
sgeengineer
0
2.4k
PHP8版!Swooleのフレームワークを比べてみた
sgeengineer
1
3.6k
AirtestとPocoとOpenSTFによるUnity製スマートフォン向けゲームの実機自動テスト環境構築とその利用方法
sgeengineer
0
5.9k
PHPでgRPCって どこまでいけるの?
sgeengineer
0
5.6k
エンジニアの文化の作り方 〜社内Podcastのススメ〜
sgeengineer
1
4.7k
Other Decks in Technology
See All in Technology
Mastraエージェント、どのクラウドにデプロイする?
minorun365
PRO
2
150
SRE歴2ヶ月でも開発6年の知見を活かして、チームで止まっていた環境改善を前に進めた話
a_ono
0
190
Hatena Engineer Seminar 37 jj1uzh
jj1uzh
0
420
テスト設計の本質を改めて考えてみる~生成AIを活用する時代だからこそ、作ったテストの説明性を高めよう~
yamasaki696
1
290
AWS Summit 2026で見えたSIerにとっての Amazon Quickの位置づけ
maf_0521
0
160
記録をかんたんに、提案をパーソナルに ── AIであすけんが目指すもの
oprstchn
0
130
AIをフル活用してオンコール機能のプロトタイプを2日で作った話 / Building an AI-Powered On-Call Prototype in Just Two Days
nari_ex
0
170
ループエンジニアリングでE2Eテストを実践
noriyukitakei
0
250
AIに「使われる」時代のSaaS戦略 〜既存WebAPIのMCPサーバー化における開発ノウハウ〜
ekispert_api
0
280
From Prompt Engineering to Loop Engineering
shibuiwilliam
1
330
スタートアップにおけるアジャイルの実践について #shibuyagile
murabayashi
3
2k
從觀望到全公司落地:AI Agentic Coding 導入實戰 — 流程整合與安全治理
appleboy
1
710
Featured
See All Featured
WCS-LA-2024
lcolladotor
0
670
The Mindset for Success: Future Career Progression
greggifford
PRO
0
370
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.6k
The Curious Case for Waylosing
cassininazir
1
420
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
How to make the Groovebox
asonas
2
2.3k
Darren the Foodie - Storyboard
khoart
PRO
3
3.4k
Everyday Curiosity
cassininazir
0
250
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
3.6k
How Software Deployment tools have changed in the past 20 years
geshan
0
34k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
440
Transcript
「戦国炎舞 -KIZNA-」で行った AWSのコスト最適化の話 株式会社サムザップ SRE 山﨑 弘太郎
自己紹介 山﨑 弘太郎 株式会社サムザップ 戦国炎舞 -KIZNA- SRE 最近はまっていること: 自作キーボード 2
会社概要 • 株式会社サムザップ • 2009年5月CyberAgent子会社として設立 • 事業内容 • スマートフォン向けゲームアプリの企画、運営、配信 3
提供サービス 戦国炎舞 - KIZNA - ©2019 暁なつめ・三嶋くろね/ KADOKAWA/映画このすば製作委員会 ©Sumzap, Inc.
この素晴らしい世界に祝福を! ファンタスティックデイズ 2013年4月配信開始 戦国時代を舞台にしたカードバトルゲーム 1日3回20人対20人のリアルタイムバトル「合戦」が行われる 2020年2月配信開始 ラノベやアニメで大人気の『このすば』初のスマホゲーム ゲームオリジナルのキャラクターやストーリーも登場 4
Sumzap Engineering Blog tech.sumzap.co.jp 5
概要 2019年2月に戦国炎舞はAWSに移行しました。移行後にクラウドの特性を活 かしたコスト最適化に取り組んだ結果、移行前と比べて月額インフラ費用を約 50%削減できました。インフラ費用を抑えたいが何をすれば良いかわからな いという方向けに、サムザップで行った施策の中から導入難度が低く、コスト 削減効果が高かったものを中心にお話しします 6
無駄なコストを省いて、そのお金を事業の成長のために必要な 投資に回せるようにする。 コスト最適化の目的 事業成長の ための投資に 7
コスト最適化を実施する前に 8
請求画面やCost Explorerなどを用いて どこでいくら費用が発生しているのかを調べる コスト調査・分析 DB Web Redis1 Redis2 cache その他
9
最適化前 環境別AWSコスト 本番環境のコストが全体の94% (devとstgのコストは僅か) →本番環境のコスト最適化を優先 (devとstgは工数がかからないものを実施) 10
本番環境の用途別コスト 特定の用途のコストが突出して多くはない Web/ DB/ Redisの3つで全体の92%の コストがかかっている。 →3つそれぞれでコスト最適化を実施。 作業の優先度は施策のコスト削減効果と 導入難度を基に決める。 11
AWSでのコスト最適化は大きく次の3種類に分けられる 1. アーキテクチャの最適化 2. 割引オプションの活用 3. リソースの無駄をなくす コスト最適化方法 12
1. アーキテクチャの最適化 ◦ Web時限オートスケール、DB集約 2. 割引オプションの活用 ◦ リザーブドインスタンス ◦ スポットインスタンス
3. リソースの無駄をなくす ◦ 使用していないAWSリソースの削除 ◦ インスタンスタイプ/台数の最適化 ◦ 休日・夜間のインスタンス停止 戦国炎舞で実施したこと 13
戦国炎舞で実施したこと 休日・夜間のインスタンス停止 効果 複雑 Webオートスケール 不要なAWSリソース削除 リザーブドインスタンス DB集約 スポットインスタンス インスタンスタイプ/台数の最適化
14
今日話すこと 休日・夜間のインスタンス停止 効果 複雑 Webオートスケール 不要なAWSリソース削除 リザーブドインスタンス DB集約 スポットインスタンス インスタンスタイプ/台数の最適化
15
リザーブドインスタンス インスタンスタイプ/台数の最適化 スポットインスタンスの活用 時限オートスケール 休日、深夜の開発環境インスタンス停止 16
リザーブドインスタンス(RI)とは • 1年または3年の長期利用をコミットすることで、 オンデマンドインスタンス料金に比べて 大幅な割引きを受ける権利が与えられる • 期間が長く、前払い料金が多いほど割引率が高い • 常時稼働するインスタンスでの利用に適している 17
AWS公式の料金表から オンデマンド価格との 損益分岐点を計算 RI購入の判断 18
オンデマンド価格との損益分岐点 1年 累積額 利用期間 年間204日以上利用するなら、 1年RIを購入した方がお得 例:db.r5.xlargeを1年RI、全額前払いで購入した場合 オンデマンド スタンダード1年 19
• スタンダード1年間 • 一部前払い • Auroraの全インスタンス 購入した主なRI 20
• 本番環境 • DBコスト 43%減 効果 RI購入 21
POINT ・RI購入は組織の経営層、PJ責任者、経理と早めに相談 22
リザーブドインスタンス インスタンスタイプ/台数の最適化 スポットインスタンスの活用 時限オートスケール 休日、深夜の開発環境インスタンス停止 23
インスタンスタイプ/台数の最適化 モニタリングツールでリソース使用状況を確認しながら、 インスタンスタイプ、台数を調整する。 AWS移行のタイミングでは移行前の環境に近いスペックの インスタンスを使っていたが、コストパフォーマンスの良い 新しい世代のインスタンスに置き換えていった。 24
効果 web 25%減 redis 10%減 RI購入 台 数 25
インスタンスファミリーを跨いだ適切なインスタンスの提案および 適用した場合の予想節約額を教えてくれる。 さらに割引オプションを購入した場合の推定節約額も確認可能。 Cost Explorerの推奨事項を使う あなたm5.2xlarge使っ てるけど、c5.xlargeの 方が良さそうです。 月$203 *
台数分節約 できるよ。 なんとー 26
Cost Explorerの推奨事項を使う 27 Cost Explorerの例
POINT • 新しい世代のインスタンスを使う • CostExplorerの推奨機能とモニタリングツールを併用する • CostExplorerの推奨はあくまで推奨 ◦ インスタンスタイプを変更して問題ないかは自分たちで調べてから判断 28
リザーブドインスタンス インスタンスタイプ/台数の最適化 スポットインスタンスの活用 時限オートスケール 休日、深夜の開発環境インスタンス停止 29
支払い方法 1. オンデマンド 2. スポットインスタンス 3. Saving Plans 4. RI
5. Dedicated Hosts Amazon EC2 インスタンス 30
• 未使用のEC2を入札方式で利用 ◦ キャパシティが確保できない場合 ◦ 稼働中インスタンスが中断される場合 • オンデマンド比で最大90%以上の割引 • EC2
Auto Scaling, ECSなどから利用できる スポットインスタンス 31
キャパシティの安全な確保 • プールの多様化 • 負荷見積もり ◦ 性能の低いもので計算(c5.9xlarge) ◦ プール2つのインスタンスがすべて落ちても問題ないインスタンス数 スポットインスタンスの活用
32
スポットインスタンスの中断の対応 • 2分前終了通知 ◦ LBからの切り離し ◦ ログ収集エージェントの安全な停止 • アプリ/デプロイへの影響 ◦
デプロイ中のインスタンスの増減など • デプロイ時間の短縮 スポットインスタンスの活用 33
効果 • 約10%減 • 過剰性能のインスタンス • RIの適用範囲外 RI購入 台 数
スポットインスタンス 34
• キャパシティの安全な確保 • スポットインスタンスの 中断への備え • Quotaの申請が必要 POINT 忘れてた・・・ 35
リザーブドインスタンス インスタンスタイプ/台数の最適化 スポットインスタンスの活用 時限オートスケール 休日、深夜の開発環境インスタンス停止 36
• 1日3回の定期的なwebへの リクエスト集中 ◦ scheduled action • ゲームイベントによる リクエスト数の増減 ◦
CloudWatch + Lambdaで 増設前にゲーム情報を取得 scheduled actionのキャパシティ変更 時限オートスケーリング 1日3回のリクエスト集中 37
webサーバーを24時間起動させつづけた場合と比べて約 43%の削減 効果 38
POINT • キャパシティの確保 ◦ 増設失敗に備え、リクエスト集中時間の前にインスタンス数をチェック 39
リザーブドインスタンス インスタンスタイプ/台数の最適化 スポットインスタンスの活用 時限オートスケール 休日、深夜の開発環境インスタンス停止 40
• 停止期間 平日 0:00〜9:00 (9h) 土日 0:00〜24:00 (24h) 55% 停止 • 対象:
EC2、RDS • Slack Actionで起動・停止 休日・深夜のサーバー停止(dev/stg) 41
効果 開発環境の AWSコスト39%減 42
戦国炎舞のインフラコスト AWSコスト 49%減 43
今後検討していること • Savings Plans • DB・Redis集約 44
• 支払い方法と損益分岐点からRI購入 • Cost Explorer推奨事項を参考にインスタンスタイプ・台数を最適 化 • 中断・キャパシティ対策を行いスポットインスタンスを活用 • CloudWatch・Lambdaでより柔軟な時限オートスケーリング
• CloudWatch・Lambda・Slack Actionで開発環境の休日、 夜間のインスタンス停止・再開 まとめ 45
ご清聴ありがとうございました 46