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.4k
「戦国炎舞 -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.2k
サムザップにおけるNotionの 活用事例とPHPでのNotionAPIを利用した仕組み構築の紹介
sgeengineer
0
1.5k
Laravel OctaneをどうしてもPharで運用したい話
sgeengineer
1
1.8k
大規模Unityゲーム開発の設計事例 〜ドメイン駆動設計とDIコンテナを導入した一年を振り返る〜 / cedec2021-ddd
sgeengineer
2
11k
ロボットを動かすビジュアルプログラミングでできることはPHPでもできる!
sgeengineer
0
1.2k
PHP8版!Swooleのフレームワークを比べてみた
sgeengineer
1
2.1k
AirtestとPocoとOpenSTFによるUnity製スマートフォン向けゲームの実機自動テスト環境構築とその利用方法
sgeengineer
0
4.3k
PHPでgRPCって どこまでいけるの?
sgeengineer
0
4.4k
エンジニアの文化の作り方 〜社内Podcastのススメ〜
sgeengineer
1
3.6k
Other Decks in Technology
See All in Technology
エンジニアの生存戦略 〜クラウド潮流の経験から紐解く技術トレンドのメカニズムと乗りこなし方〜
shimy
9
1.9k
Classmethod流のPlatform Engineering / classmethod-platform-engineering-devio2024
tomoki10
0
480
技術負債による事業の失敗はなぜ起こるのか / Why do business failures due to technical debt occur?
i35_267
0
190
ここがすごいよ! AWS Systems Manager!
saichan11
0
1.8k
エンジニア向け会社紹介資料
caddi_eng
14
230k
推薦システムを本番導入する上で一番優先すべきだったこと~NewsPicks記事推薦機能の改善事例を元に~
morinota
0
130
簡単に始めるSnowflakeの機械学習
nayuts
1
190
OSSコミットしてZennの課題を解決した話
dyoshikawa1993
0
150
フルリモートワークはエンジニアの夢を叶えたか? #cm_odyssey
mamohacy
2
600
初中級者用如何使用backlog -VALE TUDOEDITION-
in0u
0
140
サービスの持続的な成長と技術負債について
siva_official
PRO
10
4.4k
CEL(Common Expression Language)で書いた条件にマッチしたIAM Policyを見つける / iam-policy-finder
fujiwara3
0
710
Featured
See All Featured
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
35
6.3k
Fashionably flexible responsive web design (full day workshop)
malarkey
399
65k
Leading Effective Engineering Teams 2024
addyosmani
3
300
Documentation Writing (for coders)
carmenintech
63
4.2k
Typedesign – Prime Four
hannesfritz
37
2.2k
We Have a Design System, Now What?
morganepeng
46
7k
GraphQLの誤解/rethinking-graphql
sonatard
59
9.6k
Build The Right Thing And Hit Your Dates
maggiecrowley
28
2.2k
Making Projects Easy
brettharned
111
5.7k
Writing Fast Ruby
sferik
623
60k
Code Review Best Practice
trishagee
58
16k
A Philosophy of Restraint
colly
200
16k
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