AWS でのコスト最適化の進め方
第 5 回 ~ 継続的な FinOps の実践
Author : 柳 嘉起
皆さんこんにちは ! ソリューションアーキテクトの柳です。
「AWS でのコスト最適化の進め方」シリーズも今回が最終回となります。過去 4 回の記事は以下のドロップダウンからご覧いただけます。まだ読まれていない方は、ぜひ遡ってみてください。
そして今回は、AWS Cloud Financial Management (CFM) フレームワーク における FinOps についてお話しします。
「AWS でのコスト最適化の進め方」の連載記事はこちら
- 選択
- 第 1 回 ~ 7 つのポイントとコスト最適化に活用できる新ツールとは ?
- 第 2 回 ~ コスト可視化のポイントと役立つ AWS サービスのご紹介 !
- 第 3 回 ~ 短期的なコスト削減施策と中長期的なコスト最適化施策
- 第 4 回 ~ ビジネスの成長に向かうためのクラウド費用予測と予算管理
- 第 5 回 ~ 継続的な FinOps の実践
振り返り
CFM には、可視化、最適化、計画・予測、FinOps の実践の 4 つの柱があります。
FinOps とは 財務面からもクラウドリソースの効率的な利用を進め、ビジネス価値を最大化するための戦略的アプローチです。それを実現するためには Financial (財務) と DevOps (開発および運用) が密に連携し、「可視化」「最適化」「計画・予測」の仕組みを整備することが肝要です。個々の実現方法については、本シリーズのバックナンバーをご参照ください。
そして FinOps の実践フェーズでは、作り上げたこれらの仕組みを、継続的に行えるプロセスと持続的に行なっていくカルチャーを整えていきます。これは容易な取り組みではなく、プロダクトをつくる技術部門と、財務部門との連携が必要となります。
コスト削減は財務部門主導の単発の取り組みとして扱われがちで、当初はそうではなかったとしても、結果として財務部門の要請に基づいて場当たり的に無駄なリソースを探すといったことが多いのが実情です。FinOps の実践では、クラウドリソースが効率的に使われている状態であり続けるために、技術・ビジネスの垣根を取り払って、組織全体にプロセス、カルチャーを根付かせることが重要です。
ではどう進めていけば良いでしょうか。組織によって形態は千差万別ですし、置かれている状況も異なるため、一概にこうすればよいというのは難しいですが、AWS Well-Architected Framework のコスト最適化の柱が手がかりになります。
AWS Well-Architected Framework
AWS は、クラウドのベストプラクティスを活用したシステムの構築において、⽇々お客様を支援しています。私たちは、設計が進化するにつれて発生するアーキテクチャとのトレードオフをお客様とともに考えてきました。お客様が新しいシステムを稼働させるたびに、AWSはお客様からそのシステムの実際のパフォーマンスやトレードオフがどうなったかを教えていただいています。その蓄積したノウハウに基づいて確立したものが、AWS Well-Architected Framework です。
この Framework は、お客様とパートナーがアーキテクチャを評価するための一貫したベストプラクティスや、アーキテクチャが AWS のベストプラクティスにどれだけ準拠しているのかを評価するためのガイダンスを提供しています。AWS Well-Architected Framework は以下の表に示す 6 つの柱から成ります。
AWS Well-Architected Framework の柱
この中で、コスト最適化の柱 では、サービスやリソースを最も効果的に活用したワークロードの設計方法、最小限のコストでビジネス成果を達成する方法に焦点を当てており、組織が持続的に最適化を行うことを支援します。
コスト最適化の柱から、 FinOps の実践に重要なプロセス、カルチャーに関する部分をピックアップし、ご紹介していきます。
- 組織のプロセスにコスト意識を採り入れる (COST01-BP04)
- コスト意識を持つことは、最適化を実施していく上での前提条件の一つといえます。 すべての関係者がクラウドのコストを理解できるように、システムに行った変更を正しく把握し、それによるコストインパクトを測定 (数値化) します。そしてそれがどのようなビジネス価値を生んだかを投資収益率 (ROI) で判断できるようにします。この仕組みを定着させることによって、コストを意識した自立的な企業文化が確立されていきます。
- コスト意識を持つことは、最適化を実施していく上での前提条件の一つといえます。 すべての関係者がクラウドのコストを理解できるように、システムに行った変更を正しく把握し、それによるコストインパクトを測定 (数値化) します。そしてそれがどのようなビジネス価値を生んだかを投資収益率 (ROI) で判断できるようにします。この仕組みを定着させることによって、コストを意識した自立的な企業文化が確立されていきます。
- コスト意識を持つ文化を生み出す (COST01-BP08 )
- 個々人がコスト意識を持つことで、トップダウンで集中的に行う (厳格な) アプローチよりも、小さい労力で組織全体に高いレベルの効果を生み出すことができます。アプローチ方法としては、クラウドコストを DevOps チームに報告したり、予定しているシステムへの変更とワークロードに対する費用対効果を週次ミーティングで話し合うなど、一見当たり前のことを定常業務に組み込んでいくことが大切です。
- 個々人がコスト意識を持つことで、トップダウンで集中的に行う (厳格な) アプローチよりも、小さい労力で組織全体に高いレベルの効果を生み出すことができます。アプローチ方法としては、クラウドコストを DevOps チームに報告したり、予定しているシステムへの変更とワークロードに対する費用対効果を週次ミーティングで話し合うなど、一見当たり前のことを定常業務に組み込んでいくことが大切です。
- プロジェクトのライフサイクルを追跡する (COST02-BP06) / ライフタイム全体にわたってリソースを追跡する (COST04-BP01 )
- プロジェクトのライフサイクルを追跡し、不要になったワークロードを確実に停止 (削除) します。例えば開発環境や PoC のリソースなどがそれにあたります。これらは定期的に作られ、不要になっていくので、継続的な運用の中で確実にカットしていくことが望まれます。方法としては、タグ付けが効果的です。機能名、目的、もしくは TTL などでタグ付けを行い、週次ミーティングなどで確実に棚卸していきます。
- ワークロードレビュープロセスを開発する (COST10-BP01) / ワークロードを定期的に見直し、分析する(COST10-BP02)
- ワークロードの費用対効果を最大にするには、ワークロードを定期的にレビューし、新しいサービス、機能、コンポーネントを実装する価値があるかどうかを把握する必要があります。全体的なコスト削減を達成するには、(潜在的な) コスト削減量に比例した時間をかける必要があります。例えば、支出全体の 50% を占めるワークロードは、支出全体の 5% を占めるワークロードよりも削減幅が大きい可能性が高いので、定期的かつ徹底的にレビューする必要があります。レビューの頻度、時間の決定には、そのワークロードの収益性、重要性、またレビューに係る労力や外部要因などの兼ね合いで決定します。
- ワークロードの費用対効果を最大にするには、ワークロードを定期的にレビューし、新しいサービス、機能、コンポーネントを実装する価値があるかどうかを把握する必要があります。全体的なコスト削減を達成するには、(潜在的な) コスト削減量に比例した時間をかける必要があります。例えば、支出全体の 50% を占めるワークロードは、支出全体の 5% を占めるワークロードよりも削減幅が大きい可能性が高いので、定期的かつ徹底的にレビューする必要があります。レビューの頻度、時間の決定には、そのワークロードの収益性、重要性、またレビューに係る労力や外部要因などの兼ね合いで決定します。
- 新しいサービスリリースに関する最新情報を把握しておく (COST01-BP07)
- 新しい AWS のサービスや機能を実装することでワークロードのコスト効率を改善できることはよくあります。AWS ブログやニュース、またイベントなどを定期的にチェックし、コスト削減に寄与する情報をキャッチアップする仕組みを整えてください。
- 新しい AWS のサービスや機能を実装することでワークロードのコスト効率を改善できることはよくあります。AWS ブログやニュース、またイベントなどを定期的にチェックし、コスト削減に寄与する情報をキャッチアップする仕組みを整えてください。
また、持続的最適化のプロセスをアーキテクチャ観点で具体化した例として、「コスト管理の自動化」をご紹介します。こちらについても AWS Well-Architected Framework を参照していきます。
- 需要を管理するためのバッファまたはスロットルを実装する (COST09-BP02)
- バッファリング、スロットリングはワークロードの負荷をならすことにより、ピーク時間帯に集中しないようにする手法です。スロットリングでは、その時点でリクエストを処理できない場合は、リトライ要求をリクエスト側に送信し、リクエスト側は一定時間待ってから、リトライします。スロットリングの運用には、リソースの最大量およびワークロードのコストを制限できるという利点があります。AWS では、Amazon API Gateway を使用してスロットリングを実装できます。バッファリングでは、キューなどのシステムを使うことによって、処理を非同期化させます。これにより入ってくるリクエストの交通整理を行い、動作速度が異なるアプリケーションがそれぞれ最適なペースで処理できるようになります。AWS でこのアプローチを行う時は、Amazon SQS や Amazon Kinesis が使えます。選択基準ですが、クライアントにリクエストの再送機能がある場合は、スロットリングの適用が現実的です。逆に、クライアントに再試行の機能がなければ、バッファソリューションの実装が理想的なアプローチです。バッファリング、スロットリングにより、プロビジョンしないといけないリソースのベースを削減することができます。
- リソースを動的に供給する (COST09-BP03)
- AWS Instance Scheduler などを使って、インスタンスが必要な時間帯に自動的に Amazon EC2 や Amazon RDS などのサービスを開始し、夜間や休日など必要のない時間帯は自動的にサービスを停止することで、費用を削減します。リザーブドインスタンスや Savings Plans などを適用しづらい、開発環境などに特に効果的です。AWS Auto Scaling を使って需要に応じて Amazon EC2 を増減させるのもクラウドネイティブなコスト管理手法です。
- 運用のオートメーションを実行する (COST11-BP01)
- 運用を自動化することで、手動操作の頻度が減り作業効率を上げることができます。そして、オペレーションのミスが減り、システムの安定稼働に寄与します。一たび運用で間違いが発生すると、システム停止に繋がったり復旧が遅れたりして、大きな損失につながる可能性があります。
そしてこれらを組織全体に根付かせていく役割を担うのが、一般的に Cloud Center of Excellence (CCoE) や FinOps チーム、 SRE チームです。
CCoE とは、クラウドがビジネスにもたらす経済的価値を追求し、会社や組織全体としてこれを享受するための施策を立案/推進するチームのことで、コスト削減や、そのノウハウの展開、仕組みづくりをミッションに持っていることも多いです。
CCoE については、下記 AWS ブログで詳しく説明されているので、未読の方はぜひご参照ください。
これらのチームは、CFM を実行するだけでなく、組織全体に自分たちが体得したベストプラクティスの共有と学習を行う役割も担います。個別のプロジェクトに閉じて実施していくことも可能ですが、やはり組織横断チームがナレッジを蓄積、共有し、実施を徹底していくことによって、FinOpsがさらに効果的なものとなります。
まとめ
FinOps は単なるコスト削減ツールではなく、ビジネス価値を最大化するための戦略的アプローチです。これまでの連載でお話ししてきた仕組み (可視化、最適化、計画・予測) を、一時的なものではなく組織の継続的な取り組みとして定着させることで、組織の競争力を高めていきます。
最終回である今回は、FinOps を実践していく上で重要となるプロセス、カルチャーについてお話しさせて頂きました。AWS が皆様のビジネスの更なる発展に寄与できれば、これ以上のことはありません。
「AWS でのコスト最適化の進め方」の連載記事はこちら
- 選択
- 第 1 回 ~ 7 つのポイントとコスト最適化に活用できる新ツールとは ?
- 第 2 回 ~ コスト可視化のポイントと役立つ AWS サービスのご紹介 !
- 第 3 回 ~ 短期的なコスト削減施策と中長期的なコスト最適化施策
- 第 4 回 ~ ビジネスの成長に向かうためのクラウド費用予測と予算管理
- 第 5 回 ~ 継続的な FinOps の実践
筆者プロフィール
柳 嘉起
アマゾン ウェブ サービス ジャパン合同会社
技術統括本部 シニアソリューションアーキテクト
2019年にAWS入社し、ソリューションアーキテクトとしてお客様の事業課題をAWSテクノロジーで解決するお手伝いをしています。開発と同じくらい運用が好きです。趣味はメダカ飼育で、アライグマの襲撃をスマートホーム/AWS IoTの力でなんとか凌いでいます。
AWS を無料でお試しいただけます