24.3K Views
June 07, 23
スライド概要
【MIXI × Money Forward × NewsPicks共同開催】AWSコスト最適化夏祭り の発表資料です
https://mixi.connpass.com/event/283697/
経済ニュースアプリのSREの仕事をしています。
コストモニタリングと最適化の運用サイクルを 回してAWSコストを30%以上削減した話 株式会社ニューズピックス 安藤 裕紀 【MIXI × Money Forward × NewsPicks共同開催】AWSコスト最適化夏祭り - 2023.6.7(Wed)
00 自己紹介 安藤裕紀 / Yuki Ando NewsPicks SRE Unit Leader SREチームのマネージャー兼テックリード 好きなAWSのサービス:ECS、Cost Explorer 、CDK ©NewsPicks Inc. All Rights Reserved.
00 目次 1. AWSコスト最適化への課題意識 2. コストモニタリングと優先順位づけ 3. コスト最適化の取り組み例 4. まとめ ©NewsPicks Inc. All Rights Reserved.
01 AWSコスト最適化への課題意識 ©NewsPicks Inc. All Rights Reserved.
01 ソーシャル経済メディア NewsPicksについて タイトルタイトルタイトルタイトルタイトルタイトルタイト ルタイトルタイトルタイトル テキストテキストテキストテキストテキストテキストテ キストテキストテキストテキストテキストテキストテキ ストテキストテキストテキストテキストテキストテキスト テキストテキストテキストテキストテキストテキストテ キストテキストテキストテキストテキストテキストテキ ストテキストテキストテキストテキストテキストテキスト テキストテキストテキストテキストテキストテキストテ キストテキスト ©NewsPicks Inc. All Rights Reserved.
01 プロダクトチーム内でSREが1チームで複数事業のインフラを担当 SRE ©NewsPicks Inc. All Rights Reserved.
01 SREチームのミッションと、活動の4つの軸 Mission 誰もが安全かつ高速に開発できるインフラを提供することで、 NewsPicksの企業価値を継続的に向上させる ユーザー体験を守る 開発者体験を高める 常にユーザー視点のモニタリングを行い、可用性やレイテ ンシーのSLO達成を通じて快適なユーザー体験を提供する メディアとしてニュースのスパイクアクセスを難なく捌く ユーザーに価値を届けるプロダクト開発のパフォーマンスを 最大化するため、開発者の負を取り除き快適・安全・高速に 使える開発基盤サービスを提供する レガシーを捨てる セキュリティ・コストを適正化する レガシーなサーバーOSやミドルウェア、言語ランタイム、 アーキテクチャーを継続的に刷新していく モダンな技術スタックによりエンジニア採用の競争力を 高め、プロダクト開発組織の成長阻害要因を取り除く SNSの側面があるソーシャル経済メディアをユーザーが安心し て利用できるセキュリティを確保する サービスの規模拡大に比例してサーバーのコストが増えない ようにし、売上に対するコストの割合を低くする ©NewsPicks Inc. All Rights Reserved.
01 「サービスの規模拡大に比例してコストが増えないようにする」 Mission 誰もが安全かつ高速に開発できるインフラを提供することで、 NewsPicksの企業価値を継続的に向上させる ユーザー体験を守る 開発者体験を高める 常にユーザー視点のモニタリングを行い、可用性やレイテ ンシーのSLO達成を通じて快適なユーザー体験を提供する メディアとしてニュースのスパイクアクセスを難なく捌く ユーザーに価値を届けるプロダクト開発のパフォーマンスを 最大化するため、開発者の負を取り除き快適・安全・高速に 使える開発基盤サービスを提供する レガシーを捨てる セキュリティ・コストを適正化する レガシーなサーバーOSやミドルウェア、言語ランタイム、 アーキテクチャーを継続的に刷新していく モダンな技術スタックによりエンジニア採用の競争力を 高め、プロダクト開発組織の成長阻害要因を取り除く SNSの側面があるソーシャル経済メディアをユーザーが安心 して利用できるセキュリティを確保する サービスの規模拡大に比例してサーバーのコストが増えない ようにし、売上に対するコストの割合を低くする ©NewsPicks Inc. All Rights Reserved.
01 未曾有の円安によりSREチームの心は休まらない日々 USD/JPYの為替チャート(2022/1〜2023/6) 😱2022/10:150円(+30%) 😰2022/7:135円(+17%) 🤔2022/4:125円(+8.5%) 😀2022/1:115円(±0%) yahoo!finance https://finance.yahoo.com/quote/JPY=X 2023.6.7時点より ©NewsPicks Inc. All Rights Reserved.
01 未曾有の円安によりSREチームの心は休まらない日々 USD/JPYの為替チャート(2022/1〜2023/6) 😱2022/10:150円(+30%) 何もしなければコストが 30%増える 😰2022/7:135円(+17%) 🤔2022/4:125円(+8.5%) 😀2022/1:115円(±0%) yahoo!finance https://finance.yahoo.com/quote/JPY=X 2023.6.7時点より ©NewsPicks Inc. All Rights Reserved.
01 未曾有の円安によりSREチームの心は休まらない日々 USD/JPYの為替チャート(2022/1〜2023/6) 😱2022/10:150円(+30%) 何もしなければコストが 30%増える 1ドル115円→150円でAWS費用が30%アップ😱 「仮に」AWS費用が1億なら3000万の利益減少😭 😰2022/7:135円(+17%) 利益率15%の事業だとすると、追加で2億の売上を持ってこないと 会社として当初の収益目標を達成できないことになります🥺(やばい) 🤔2022/4:125円(+8.5%) ※数字は、NewsPicks事業の数字ではなく架空のものです 😀2022/1:115円(±0%) yahoo!finance https://finance.yahoo.com/quote/JPY=X 2023.6.7時点より ©NewsPicks Inc. All Rights Reserved.
01 2023年は135円ラインで推移すると思いきや、余談を許さない上昇傾向 USD/JPYの為替チャート(2022/1〜2023/6) 😱2022/10:150円(+30%) 😰2022/7:135円(+17%) 🤔2022/4:125円(+8.5%) 😀2022/1:115円(±0%) yahoo!finance https://finance.yahoo.com/quote/JPY=X 2023.6.7時点より ©NewsPicks Inc. All Rights Reserved.
円安以上にドルベースでコストを減らすしかない💪 ©NewsPicks Inc. All Rights Reserved.
01 最終的に、2022/1のAWSコストから30%以上の削減に成功💪 AWS QuickSightで可視化した月別サービス別AWS料金(2022/1〜2023/5) ©NewsPicks Inc. All Rights Reserved.
02 コストモニタリングと優先順位づけ ©NewsPicks Inc. All Rights Reserved.
02 コストを最適化するには、まず可視化が必要 AWSコスト最適化ガイドブックより: Cloud Financial Management(CFM)フレームワーク ©NewsPicks Inc. All Rights Reserved.
02 毎週・毎月のコストモニタリング定例でコスト構造を把握する テックブログでも紹介されたスプシ芸 ©NewsPicks Inc. All Rights Reserved.
02 AWSのマネコンだけ見てもコスト最適化のヒントはたくさん Savings Plans Compute Optimizer Cost Exproler カバレッジレポート /使用状況レ ポートで、利用するコンピューティン グリソースに対する SP購入の推奨 事項を出してくれる オンデマンド課金を最小限にする チューニングに使える EC2インスタンスに割り当てている リソースが、使用状況に対して過剰 なプロビジョニングがあれば検出し てくれる 過剰な場合はスケールダウンを検 討することができる DynamoDBのOn Demand / Reserved のキャパシティユニット 使用量の比率を確認できる オンデマンド課金を最小限にする チューニングに使える ©NewsPicks Inc. All Rights Reserved.
01 コストの変動や疑問があればすぐに担当チーム確認100本ノック コストがどのような原因によって変動するのか、理解を深めていく ©NewsPicks Inc. All Rights Reserved.
02 AWSサービスごとにコスト変動要素を分類して優先度をつける AWSコスト変動要因とAWSサービスの例 ● ネットワークトラフィック・ビジネスの利用状況により変動 ○ ● エンジニアの人数・開発チームの稼働状況により変動 ○ ● CloudFront、WAF、ECS、Elemental MediaLive 開発環境のリソース、CodeBuild 固定費+漸増するストレージ料金 ○ EC2(Savings Plans)、RDS(RI)、ElastiCache(RI)、DynamoDB(Reserved Capacity) ©NewsPicks Inc. All Rights Reserved.
02 AWSサービスごとにコスト変動要素を分類して優先度をつける AWSコスト変動要因とAWSサービスの例 ● ネットワークトラフィック・ビジネスの利用状況により変動 ○ 優先度低:サービスが使われているというのは良いこと CloudFront、WAF、ECS、Elemental MediaLive ● エンジニアの人数・開発チームの稼働状況により変動 ○ 優先度中:開発組織の体制がスケールしてもそこまで増えないようにしたい 開発環境のリソース、CodeBuild ● 固定費+漸増するストレージ料金 ○ 優先度高:もっともコストが大きく、削減余地がある EC2(Savings Plans)、RDS(RI)、ElastiCache(RI)、DynamoDB(Reserved Capacity) ©NewsPicks Inc. All Rights Reserved.
03 コスト最適化の取り組み例 ©NewsPicks Inc. All Rights Reserved.
03 親の顔よりもAWS Cost Explorerを眺める日々 AWS Cost Explorerのサービス別グラフ(2022/1-2022/9) 最初はEC2が多かったので、とにかく EC2を優先して削り込む ©NewsPicks Inc. All Rights Reserved.
03 削減すると割合の大きなサービスが変わってくる AWS Cost Explorerのサービス別グラフ(2022/9-2023/5) サービス別Top2がElastiCache,RDSに入れ替わったので削り込む ©NewsPicks Inc. All Rights Reserved.
03 固定費を削減する方法はいろいろ EC2/ECSのスケーリング コンピューティングリソースを サービスの使用量に合わせてスケー リングして無駄を減らす 開発環境は平日日中のみ稼働する ようにして無駄を減らす。祝日の停 止を設定する RI/SP/Spotの活用 Savings Plansの推奨事項やカバレッ ジレポートを見てこまめに購入判断 する。Fargate Spotを利用する Cost ExplorerでDynamoDBの Reserved Capacityの利用状況を確 認してこまめに購入判断する ©NewsPicks Inc. All Rights Reserved. ストレージコスト削減 EBSのスナップショット世代数の見 直しと過去の不要な手動スナップ ショットの消し込み S3ライフサイクルルールの見直しと 適切なGlacier活用 Gravitonへの移行 マネージドなデータベースサービス (Aurora,RDS,ElastiCache)の インスタンスタイプをGravitonに 変更する(だけ)
03 Gravitonへの移行は中でもおすすめ EC2/ECSのスケーリング コンピューティングリソースを サービスの使用量に合わせてスケー リングして無駄を減らす 開発環境は平日日中のみ稼働する ようにして無駄を減らす。祝日の停 止を設定する RI/SP/Spotの活用 Savings Plansの推奨事項やカバレッ ジレポートを見てこまめに購入判断 する。Fargate Spotを利用する Cost ExplorerでDynamoDBの Reserved Capacityの利用状況を確 認してこまめに購入判断する ©NewsPicks Inc. All Rights Reserved. ストレージコスト削減 EBSのスナップショット世代数の見 直しと過去の不要な手動スナップ ショットの消し込み S3ライフサイクルルールの見直しと 適切なGlacier活用 Gravitonへの移行 マネージドなデータベースサービス (Aurora,RDS,ElastiCache)の インスタンスタイプをGravitonに 変更する(だけ) 2022年後半はGraviton移行祭り
03 Gravitonはパフォーマンスの悪化もなくコスト削減ができた🥰 AWSサービス タイプ コスト削減幅 (RI1年前払い) パフォーマンス影響 -10% 全体としてはパフォーマン スが改善💪 一部のテーブル・クエリは 遅くなったものもあり Before After Amazon Aurora(MySQL) db.r5.large db.r6g.large Amazon RDS(PostgreSQL) db.t3.medium db.t4g.medium -2.5% 影響なし(元々のスルー プットが多くない) Amazon ElastiCache for Redis cache.r5.large cache.r6g.large -5% 影響なし(キャッシュは 元々のレスポンスが爆速) ※ 上記RIを複数購入し実際は db.r6g.4xlargeを利用 同じインスタンスファミ リーはRI充当できるため →同じr5からr6gでもAuroraよりElastiCacheの方がコスト削減幅が小さく、t3からt4gなどバーストタイプで は更にコスト削減幅は小さい。バーストタイプやElastiCacheでは相対的にGravitonのメリットは小さくなる ©NewsPicks Inc. All Rights Reserved.
03 開発者の自由度とコスト最適化を両立させるツールも開発 テックブログでも紹介し、ぷちバズ ©NewsPicks Inc. All Rights Reserved.
04 まとめ ©NewsPicks Inc. All Rights Reserved.
04 最終的に、2022/1のAWSコストから30%以上の削減に成功💪 AWS QuickSightで可視化した月別サービス別AWS料金(2022/1〜2023/5) ©NewsPicks Inc. All Rights Reserved.
04 可視化・最適化・改善のサイクルが回ると、予測・計画もできる AWSコスト最適化ガイドブックより: Cloud Financial Management(CFM)フレームワーク 毎月、AWSコストの実績から見通しと予算を立て、 AWS Budgetに設定してコントロールできている ©NewsPicks Inc. All Rights Reserved.
03 まとめ ● AWSコスト最適化は可視化から始めるしかない ● 各サービスのコストが何によって変動するのかを理解して優先度をつけ、効果の大きい順に最適 化する。その理解のためにコスト異常検知とCost Explorerと担当者確認を100本ノックする。 ● コスト最適化の施策を実行しながらもモニタリングを続け、最適化余地が大きい箇所が移ったら 体重移動する ● Graviton移行と、dev環境のGoogleカレンダー制御はおすすめ ©NewsPicks Inc. All Rights Reserved.
ご清聴ありがとうございました! ©NewsPicks Inc. All Rights Reserved.