AWSにおけるコスト最適化の取り組み

はじめまして、全社SREの高橋です。

全社SREでは、組織全体のサービスのリライアビリティとアジリティを向上させるために、横断的な視点で日々活動しています。その取り組みにおいて、「コスト最適化」も重要なテーマの一つです。

今回は、その具体的な施策の一つとして、AWSにおけるコスト最適化を支援する「コスト最適化チェックリスト」についてご紹介します。

はじめに

まず、私たちが重視しているのは「コスト最適化」であり、単なる「コスト削減」ではありません。コストは少なければ良いというものではなく、適切な箇所に適切な金額をかけている状態があるべき姿です。「コスト最適化」を通して、無駄なコストの排除だけではなく、必要なリソースに対して適正な料金が発生している状態にし、より効率的な運用を目指したいと考えています。

弊社においてAWSを含むシステムに関わるコスト管理は、多くの場合は各事業部が担当しています。しかし、「どのような観点から最適化を進めればよいかわからない」という声も上がっています。さらに、開発など他の業務に追われ、コスト最適化に十分な時間を割くことが難しいのが現状です。

また、全社SREはAWSの運用やコスト管理に関する知見を一定持っていますが、すべての事業部やサービスを個別に確認するには膨大な時間がかかります。加えて、各事業部の業務内容や計画を詳細に把握しているわけではないため、何が適切か判断するのが難しく、積極的に介入しづらいという課題もあります。

そこで、全社SREでは「コスト最適化チェックリスト」を作成し、各事業部がそれに沿って確認を行うことで、一定のコスト最適化に向けた取り組みができる仕組みを構築しました。

コスト最適化チェックリストとは

「コスト最適化チェックリスト」は、AWS利用料の削減において最低限実施すべき項目をまとめたものです。 このチェックリストを通じて、各事業部が最低限のコスト最適化を実施できるようになっています。

コスト最適化チェックリストの概要

チェックリストは、以下のような項目で構成されています。

  • コスト管理
    • コストアラートの設定
    • コスト最適化ロードマップの実行
  • アイドルリソースの削除
    • 未使用のEC2インスタンス、EBSボリューム、RDSインスタンス、Elastic IPの削除
  • スケジューリング
    • 定常稼働が不要なリソースの停止・起動のスケジューリング
  • 料金プランの最適化
    • リザーブドインスタンスやSavings Plansの活用
    • 中断が許容できる処理ではよりコンピュート費用の安いSpot Instanceの活用
    • スケールアップ/ダウンを自動ですることでコストメリットが出る場合は、Serverlessを利用
  • データ転送
    • リソースの配置を工夫したり、キャッシュを活用するなどしてデータ転送コストの削減
  • ストレージ
    • ストレージクラスやライフサイクル管理
    • 保管期間の最適
  • スペックの見直し
    • 過剰なインスタンスサイズの是正
    • 安価でパフォーマンスの良いインスタンスタイプの利用

項目選定において心がけたこと

AWSにおけるコスト最適化の具体的な手法は非常に多岐にわたり、すべてをチェックリストとして列挙すると膨大な量になってしまいます。十分に時間を割けない中で「どのような観点から最適化を進めればよいかわからない」という場合、膨大な量のチェックリストだと結局対応が難しいままとなってしまいます。

そこでいくつかの観点で選定を行い、チェックリストとして現実的な内容や項目数になるようにしました。

網羅性

AWSのコストは、特定の要素だけを最適化しても十分な削減効果が得られません。そのため、主要なコスト要因(コンピュート、ストレージ、データ転送、ログ管理、料金プラン)を幅広くカバーし、全体的なコスト最適化を実現できるようにしました。

可視化

網羅的な項目を俯瞰できるようにしたことで、各事業部が行うべきことや気にすべき観点を大まかに把握できるようにしています。

Quick Winと中長期的施策のバランス

短期間で効果を得られる施策(Quick Win)と、継続的な取り組みが必要な中長期的施策をバランスよく含めるようにしています。

即効性のある施策だけでは根本的な改善につながらず、一方で中長期的施策に偏ると効果が出るまでに時間がかかるため、両者を組み合わせることで短期的にも中長期的にもコストメリットを得られるようにしています。

運用負荷と効果のバランス

低負荷な施策と運用の工夫が必要な施策をバランスよく取り入れています。 未使用リソースの削除やスケジューリングなどは手間が少なく、短期間で効果を得られる一方、Savings PlansやGravitonへの移行などは計画的な対応や運用の工夫が求められます。両者を組み合わせることで効率的なコスト最適化を実現します。

AWSのベストプラクティスとの整合性

AWS Well-Architected Framework(特にコスト最適化の柱)を参考にしました。また、一部項目はAWS Trusted Advisorの推奨事項からも引用しています。

項目の粒度

具体的に書きすぎると視野が狭くなる恐れがあるため、ある程度幅を持った記載にしています。ただし、非エンジニアでもWeb検索などで情報を簡単に得られるように、関連するキーワードを盛り込むようにしています。

弊社の実態

弊社で利用頻度の高いサービスやコストを圧迫しやすいサービスに特に着目し、優先的に項目に含めるようにしました。

今後の取り組み

このチェックリストの回答内容は、全社SREがレビューし、必要に応じて追加のフォローを行っていく予定です。各事業部が適切なコスト最適化を実施できるよう、状況に応じたアドバイスやサポートを提供しながら、実効性の高い運用を目指します。

また、チェックリスト自体も定期的にアップデートしていく想定です。AWSのコスト最適化は、一度対応すれば完了するものではなく、ビジネスの成長やシステムの変化に応じて、継続的な見直しと改善が求められます。そのため、最新のベストプラクティスやコスト管理のトレンドを踏まえながら、常に最適な形に維持していきます。

最後に

弊社のように複数の事業を展開し、さらにマルチアカウントを運用している企業においては、同様の課題を抱えているケースが少なくないのではないかと考えています。特に、期初が4月の企業にとっては、まさに今、予算策定やコスト管理の見直しといった取り組みが本格化する時期ではないでしょうか。

本取り組みが、そうした環境でのコスト最適化に向けた一助となれば幸いです。