AWS CloudFormationを使用してみた実践記録
AWS CloudFormationはAWS構成をソースコードで管理するためのAWS純正のサービスです。
似たようなサービスにTerraformというサービスがあります
これは純正ではありません。内部的にAWSのAPIを叩いてる感じです。(多分ね)
Terraformも使用したことがあるのですが、それはまたの機会に。
AWS構成をソースコードで管理できるようになれば gitで差分管理できる上にチーム開発でも使用できます。
今回はAWS CloudFormationを試しに使用したので、それの記録です。
目次
実践メモ書き
公式ドキュメント
まずは何より公式ドキュメントですね。
事前準備
何かをインストールしたりとか、秘密鍵の設定をしたりetc・・・
これらの作業は特に必要はありません!
感激です。
この手軽さも魅力も1つかもしれません。
JSON or YAML
AWS CloudFormationはJSON形式かYAML形式で書きます。
元々はJSON形式だったのですが、アップデートでYAML形式でも書けるようになったようです。
AWS CloudFormation の更新 – YAML、クロススタック参照、簡略化された置換 | Amazon Web Services ブログ
そのためインターネット上ではJSON形式で書いてることが多いような気がします。
今回はJSON形式で行います。
テンプレートの分析をしよう
AWSが丁寧にテンプレートを用意してくれています。
ここを見ればかなりイメージしやすいのではないかと思います。
以下の作業はこのテンプレートを確認したと仮定して話を進めます。
実際にEC2をたてる
試しにAWS CloudFormationでEC2を立ててみましょう。
{ "AWSTemplateFormatVersion": "2010-09-09", "Description": "test", "Resources": { "MyInstance": { "Type": "AWS::EC2::Instance", "Properties": { "ImageId": "ami-9f0c67f8", "InstanceType" : "t2.micro" } } } }
上記内容をJSONファイルにします。
そしてAWSのマネージドコンソール画面にアップロードするだけでEC2インスタンスが立ち上がります
(確認済み)
AWSTemplateFormatVersion
というのはバージョンのことで2017年1月現在は2010-09-09
しかバージョンが存在しません。
それ以外を記入するとエラーになります。
JSONファイルのアップロード方法
まずAWSにログインします。
そして画面左上の「サービス」を選択すると検索ボックスが表示されます。
そこに「CloudFormation」を入力するとCloudFormationページにいけます。
画面中央の矢印指している「Create Stack」ボタンを押します。
先程作成したJSONファイルをS3にアップロードします。
次に名前を入力します。自分が分かる名前なら何でも構いません。
このあとは特に特別な入力はしなくて結構です。
画面にしたがって、「NEXT」ボタンを押して最後に「CREATE」ボタンを押しましょう。
最後までいくとEC2インスタンスが立ち上がっていると思います。
これだけで最低限ですがEC2インスタンスは出来上がります。
まとめ
実際に使ってみた感想は
処理の順番をグチャグチャに書いてもAWSがちゃんと解釈して順番どおり実行してくれる
特別なインストールなども設定もなくJOSNファイルをアップロードするだけで実行できるので手軽
上記3つが特に良い感じでした。
今後LambdaなどもAWS CloudFormationで作成していく予定なのでそちらも分かり次第書いていきたいと思います!
追記
Lambda環境をAWS CloudFormationで構築サンプルコードを書きました。 tsujitaku50.hatenablog.com