はじめに
皆さんこんにちは!ソリューションアーキテクトの塚本、山澤です。
私たちソリューションアーキテクトは、主にお客様との相談会を通じて、お客様が実現したいワークロードに関して、実現可能性をお客様と共に確認しながら、具体的な構成の相談をさせていただくなど、お客様のクラウド活用を支援しています。
さて、昨今、多くの企業や組織でクラウド化が進むにつれて、AWS をご利用頂いているお客様より「AWS のコストを最適化したい!」というご相談を頂くことが多くあります。
AWS は従量課金制のサービスであるからこそ、一括でサーバーを購入する場合と異なり一度構築した構成をもう一度見直すことで費用を下げられる可能性があります。
今回の記事では、システムのアーキテクチャや AWS リソースの購入方法を最適な状態にし、コストを最適化する方法をお伝えします。
builders.flash メールメンバー登録
builders.flash メールメンバー登録で、毎月の最新アップデート情報とともに、AWS を無料でお試しいただけるクレジットコードを受け取ることができます。
この記事について
この記事では以下のサービスについてのコスト最適化を取り上げています。
前編 (本記事で紹介)
Amazon Elastic Compute Cloud (Amazon EC2)
後編
Amazon Relational Database Service (Amazon RDS)
Amazon Elastic Block Store (Amazon EBS)
Amazon Simple Storage Service (Amazon S3)
その他コスト最適化のための割引が使えるサービス
AWS Fargate
AWS Lambda
Amazon SageMaker
Amazon OpenSearch Service
Amazon Redshift
Amazon ElastiCache
Amazon DynamoDB
Amazon CloudFront
コスト最適化を進めるにあたっては闇雲に進めるのではなく、まずご利用中のアカウントでどのようなコスト構造で AWS を利用しているかを確認し、その上でコスト最適化を行った際の効果が大きいサービスに対する対策を進めていくべきかと思います。そのため、本記事では以下のような流れでコスト最適化を進めていきます。
AWS のコスト構造を把握する
コスト最適化に向けたアクション
想定外のコストの増加を発見するための設定 (後半で解説)
1. AWS のコスト構造を把握する
家計の管理をする際にも、節約できるのはどこなのかを知るためにまずどこにどれくらいお金を使っていて、それぞれの出費が適切なのかを判断しますよね。同様に AWS のコストを最適化する前に、まずどのサービスにどれくらいの料金がかかっているかを把握し、どこに手を入れるべきかを決めていきます。
1-1. AWS Cost Explorer の確認
AWS のサービス別の利用額を確認できるのが AWS Cost Explorer です。AWS Cost Explorer では図のようにサービスごとに利用料金のグラフを確認することができるので、何に一番コストをかけているかがすぐに把握できます。
例えば上記の図の場合には、薄めの青色で示された「EC2 その他」の棒グラフや、緑色で示された「Relational Database Service」の棒グラフがほかより突出し、1 月時点で $100 を超えているていることが確認できます。「EC2 その他」には NatGateway や EBS ボリュームが含まれています。そのため、このアカウントの場合だとコスト最適化の効果が高そうな Amazon EBS や Amazon RDS に対する対策を行おうという方針を立てることができます。

レポートパラメータ
また、右側の「レポートパラメータ」ではサービス別、リージョン別、インスタンスタイプ等の項目で絞り込みやグルーピングを行うことができます。例えばこちらの図はリージョン別のグルーピングを行った例ですが、オレゴン、東京、バージニア北部など、複数のリージョンで料金が発生しています。このようなグルーピングによって予期せず利用予定のないリージョンを使っていないかを確認することができます。

タグによる表示
さらに、各 AWS リソースにタグをつけることで、同じタグのついたサービスの料金をまとめて表示することもできます。
例えば、複数の AWS サービスを利用して作った環境「prod」と、同じ構成で作った環境「dev」が存在していた場合、各 AWS リソースに「Env = prod」または「Env = dev」のタグをつけておくことでそれぞれの環境のコストを算出することができます。

