62.7K Views
February 01, 24
スライド概要
第1回 AWSコスト削減 天下一武道会の発表資料です
https://no1.connpass.com/event/305664/
経済ニュースアプリのSREの仕事をしています。
AWSコストを全体で43.75%削減するための コストモニタリング技術 株式会社ユーザベース 安藤 裕紀 第1回 AWSコスト削減 天下一武道会 - 2024.2.1(Thu)
コスト削減は覚悟と計測です
00 自己紹介 安藤裕紀 / あんどぅ 株式会社ユーザベース NewsPicks事業 SRE Unit Leader SREチームのマネージャー 兼 テックリード 特技:AWSコスト削減、障害対応を愚直に100本ノックすること 座右の銘: 「水滴石を穿つ」「神は細部に宿る」 「質は量から生まれる。逆はない」 ©Uzabase, Inc. All Rights Reserved.
00 ソーシャル経済メディア NewsPicksについて ©Uzabase, Inc. All Rights Reserved.
00 AWSコスト削減率について AWSコスト全体を継続的に見直す取り組みにより、2年3ヶ月で43.75%削減しました。 ©Uzabase, Inc. All Rights Reserved.
00 余談:登壇が決まってからも頑張りました(37.5%→43.75%削減) 「発表者の中で一番削減率低いじゃん」って思われたくないから・・・でも一番低かったorz ©Uzabase, Inc. All Rights Reserved.
00 目次 1. コスト削減の心構えと始め方 2. 一歩進んだコストモニタリング技術 3. まとめ ©Uzabase, Inc. All Rights Reserved.
01 コスト削減の心構えと始め方 ©Uzabase, Inc. All Rights Reserved.
コスト削減の心構え 01 ● AWSコスト管理の責任者としてのスコープを定める ● コストを計測して、現状を正しく把握し、いつでもコストの説明ができるようになる ● コストの変動要因やボトルネックを調査し、課題を組織に共有し、協力を得る ● 成果が出るまでやり続ける ©Uzabase, Inc. All Rights Reserved.
コスト削減の心構え 01 ● AWSコスト管理の責任者としてのスコープを定める 👉「◯◯システムのコストに責任を持つ」→コスト管理タグをつけて可視化する ● コストを計測して、現状を正しく把握し、いつでもコストの説明ができるようになる 👉毎日Cost Explorerを見て、なぜこの金額がかかるのかを説明できるようになる ● コストの変動要因やボトルネックを調査し、課題を組織に共有し、協力を得る 👉原因不明のコスト上昇や、ユーザーへの価値提供に不要なリソースをなくす ● 成果が出るまでやり続ける 👉小さいコスト削減の積み重ねも愚直に100本ノック ©Uzabase, Inc. All Rights Reserved.
01 コストを最適化するには、まず可視化が必要 AWSコスト最適化ガイドブックより: Cloud Financial Management(CFM)フレームワーク ©Uzabase, Inc. All Rights Reserved.
01 親の顔よりもAWS Cost Explorerを眺める AWS Cost Explorerのサービス別グラフ(2022/1-2022/9) 最初はEC2が多かったので、とにかく EC2を優先して削り込む ©Uzabase, Inc. All Rights Reserved.
01 AWSのマネコンだけ見てもコスト最適化のヒントはたくさん Savings Plans Compute Optimizer Cost Exproler カバレッジレポート /使用状況レ ポートで、利用するコンピューティン グリソースに対する SP購入の推奨 事項を出してくれる オンデマンド課金を最小限にする チューニングに使える EC2インスタンスに割り当てている リソースが、使用状況に対して過剰 なプロビジョニングがあれば検出し てくれる 過剰な場合はスケールダウンを検 討することができる DynamoDBのOn Demand / Reserved のキャパシティユニット 使用量の比率を確認できる オンデマンド課金を最小限にする チューニングに使える ©Uzabase, Inc. All Rights Reserved.
01 毎週・毎月のコストモニタリング定例でコスト構造を把握する テックブログでも紹介したスプシ芸 ©Uzabase, Inc. All Rights Reserved.
01 コストの変動や疑問があればすぐに担当チーム確認100本ノック コストがどのような原因によって変動するのか、理解を深めていく ©Uzabase, Inc. All Rights Reserved.
01 AWSサービスごとにコスト変動要素を分類して優先度をつける AWSコスト変動要因とAWSサービスの例 ● ネットワークトラフィック・ビジネスの利用状況により変動 ○ ● エンジニアの人数・開発チームの稼働状況により変動 ○ ● CloudFront、WAF、ECS、Elemental MediaLive 開発環境のリソース、CodeBuild 固定費+漸増するストレージ料金 ○ EC2(Savings Plans)、RDS(RI)、ElastiCache(RI)、DynamoDB(Reserved Capacity) ©Uzabase, Inc. All Rights Reserved.
01 AWSサービスごとにコスト変動要素を分類して優先度をつける AWSコスト変動要因とAWSサービスの例 ● ネットワークトラフィック・ビジネスの利用状況により変動 👉 優先度低:サービスが使われているというのは良いこと CloudFront、WAF、ECS、Elemental MediaLive ● エンジニアの人数・開発チームの稼働状況により変動 👉 優先度中:開発組織の体制がスケールしてもそこまで増えないようにしたい 開発環境のリソース、CodeBuild ● 固定費+漸増するストレージ料金 EC2(Savings Plans)、RDS(RI)、ElastiCache(RI)、DynamoDB(Reserved Capacity) 👉 優先度高:もっともコストが大きく、削減余地がある ©Uzabase, Inc. All Rights Reserved.
01 小さいコスト削減の積み重ねも愚直に100本ノックする EC2/ECSのスケーリング コンピューティングリソースを サービスの使用量に合わせて スケーリングして無駄を減らす Fargateが高い場合on EC2を検討する 開発環境は平日日中のみ稼働する RI/SP/Spotの活用 Savings Plansの推奨事項やカバレッ ジレポートを見てこまめに購入判断 する。Fargate Spotを利用する Cost ExplorerでDynamoDBの Reserved Capacityの利用状況を確 認してこまめに購入判断する ©Uzabase, Inc. All Rights Reserved. ストレージコスト削減 EBSのスナップショット世代数の見 直しと過去の不要な手動スナップ ショットの消し込み S3ライフサイクルルールの見直しと 適切なGlacier活用 Gravitonへの移行 マネージドなデータベースサービス (Aurora,RDS,ElastiCache)の インスタンスタイプをGravitonに 変更する
ここまでは王道で当たり前の話
02 一歩進んだコストモニタリング技術 ©Uzabase, Inc. All Rights Reserved.
02 ● Cost Explorerでは詳細な内訳が確認できないコストを可視化する Cost Explorerでは、コスト管理タグをつけなければリソース別の分析は難しかった ※2023/11のアップデートにより、直近14日間限定であればリソース別の分析が可能になった ● ? Configの記録料金やNAT Gatewayのデータ転送料金の内訳はコスト明細からは分析できない コスト管理者 ©Uzabase, Inc. All Rights Reserved. AWS Cost Explorer 14日より前の リソース別料金 AWS Config の記録料金 NAT gatewayの データ転送料金 その他色々
02 ライトなコスト分析基盤を整備していく(必要になった都度) たとえば以下のような時にS3に出力設定してQuickSight→Athenaで見れるようにしていく ● 長期のリソース別のコスト傾向やコスト削減効果の測定、削減インパクトを試算したい ● ConfigやCloudTrailなどガバナンス系サービスのコスト最適化を考えたい ● サービス別にネットワークトラフィック料金の割合を可視化したい AWS Cost & Usage Report コスト管理者 S3 Bucket Amazon QuickSight Amazon Athena AWS Config ※バケットは別でも可 VPC Flow logs ©Uzabase, Inc. All Rights Reserved.
02 QuickSightはBIツールなのでCost Explorerよりも可視化に便利 「計算フィールド」機能を使ってVPC Flow LogsのIPアドレスをセグメント別にまとめたり、 CURのAWSリソース名に前方一致フィルターをかけることができるのでコストの計測が捗る ©Uzabase, Inc. All Rights Reserved. 詳しくはテックブログに記載しています https://tech.uzabase.com/entry/2023/12/01/222609
03 まとめ ©Uzabase, Inc. All Rights Reserved.
03 ● ● コスト削減は覚悟と計測 覚悟を持つ ○ AWSコスト管理の責任者としてのスコープを定める ○ コストを計測して、現状を正しく把握し、いつでもコストの説明ができるようになる ○ コストの変動要因やボトルネックを調査し、課題を組織に共有し、協力を得る ○ 成果が出るまでやり続ける 計測にこだわる ○ Cost Explorerを毎日見るのは当たり前。それ以上の解像度でコストを計測する ○ BIツールに取り込んで可視化するなどコスト分析基盤を整備する ©Uzabase, Inc. All Rights Reserved.
ご清聴ありがとうございました! ©Uzabase, Inc. All Rights Reserved.