こんにちは。技術本部のアーキテクチャ&テクノロジー部に所属している髙橋 洋樹です。私が所属する部署は全社の開発技術力の強化をミッションとしています。私はその中でもパブリッククラウドに関する全社共通基盤の企画・運用、アーキテクトの育成、ガイドラインの策定などを推進しています。これからAWSをより深く活用するためのノウハウを定期的に発信していきたいと思いますので、よろしくお願いします。
さて、本テーマでは複数回に渡ってAWSのコストを最適化していくための方法について、直近のアップデートを交えつつ紹介していきたいと思います。本トピックに着目した理由には昨今の円安が背景にあります。AWSをはじめとする海外クラウドベンダーの多くはドルベースで料金が設定されているため、クラウドのコストは増加傾向にあります。実際にクラウドのコスト削減圧力が強まっているという話をよく耳にします。
このような情勢に対し、AWSでは顧客のコスト最適化を支援しており、役立つ便利なサービスや機能をたくさんリリースしています。ちょうど昨年開催されたre:InventのKeynoteでも「The Frugal Architect(倹約的なアーキテクト)」をテーマに新しいサービスが複数発表されました。一方でそのようなサービス/機能を把握して、効率的・体系的にコストの最適化を進めることができる利用者というのはまだ多くない印象です。
コストの最適化にあたっては、Ⅰ. 可視化、Ⅱ. 最適化、Ⅲ. 計画・予測というプロセスを定常的に実施することが必要だと考えています。今回は「Ⅰ. 可視化」についてどのような方法があるのか、直近のアップデートやベストプラクティスを踏まえながら紹介します。私が実際に使ってみての所感も併せて紹介できればと思います。
コストを最適化していく上では、いつ何に対して実際にいくらかかっているのかを把握しないことには始まりません。可視化をするには主に2つの方法があります。
AWSではAWS Cost Explorer(以下、CE)を使用することで、いつ何のサービスに幾らかかっているのかを詳細に分析することができます。
引用:AWS Cost Explorer Features
ただ、CEはデフォルトの状態ではプロジェクトや特定のリソースといった単位でコストを分析できません。つまり、あるサービスで課金が膨らんでいることは分かっても、それがどのプロジェクトやリソースに起因するものなのかを特定するのは困難なのです。このことからコスト配分タグを利用することがベストプラクティスとなっています。コスト配分タグを利用することでAWSリソースに付与されたタグ別にコストを集計することができます。
引用:Using AWS Cost allocation tags
つまり、例えば特定のプロジェクトで利用しているAWSリソースに共通で固有のタグを付与しておくことで、そのプロジェクトに限定してコストを集計することが可能です。もしコスト配分タグをまだ利用されていない場合はお勧めの機能です。ご利用時の注意点としては、タグは全てのAWSリソースに対応しているわけではありませんので、コストを厳密に分離して分析されたい場合には、AWSアカウントの分割も併せて検討されることを推奨します。
CEはコスト分析を手軽に実施できる一方で、複雑な要件に対応できない場合があります。例えば以下のような場合です。
そのような場合は別途「コストと使用状況レポート(以下、CUR)」を出力して分析します。CURはAWSの課金履歴が記された最も詳細なレポートで、時間/日/月毎にparquetまたはgzip形式でS3バケットに出力できます。このCURをAmazon AthenaやAmazon Redshift、Amazon QuickSightなどに読み込ませることで詳細な分析が可能です。
CURをグラフィカルに分析したい場合、AWSだとAmazon QuickSightの利用が候補にあがります。0からダッシュボードを作ろうとするとAmazon QuickSightの知見が少なからず必要となるのですが、これも2023/12のアップデートによって、事前定義済みのAmazon QuickSightダッシュボードを請求とコスト管理のページから簡単にデプロイできるようになりました。
引用:New - Cost and Usage Dashboard powered by Amazon QuickSight
私も実際に使用してみましたが、必要な内容が直感的にわかるダッシュボードと感じています。ダッシュボードは自分好みにカスタマイズすることが可能なため、現在運用しているCURのダッシュボードがなければまずはこちらのご利用をお勧めします。
なお、上記のダッシュボードはリソースレベルでの情報表示には対応していないので、もしリソースレベルの分析も必要な場合はAWSから提供されているCost Intelligence Dashboardの活用も検討してみてください。
引用:簡単に構築できるAWSコスト可視化ダッシュボードのユースケース - Cost and Usage Dashboard(CUD)とCUDOS -
Cost Intelligence Dashboardは、自身でAWS CloudFormationテンプレート等をデプロイする必要があることに加えて、Amazon AthenaやAWS Glueクローラーが裏側で必要となるなどの点で、前述の方法よりは手軽さに欠けますが、より詳細な分析が可能という点でご興味があれば、是非、本ソリューションを紹介しているAWSのブログをご覧ください。
今回はAWSのコスト最適化のうち、初手となる「可視化」の方法について紹介しました。何かのご参考になれば幸いです。次回は可視化の結果、どのように対策を検討・実行していくべきなのかについてご紹介できればと思います。コスト最適化の継続的な活動は、知見・経験やSEリソースの観点から、多くの企業で実行できていないと感じています。当社ではAWSのコスト可視化・削減サービスや運用サービスを提供しており、お客様のご利用環境やニーズに合わせてコスト最適化をご提案することが可能です。こちらも是非お気軽にご相談ください。ではまた、近いうちにお会いしましょう!