【新機能】AWS CloudFormation Designer発表。CloudFormationをグラフィカルに構築
こんにちは、せーのです。今日はAWS CloudFormation使いにはかなり嬉しい新機能が発表されましたのでご紹介します。
CloudFormationはJSON地獄
AWS CloudFormationはBlue-Green Deploymentなシステムを構築したり、細かい設定値を決めた初期構築、同じ環境を複数個作る時などに非常に便利です。テンプレートやOUTPUTが残るのでどのような設定値で構築したかを振り返るときにも便利ですね。 ただこのCloudFormation、昔から言われている大きな課題がありました。それは「テンプレートの構築方法がJSON一択」ということです。 EC2 + AutoScaling + RDS + ELB + S3 + ElastiCache、、、といった通常のWebシステム構築だけでも数百行を超えるJSONを手書きでシコシコ書き続ける必要がありました。 JSONですから当然タイポやカッコの数が合わなければ通りませんし、リソースの書き方によってはあと少しで完成、というところでリソースエラー、全てロールバック、、、なんて地獄絵図が日常茶飯事でした。 それを回避しようとRubyでラップしてみたり、Pythonでラップしてみたり、、と色々な知恵と勇気で乗り越えてきたわけですが、ここにきて公式からいよいよ待ちに待ったGUIツールが登場しました!!
特徴
特徴はなんといってもGUI、ドラック&ドロップでポトペタするだけでCloudFormantionが組めていく、というところですね。 それ以外にもS3やローカルディスクに対するsave、loadやUndoもコントロールバーからワンクリックで出来てとても便利です。Validateボタンもあるので自分で作ったJSONテンプレートのチェックにもなりますね。
やってみた
それでは早速触ってみましょう。マネージメントコンソールからCloudFormationを開いてみます。
早速ボタンが増えていますね。このボタンを押すとデザイナーが立ち上がります。
見た目はVisual Studioのポトペタに似てる感じでしょうか。とりあえずネットワークを組んでみようとしてVPCを探してみました。VPCはEC2カテゴリの中にあるんですね。
貼り付けたリソースの上で右クリックをするとコンテキストメニューが出てきます。
ここには
- 目: プロパティの修正
- コピー: 同じAWSリソースをコピーする
- ゴミ箱: リソースを削除する。
- はてな: リソースに対応するCloudFormationのドキュメントページを開く
使った感じ、プロパティの値は下部のJSONに直接打ち込む関係で、はてなマークを使う頻度が高くなりました。その上ではここにドキュメントへのリンクがあると便利です。
リソースにはポイントが表示されていて、そこからドラッグすると矢印が出てきます。これを使ってリソース同士の関連をつけていく感じですね。
とりあえず何も考えずにシステムを組んでみました。
こんな感じです。VPCにSubnetが3つあり、それぞれELB、EC2、RDSがついています。セキュリティグループとS3がついていて、EC2にはEIPがついています。またEC2にEBSをつけています。RDSを直接Subnetに入れようとするとエラーが出ましたので、DB SubnetGroupを入れて、その中にRDSを立てました。
リソースを追加、削除毎にCloudFormationのJSONテンプレートが動的に変わっていくのが確認出来ます。
ちなみにリソースを置いた位置もこのJSON上に記録されているので、次に開いた際には前回保管された状態そのままで続きができます。
コントロールバーはこんな感じです。New, Open, Saveと言った基本的な機能とUndo, Redo, CreateStack, Validateが用意されています。
Save先、Load元にはローカルのファイルとS3のどちらに入れるか選択できるようになっています。 S3に保存してバケット内を見てみると
デザイナー用にフォルダが新たに作られるようです。
CreateStackを押すと
いつものCloudFormationのCreate Stack画面になりました。あとは普通に組んでいくだけですね。
まとめ
いかがでしたでしょうか。使いこなせば生産性が大きく変わりそうですね。サンプルテンプレートを選択することもできるので、そちらを見てみながら必要なプロパティは何なのかを覚えていくのも良いかと思います。