目次
Part1のブログではクラウドを活用する上でコスト管理の重要性やFinOpsの考え方についてご紹介しました。Part2ではFinOpsについてさらに深掘りしてお伝えします。
FinOpsの理解で参考になるイメージ図が、エンジニアであるForrest Brazeal氏が考案した「The Lift + Shift Shot Clock」(リフト&シフト移行による制限時間)です。
この図では、クラウド移行後にコスト効率よくシステムを利用できるようになっても、その後、何も変化しなければ技術的な負債が蓄積して、いずれかのタイミングで刷新効果を食い尽くしてしまうことが示されています。個々の状況によって変わりますが、既存システムの移行後にクラウドに対応した改善が必要になることを示唆していると言えるでしょう。
また、FinOpsでは「Informed Ignoring」と呼ばれる考え方がたびたび登場します。移行の最初のタイミングでクラウドにより適応させようと一生懸命に取り組むと、移行が完了するまでの期間が長くなってしまうため、それを一旦無視して進めることが重要であるという考え方です。もちろん適用させる取り組み自体は重要ですが、より現実的な判断が大切であることを説いています。
効果的なAWSコスト管理に必要な「3つの主要ポイント」とは?
続いて、コスト管理の重要性を理解してもらった上で、効果的なAWSコスト管理にまず必要となる主要な3つのポイントを解説しました。そのポイントとは「様々なロール(視点)を持った体制・チーミング」「レポーティング・ツール」「コスト負担を定義するルール・用語整理」です。それぞれ順に解説していきましょう。
様々なロール(視点)を持った体制・チーミング
FinOpsという考え方をうまく取り込もうとすると、コスト管理の中に様々な役割(視点)が求められます。FinOps Foundationは「FinOps Framework」によって6つの役割を定義しています。
たとえば、マネージャーやマネジメント職に相当する「Leadership」では、クラウド利用の説明責任や投資する意義などを明確にする透明性を実現する役割が必要となります。また、実際にプロジェクト、あるいはシステムを担当するメンバーが当てはまる「Engineering」の場合は、リソースの効率的な設計と使用が必要です。「Product」の場合は、製品・サービスの収益性の把握や、新機能のリリースに関連したコスト予測が求められます。
さらに「Finance」では、より正確な予算実績(予実)管理や利用者に対する正確なコスト配分を実施します。「Procurement」の場合、クラウドプロバイダーとの契約交渉や戦略的なリレーションシップの構築を担います。様々な役割がある中、それを横断したサポートをするのが「FinOps Practitioner」です。コストレポートや共用ツールを提供するなどの役割が必要です。
ここであらためて「AWSコストの原則」について紹介します。この記事を読んでいる方の中には「クラウドの利用コストは分かりづらく、算出が難しい」と感じている方もいらっしゃるかもしれません。クラウドのコストはシンプルに表現すると「コスト=利用量×単価」という式で表すことが可能です。
コスト削減には利用量や単価の見直しが求められます。単価を下げる具体的な施策として、最新世代インスタンスへの移行、アーキテクチャの改良、「Savings Plans」「Reserved Instance」の活用が挙げられます。また、個々のリソースの細かい利用量については、エンジニアやプロジェクトリーダーが主体的に調整を行います。一方で、主管部門がクラウド全体の単価を引き下げる取り組みも必要です。そうした各種施策は、先ほど説明したFinOps Frameworkの各ロールで対応可能なものが決まってきます。
コスト管理をするためには様々なロールの人々が協業しなければなりません。そのため、AWSエンジニア以外の関係者間で円滑にコミュニケーションできる環境が必要となります。具体的には、レポーティング・ツールの理解と準備、共通理解を促進するためのある程度の用語の統一、コスト負担の識別を可能にするルールなどの活用です。
レポーティング・ツール
コスト管理のスコープをAWSに限定した場合、サードパーティーツールや自作ツールを検討する前に、公式のサービス・ツールを一度試してみることをお勧めします。ただ、その場合はツール利用者側にも一定のAWSに対する理解が欠かせません。また、「AWS Solution Provider Program」パートナー経由でAWSアカウントを利用している場合、サービス仕様により利用制限されている可能性があるので、事前に確認することが望ましいです。
AWS利用におけるコスト管理では「Cost Explorer」と「Cost and Usage Reports(CUR)」などのレポートツールを活用すると良いでしょう。
Cost Explorerはリソース利用量と料金を最大38カ月分の範囲で視覚化し、複数アカウントにも対応しています。また、CURではAWSリソースの利用状況を時間や月単位で確認し、社内の課金配分ルールを作成するための基礎データが得られます。
ただし、利用規模に依存しますが、CURは大規模なログデータとなり、ダウンロードして分析するのは困難なサイズであるため分析には工夫が必要です。
また、「AWS Well-Architected Framework」を参考にすることもお勧めです。AWS Well-Architected Frameworkでは、クラウド上でワークロードを設計および実行するための主要な概念、設計原則、アーキテクチャのベストプラクティスがまとめられています。より詳細なツール活用を学びたい方は、ぜひ参照してみてください。
コスト負担を定義するルール・用語整理
クラウド利用の規模が大きくなればなるほど、複数のアカウントにまたがって運用するケースが増えていきます。その場合、個々のAWSアカウントで発生したコストをルールに基づいてコスト負担先に割り当てることになります。
ただ、利用期間が長くなるごとに、その分配ルール自体が複雑化する傾向があります。後々の対応が難しくなるため、最初のタイミングで基本となるルールを定義しておくことが望ましいです。「Resource Tag」「Cost Allocation Tag」を活用すると、AWSリソースにラベルデータを付与したり、ユーザーが定義したタグ(Tag)を指定したりするなど、AWSアカウントの利用料のグルーピングが容易になります。
複数のクラウドを利用している場合、クラウドプロバイダー間で用語が違うことがあります。また、スキルセットが異なる部署間では、関係者間で誤解を招くこともあります。そこで、共通用語を整備しておくと円滑なコミュニケーションにつながります。一般化するなら、FinOps Framework で整理されている用語・FOCUSフォーマットなどを参考にしても良いでしょう。
<Part3へ続く>
- カテゴリー