operations
AWS
capital one

AWS Lambdaをフル活用した無駄のないリソース管理ツールCloud CustodianをCapital Oneがオープンソース化

次の記事

英語版TechCrunchがニュース配信ボットをMessengerで出したので使ってみた

Capital Oneは巨大な組織で、金融サービス企業であることに関連したコンプライアンスの問題も多い。同社はたまたまAmazon Web Servicesの顧客でもあり、AWSの使い方に関するルールやポリシーを効率的に設定するためのツールを必要としていた。

昨年の7月に同社が開発を始めたツールが最終的にCloud Custodianとなり、今日(米国時間4/19)同社はシカゴで行われたAWSのイベントで、そのツールをオープンソースとしてGitHub上で提供する、と発表した。

Cloud Custodianプロジェクトの主席デベロッパーKapil Thangaveluは、こう語る: “Cloud Custodianはルールエンジンであり、AWSをより良く管理していくためのポリシーを、これを使って定義する。企業にはインフラ関連のリソースが数多くあり、どの企業にもそれらのリソースに関して達成すべきポリシーの集合がある”。

ポリシーの定義を整然と組織的なやり方で行うようになってから、同社のAWSリソースの使用量がそれまでの25%減り、Capital Oneのような巨大企業ともなると、その経費節減額はとてつもなく大きい。Cloud Custodianを開発する前は個々の要件ごとにスクリプトを書き、その全体を監督する者はいなかった。Cloud CustodianはCapital Oneに、中央集権的にポリシーを作ってモニタし管理するための手足を与えた。それまではポリシー政策に中央的管理というものがなく、複数のツールを適当に使っていた。

Cloud Custodian dashboard from Capital One.

Cloud Custodianのダッシュボード。写真提供: Capital One

このツールは、AWSの二つの新しいサービスによって可能になった。まず、何よりも便利だったのがCloudWatch Events(CWE)だった。これは1月にリリースされ、イベントのモニタリングが前よりもずっと効率的にできるようになった。アクションの有無を知るためにしょっちゅうAPIをポーリングするのではなく、ユーザーが関心を示しているイベントが生起したらCWEがリアルタイムで通知をくれるのだ。

もうひとつの突破口がLambda サービスで、昨年のAWS re:inventで発表されたこのサービスは、CWEのイベントトリガに対応して、一連のリソースを一定のルールに基づいてローンチする。“それを何秒間動かせ”といった、時間も指定できる。CloudWatch EventsとLambdaを組み合わせてCapital Oneは、超効率的なルールエンジンを作ることができ、それがCloud Custodianになった。

Lambdaが使えるとAWSのユーザー企業は、それほど頻繁ではないイベントのためにわざわざサーバーをセットアップしなくてよい。イベントがあれば、CWEがそのイベントに対応するLambdaのプロセスをトリガする、それだけだ。しかもそのプロセスが終われば、あとには何もない。それが、このシステムの独特の美学だ。必要がないときでもサーバーをしょっちゅう動かしていることに比べれば、リソースのオーバヘッドが相当大きく減る。

アドミニストレーターは、何のためにどんなルールがあるか、よく分かるようになり、ひいてはAWSのクラウドインフラストラクチャの全体がよく分かるようになり、詳細で確実なコントロールができる。そうするとすべてのインスタンスのコンプライアンスが確保され、使ってないリソースに金を払っている、という状態がなくなる。

同社がCloud Custodianをオープンソースにすることに決めたのは、これまでずっとオープンソースソフトウェアのお世話になってきたので、そのお返しをしたい、と考えたからだ。第二の、もっと実践的な動機はたぶん、ツールをオープンソースにすれば、自分たちだけでなくコミュニティがコードを見たりいじくったりするようになる。コメントも寄せられる。ソフトウェアのメンテナンスという肩の荷が、より多くの人の肩で担(かつ)がれるようになり、社内チームの負担がそのぶん軽くなる。

Capital Oneは、Cloud Custodianがオープンソースのプロジェクトとして離陸し、熱心なファンができることを期待している。今日の発表はそのための第一歩であり、ツールを軸とするコミュニティ作りの努力の始まりだ。

[原文へ]
(翻訳:iwatani(a.k.a. hiwa))