OSSで実現する効率化・コスト削減

ガバナンス強化とコスト最適化:Cloud Custodianを活用したクラウド資源管理事例

Tags: Cloud Custodian, クラウドコスト削減, ガバナンス, 運用自動化, FinOps

導入部

クラウドシフトの推進により、ビジネスのアジリティやスケーラビリティは向上しました。しかしながら、一方でクラウド環境の運用は複雑化し、意図しないコスト増大やガバナンスの維持が課題となるケースが増加しています。特に、複数のプロジェクトやチームが独立してリソースを管理する環境では、利用状況の把握や適切な設定の維持が難しくなりがちです。

本記事では、こうした課題に対し、オープンソースのポリシードリブンなクラウド管理ツールであるCloud Custodianを活用し、ガバナンス強化とコスト最適化を自動的に実現した具体的な事例をご紹介します。抽象的なメリット論ではなく、どのような課題を抱え、どのようにCloud Custodianを導入・活用し、その結果どのような成果が得られたのかに焦点を当てて解説します。

導入前の状況

当組織では、数年前から戦略的にクラウド(主にAWSとAzure)の利用を拡大してきました。開発チーム主導での迅速なリソースプロビジョニングが進み、ビジネス要求への対応速度は飛躍的に向上しましたが、管理部門や情シス部門にとっては以下のような課題が顕在化していました。

これらの課題は、クラウド利用のメリットを相殺し、組織全体の効率性を低下させる要因となっていました。

導入の意思決定と選定

増大する運用負荷とコスト、そして潜在的なリスクを前に、手動による管理には限界があることは明らかでした。そこで、クラウド環境のガバナンスとコストを自動的に管理・最適化できるソリューションの導入検討を開始しました。

商用ツールを含む複数の選択肢を比較検討した結果、Cloud Custodianを導入することを決定しました。主な選定理由は以下の通りです。

意思決定における懸念点としては、新たなOSSの学習コストや、組織全体で共通のポリシーをどのように合意形成し適用していくか、といった点が挙げられました。これらに対しては、まずは小規模なPoCを実施してツールの特性を理解すること、ポリシー定義に関する部門横断のワークショップ開催、そして段階的な適用計画を立てることで対応を進めることとしました。

具体的な導入・活用

Cloud Custodianの導入は、以下のステップで進めました。

  1. 基盤構築: ポリシーを実行するための環境として、AWS Lambda function や Azure Functions を利用しました。これにより、サーバーレスで定期的にポリシーを実行できる環境を構築しました。また、ポリシー定義や実行結果を管理するため、Gitリポジトリとオブジェクトストレージ(S3/Blob Storage)を活用しました。
  2. 初期ポリシー定義: まずは、コスト削減効果が大きく、かつ既存システムへの影響が比較的少ないと思われるポリシーから定義を開始しました。
    • 特定の日数以上利用されていないEBSボリュームやAzure Diskの特定・削除(削除前にスナップショットを取得し、通知するアクションを定義)
    • 古いAMIやスナップショットの削除
    • 停止状態が一定期間続いているEC2/VMインスタンスの特定・削除
    • 必須タグ(例: Project, Environment, Owner)が付与されていないリソースの特定と担当者への通知
  3. Dry-runと関係者への通知: 定義したポリシーは、いきなり実行するのではなく、まずはDry-runモードで実行し、どのようなリソースが対象となるか、どのようなアクションが実行されるかをシミュレーションしました。その結果をレポートとして関係部門(開発チーム、事業部門など)に共有し、想定外の影響がないか確認しました。
  4. 段階的な適用: Dry-runでの影響確認と関係者の合意形成が得られたポリシーから、通知のみのアクション、次に自動的な是正アクション(停止、削除など)へと段階的に適用スコープを広げていきました。
  5. 継続的な改善: ポリシーの実行結果を定期的に確認し、期待通りの効果が得られているか、あるいは新たな課題が発生していないかをモニタリングしました。新たな知見や組織のルール変更に合わせてポリシーを改訂し、Gitでバージョン管理しながら運用しました。CI/CDパイプラインに組み込み、ポリシーの変更があれば自動的にテストやデプロイが実行されるようにしました。

アーキテクチャとしては、Cloud Custodianの実行エンジンをサーバーレス関数としてデプロイし、CloudWatch Events/Azure Event Gridなどを使用して定期実行します。ポリシー定義ファイルはS3/Blob Storageに格納し、実行結果やレポートは別のS3バケット/Blob Storage、またはElasticsearch + Kibanaなどのログ分析基盤に集約して可視化・分析を行いました。

導入によって得られた成果

Cloud Custodianの導入により、以下のような具体的な成果を得ることができました。

直面した課題と克服

導入過程で直面した主な課題と、それらをどのように克服したかを以下に示します。

まとめと今後の展望

Cloud Custodianを導入することで、当組織はクラウド環境における喫緊の課題であったコスト増大とガバナンス欠如を効果的に解決することができました。ポリシードリブンなアプローチと自動化により、明確なコスト削減と運用効率化を実現し、組織全体のクラウド活用レベルを一段引き上げることができたと考えています。

この事例から得られる教訓として、以下の点が挙げられます。

今後は、さらに高度なコスト最適化ポリシー(例: Savings Plans/Reserved Instances の推奨/自動適用、最適なインスタンスタイプのリコメンデーション)、セキュリティ関連ポリシーの強化、そしてDevOpsパイプラインへのより深い組み込みを進め、継続的なクラウド資源管理の自動化・最適化を目指してまいります。Cloud Custodianは、変化の速いクラウドネイティブ時代において、組織が効率的かつ安全にクラウドを活用するための強力なOSSツールの一つと言えるでしょう。