CDP Advent Calendar 2012 12月12日分です。アドベントカレンダー初心者のsasaki-k (@siroken3)と申します。 当初は「Stack Deployment パターンに関すること」でタイトル提出しまして、自分のCloudFormationを利用した経験を書こうと思ってました。

そう、アドベントカレンダーが始まるまでは・・・

始まってみると諸先輩方のエントリーはCloudFormationが当たり前のように登場しているではないですか。持ちネタがみるみる貧相に見えてきて「これが、アドベントカレンダー・・」とガクブルしたので急遽ネタを追加しました。

それでは内容に入ります。当社は物理サーバによるDSASというソリューションを長年手がけて来ておりまして国内のソーシャルゲームはこのDSASで提供しています。一方、海外進出やチャレンジングな企画に関しては AWSのようなクラウドを活用しています。この活動については今年11月3日〜4日に開催された PHP Matsuriで講演させていただきました。

Stack Deploymentパターンに即してこの取り組みについて補足しますと、当社では各新規に立ち上がるゲームタイトル別に VPCを構築しつつ、そのフィードバックを元にVPCの共通形を育て、新規タイトル立ち上げ時には、その時点での共通系を CloudFormation テンプレート化したものを利用してシステムを起動し運用開始、フィードバックを受けてテンプレートを更新する流れです。

しかし、残念なことに既存環境のテンプレート化フェーズにおける重要なツールである CloudFormerは VPCに対応していないです・・ね。SubnetなどVPCの構成自体タイトル間に差異はなさそうですが、 既存タイトルのCloudFormation テンプレート化時にはそれなりの手数がかかります。

前置きが長くなりました。このような背景もありましてVPCに対応したCloudformerの代替を週末に書いてgithubのpublicリポジトリに公開しました。名前をかっこよくCloudformer-Vとかにしようと思ったのですが商標上の問題があるのではないかと考え無難にFloccus(房状雲)と名付けました。

https://github.com/siroken3/floccus

まずは VPC特有のVPC,Subnet,RouteTable,EC2Instanceあたりから手を付けています。実践未投入ですがVPCとSubnet定義だけで数百行近くのCloudformationテンプレートを数秒で出力できています。現状そのままではCloudFormationファイルとして投入すると失敗するかもしれないのが残念な点ですが今後の発展にご期待くださいませ。

CLIツールでして、使い方は上記githubリンクのREADME.mdをご参照いただければと思います。VPCIDを引数に指定すると対応するCloudFormationのJSONが標準出力に出力されます。

MITライセンスにしていますのでforkしていただいて改良いただくいただいたり、ご指摘いただいたり、さらにはpull requestしていただいた暁には幸甚です。

と言ってたらアマゾンさんからVPC対応 CloudFormerがクリスマスプレゼントで発表されたりして。(´Д⊂)