レポート
コスト配分タグの使い方については以下もご参照ください。また、環境ごとの料金を明確に分ける場合はアカウントを分けることもご検討ください。
AWS Cost Explorer には、よくあるグルーピング・絞り込み方法をまとめた「レポート」が用意されています。「レポート」からは以下のような観点でのレポートが確認できます。
サービスごとの月額コスト (Monthly costs by service)
連結アカウントごとの月額コスト (Monthly costs by linked account)
Amazon EC2 の稼働時間と月額コスト (Monthly EC2 running hours costs and usage)
リザーブドインスタンス の使用率 (RI Utilization)
上記の他にも様々なレポートが用意されていますので、用途に沿ったレポートがあるかぜひご確認ください。
例えば連結アカウントごとの月額コスト (Monthly costs by account) を確認することで、複数のアカウントを Organizations の機能によって取りまとめ、それぞれのアカウントでの料金を確認することができます。AWS ではワークロードや用途ごとに AWS アカウントを分けて利用することがベストプラクティスとなっておりますが、そのメリットはそれぞれのワークロードごとにコストが明確に分かれるところにもあります。分割したコストは管理アカウントの AWS Cost Explorer でまとめて見ることができます。
AWS Cost Explorer の詳しい利用方法についてはこちらの Black Belt 資料もご確認ください。
参考:[AWS Black Belt Online Seminar] AWS Cost Explorer 資料及び QA 公開
AWS Cost Explorer の開き方
AWS コンソール画面で「Cost Explorer」を検索します。

ご注意
初回アクセス時にはデータが十分にないため、次のような画面になる場合がありますが、その場合は 24 間後に再度アクセスしてください。

Cost Explorer を選択
右側のサイドメニューより「Cost Explorer」を選択します。するとサービス別のコストを確認することができます。
このグラフでは対象期間の設定、グラフ表示形式の設定、対象となるサービスやリージョンの絞り込みを行うことができます。

レポートメニュー
また、「レポート」のメニューからは先程のサービス別のビュー以外にもアカウント別の使用料、 Amazon EC2 の実行時間とコストなどの分類されたビューを見ることができます。

1-2. AWS Trusted Advisor の確認
AWS Trusted Advisor を利用することで、様々な観点でのコスト最適化のアドバイスを受けることができます。AWS Trusted Advisor はご利用のアカウント内で利用されているサービスの状況をチェックし、AWS のベストプラクティスに沿うために改善できる点を教えてくれるサービスです。
コストの最適化についてのアドバイスとして、使用率の低いリソースやリザーブドインスタンスに関わる推奨を確認できます。例えば、使用率の低い EBS のボリュームがないかや Amazon EC2 インスタンスに対するリザーブドインスタンスの推奨を提案してくれます。コスト最適化以外にもセキュリティ観点やパフォーマンス観点でのアドバイスも受けることができます。
AWS Trusted Advisor でできることはご利用中の AWS アカウントのサポートプランによって異なります。今回紹介したコスト最適化のレコメンデーションはビジネスサポート以上の有償サポートプランで利用することができます。
AWS Trusted Advisor のコスト最適化で確認できるチェック項目や使用方法については以下もご確認ください。

2. コスト最適化のためのアクション
ここまで AWS Cost Explorer を用いてどのサービスにコストがかかっているかを把握できたかと思います。
それでは実際に費用を下げるためのアクションに移りたいと思います。
冒頭で説明したとおり、以下のサービスについてのコスト最適化のご説明をしていきますので、ご自身のアカウントで対象となる部分だけを参考にしていただければと思います。
Amazon EC2
Amazon RDS
Amazon EBS
Amazon S3
その他コスト最適化のための割引が使えるサービス
2-1. Amazon EC2 におけるコスト最適化
3. まとめ
前編では以下のAWS のコストを最適化する方法をご紹介しました。
コスト構造を把握する:AWS Cost Explorer 、AWS Trusted Advisor の確認
コスト最適化のアクション
Amazon EC2 :最適なインスタンスタイプの利用、最適なインスタンス数にする、最適な購入オプションの利用
後編では Amazon EC2 以外のサービスのコスト最適化方法や、想定外のコスト増加を発見する方法についてお伝えします。
後半で紹介するコスト最適化のアクション
Amazon RDS
EBS volume
Amazon S3
その他コスト最適化のための割引が使えるサービス
想定外のコスト増加を発見するための設定
後編もぜひ御覧いただき、ご利用のアカウントでのコスト最適化に役立ててください。
筆者プロフィール

塚本真理
AWS サービスを利用することでインフラ運用が楽になることを実感し、AWS の魅力を広めるたいと思い2022年に AWS に入社。ソリューションアーキテクトとしお客様の役に立てる情報を提供できるように勉強中。家計のコスト削減に奔走している。

山澤 良介
ソリューションアーキテクトとして、業種業態を問わず様々なお客様を支援させて頂いています。
前職では主にネットワーク案件を担当していたため、好きなサービスは、AWS Direct Connect と AWS Transit Gatewayです。
休日はスノーボードが大好きなので、シーズン中は毎週スキー場に行っております。シーズン中は、道具や移動費などでお金がかかるため、コスト削減に奔走しています。