AWS上にサーバーを構築しようと思うのですが,
Management ConsoleからEC2やらVPCやらを個別に作成すると構成が分かりにくくなるので,
AWS CloudFormationを使ってみることにしました.
AWS CloudFormationとは?
AWSリソースをJSONもしくはYAMLのテンプレートとして構築管理できるサービスです.
AWSリソースをテンプレートとして扱えるので,EC2やVPCの構成をバージョン管理する事ができます.
一度テンプレートを作成してしまえば,簡単に環境を複製することができます.
Designerからスタックを作る
JSONやYAMLを直接記述するのは正直辛いので,Designerを使用します.
Management Consoleにログインして,サービス->管理ツール CloudFromation->スタックの作成->テンプレートのデザイン でDesignerページに遷移します.
画面左のリソースタイプのペインから配置したいリソースを画面中央のキャンバスにドラッグして,画面下のエディタで設定を書きます.
今回は簡単なWebサーバーの構成にします.
ここを参考に作りました.
完成はこんな感じ.
エラーが出て,困ったことがありました.
ルーティングテーブルのRouteリソースには他リソースに4つ(VPCPeeringConnection,Instance,NetworkInterface,InternetGateway/VPNGateway)接続ができるのですが,正しく紐付けないとエラーが出ました.(当たり前ですが!)
あと,間違ってDependsOnで接続してしまったり…
エラーが出たときは,接続を確認してみましょう.
テンプレートをローカル/S3に保存してスタックを作成すると,各リソースのページにテンプレートで配置したリソースが作成されています.
簡単ですね〜
使ってみた感想
- GUIでポチポチできるので結構簡単です
複雑になってもある程度対応できるのはないでしょうか(テンプレートの分離ができるようです) - システムの構成図としても使用できるので便利です
- システム構成の変更も視覚的に簡単にできる
- 設定はエディタでJSONを編集しないといけないので,マニュアルと睨めっこになります(笑)
(インテリセンスがあるので大分 楽なんですがね)
既に動作しているものをCloudFormationに引っ越してくるのは大変かと思いますが,新しく何か作るときは是非〜