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
0
1.6k
「戦国炎舞 -KIZNA-」で行ったAWSのコスト最適化の話
「ゲームインフラ運用・開発メソッドLT大会! - AWS, Kubernetes, Jenkins -」の発表資料です。
https://techplay.jp/event/791398
CyberAgent SGE Engineer
September 11, 2020
Tweet
Share
More Decks by CyberAgent SGE Engineer
See All by CyberAgent SGE Engineer
SREチームの立ち上げから5年間とこれから
sgeengineer
0
1.4k
サムザップにおけるNotionの 活用事例とPHPでのNotionAPIを利用した仕組み構築の紹介
sgeengineer
0
1.7k
Laravel OctaneをどうしてもPharで運用したい話
sgeengineer
2
2.1k
大規模Unityゲーム開発の設計事例 〜ドメイン駆動設計とDIコンテナを導入した一年を振り返る〜 / cedec2021-ddd
sgeengineer
2
12k
ロボットを動かすビジュアルプログラミングでできることはPHPでもできる!
sgeengineer
0
1.4k
PHP8版!Swooleのフレームワークを比べてみた
sgeengineer
1
2.4k
AirtestとPocoとOpenSTFによるUnity製スマートフォン向けゲームの実機自動テスト環境構築とその利用方法
sgeengineer
0
4.6k
PHPでgRPCって どこまでいけるの?
sgeengineer
0
4.6k
エンジニアの文化の作り方 〜社内Podcastのススメ〜
sgeengineer
1
3.7k
Other Decks in Technology
See All in Technology
OCI 運用監視サービス 概要
oracle4engineer
PRO
0
4.8k
Flutterによる 効率的なAndroid・iOS・Webアプリケーション開発の事例
recruitengineers
PRO
0
110
ExaDB-D dbaascli で出来ること
oracle4engineer
PRO
0
3.9k
テストコード品質を高めるためにMutation Testingライブラリ・Strykerを実戦導入してみた話
ysknsid25
7
2.6k
これまでの計測・開発・デプロイ方法全部見せます! / Findy ISUCON 2024-11-14
tohutohu
3
370
オープンソースAIとは何か? --「オープンソースAIの定義 v1.0」詳細解説
shujisado
9
1k
AWS Media Services 最新サービスアップデート 2024
eijikominami
0
200
rootlessコンテナのすゝめ - 研究室サーバーでもできる安全なコンテナ管理
kitsuya0828
3
390
OTelCol_TailSampling_and_SpanMetrics
gumamon
1
180
SSMRunbook作成の勘所_20241120
koichiotomo
3
150
10XにおけるData Contractの導入について: Data Contract事例共有会
10xinc
6
650
New Relicを活用したSREの最初のステップ / NRUG OKINAWA VOL.3
isaoshimizu
2
610
Featured
See All Featured
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
1.9k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
169
50k
VelocityConf: Rendering Performance Case Studies
addyosmani
325
24k
Ruby is Unlike a Banana
tanoku
97
11k
A better future with KSS
kneath
238
17k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
6
410
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
506
140k
Speed Design
sergeychernyshev
25
620
Done Done
chrislema
181
16k
Typedesign – Prime Four
hannesfritz
40
2.4k
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.2k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
27
4.3k
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