Gマイナー志向

とくに意味はありません

AWS CloudFormationを使ってisucon2を13分で構築できるようにしてみた

本家で自家製 #isucon2 のつくりかたが公開されていますが、正直面倒くさいですよね。そこでisucon2をすぐに試せるAmazon CloudFormationテンプレートを作成しました。これを使えばisucon2環境を約13分で構築できます。

https://github.com/matsuu/isucon2-cloudformation

必要なもの

そう、これだけ。

作り方

  • CloudFormationのテンプレートをgithubからダウンロードします。
    • 2012/11/6現在テンプレートは3種類用意してますお好きなパターンをどうぞ
  • AWS Management ConsoleにログインしてEC2を選択します
  • 右上のWorldからisucon2環境を作成するリージョンを選択します
  • 左メニューからKey Pairを選択し、公開鍵を作成します
    • すでに作成済の方は新たに作成する必要はありません
  • 作成した公開鍵のKey Pair Nameを控えておきます(後ほど使います)
  • 上メニューのServicesからAmazon CloudFormationを選択します
  • Create New Stackを選択します
  • Stack Nameに適当な名前を入力し、Upload a Template Fileを選択、先程ダウンロードしたCloudFormationテンプレートを選択しContinueを選択します
    • Show Advanced OptionsでNotificationを設定しておけば作成完了をメール通知できるので便利です
  • KeyNameに先ほど控えた公開鍵のKey Pair Nameを入力してContinueを選択します
    • InstanceTypeはm1.small以外も設定できます
    • ブルジョアな方はcc2.8xlargeとか設定するといいんじゃないでしょうか
  • REVIEWで設定内容を確認しContinueを押してしばらく待てばできあがり

出来上がったサーバ群のログイン情報などはOutputsタブに表示されます。
なお、作成されたインスタンスはDelete Stackを選択すればまるっと全部削除できますのでご安心ください。

注意点とか

AWS CloudFormationを初めて使ってみた感想

いわゆるAWSKickstartですが、ELBやRoute53なども含めすべてを1つのテンプレートで作成できるので良いですね、これ。今回のような用途にも最適です。
テンプレートの見通しがいいのでバックドアが仕込まれている心配をしなくていいのも魅力的。他人が作ったAMIなんて信用できませんからね。
Update Stackであとから柔軟に構成変更もできるようです。すごい。
とてもよくできてるので、他のクラウドサービスもAWS CloudFormation互換のテンプレートシステムを実装してくれたら嬉しいと思いました。

今後の改善予定

  • エラー処理が甘いのでちゃんとやる
  • VPCに対応させる
  • リファクタリング
  • ベンチマークツールの管理画面をなんとかする
  • 種類別にInstanceTypeを変更できるようにする
  • RDSに対応させる