インフィニティソリューションズ株式会社ブログ

暴れ猿(Chaos Monkey)、世に放たれる。Netflixが障害テスト・システムを公開。

Netflixといえば、オンラインDVDレンタルを展開し、ストリーミングによるオンデマンド放送も行っている。オンデマンド放送のインフラにAWSが使われていることは有名で、最近のAWSの障害の影響で、放送が見れないとクレームになったりもしていた。

Netflixは「Chaos Monkey(暴れ猿)」と呼ぶ、障害テスト・システムを社内で開発・使用していたが、このたびオープンソースとして公開するに至った。

PCWorldより。「Netflix Uncages Chaos Monkey Disaster Testing System(檻から出た、NetflixのChaos Monkey障害テストシステム)

‘Netflix has released Chaos Monkey, which it uses internally to test the resiliency of its Amazon Web Services cloud computing architecture, making available for free one of the tools the video streaming company uses to keep its massive cloud computing architecture running.’

「Netflixは、同社が社内的にAmazon Web Servicesクラウドコンピューティング・アーキテクチャの障害回復力をテストするために使用しているChaos Monkeyをリリースした。ビデオストリーミング会社が膨大なコンピューティングアーキテクチャの稼動を維持するために使用しているツールの1つとして、無料で使えるようにしたもの。」

Chaos Monkey、世に放たれる

‘Chaos Monkey is a free download available from GitHub as of today. It works by randomly terminating instances of virtual machines in applications, simulating what would happen during a disaster event. “The best defense against major unexpected failures is to fail often,” Netflix officials wrote in the blog post titled “Chaos Monkey released into the wild.”‘

「Chaos Monkeyは現在GitHubから無料でダウンロード可能。アプリケーション内でランダムに仮想マシンのインスタンスを終了させるもので、障害時に発生する事象をシミュレーションしている。『予期せぬ大障害に対する最善の防御法は、何回も落としてみること』と、「Chaos Monkeyが野生に放たれた』題したNetflixの公式ブログで述べている。」

‘Chaos Monkey can be configured to work on the Amazon Web Services offering or, with some tweaking, on other cloud computing offerings. It can be programmed to initiate a testing scheme with various frequencies and to be done during various times of the day, for example on average of once a week or once a day. In practice, a highly resilient cloud should automatically detect the outage and spin up new, identically configured virtual machines that keep the application running with no visible impact to the user.’

「Chaos Monkeyは、Amazon Web Servicesで動作するように設定できるとともに、少々調整すれば、他のクラウドコンピューティング・サービスで動作するようにすることもできる。様々な頻度でテストスキームが始動するようプログラムすることができ、週一回、一日一回平均など、日中の様々なタイミングで始動させることもできる。実際、高度の障害回復性を持ったクラウドでは、自動的に障害を検知し、同構成の仮想マシンを新たに起動させて、アプリケーションを継続稼動させるため、ユーザへの目に見えたインパクトはない。」

‘Netflix says it has run Chaos Monkey internally to create 65,000 failed instances across its system. “Failures happen and they inevitably happen when least desired or expected,” the blog reads, continuing later: “Even if you are confident that your architecture can tolerate an instance failure, are you sure it will still be able to next week? How about next month? Software is complex and dynamic and that ‘simple fix’ you put in place last week could have undesired consequences.”‘

「Netflixによれば、Chaos Monkeyを使っシステム全体で65000回のインスタンス障害を社内で発生させてきたとのこと。『障害は発生するもの。最も起こって欲しくない時に必然的に起こるものだ。』『自分のアーキテクチャはインスタンス障害に耐えられると自信があったとしても、来週ならどうなのか、来月はどうか。ソフトウェアとは複雑で動的なものだ。先週ほどこした『簡単な修正』が思わぬ結果を引き起こしかねない』とブログに記している。」

— この障害テストを行うのに、本番相当のマシンが必要かというと必ずしもそうではない。小規模構成でも十分テスト可能だ。

‘Netflix says in the blog the service could likely be run using Amazon SimpleDB, a relational database, and is small enough that it could be run within AWS’s free usage tier, which covers up to 25 SimpleDB machine hours and 1GB of storage.’

「Netflixによれば、サービス自体はAmazon SimpleDBでも恐らく動作する。AWSの無料範囲内で動作させるに十分小さいものだ。SimpleDBマシン25時間分ととストレージ1GB分まで無料範囲でカバーされる。」