AWS CloudFormationとは

AWSは以下のようにCloudFormationを説明しています。

「AWS CloudFormation は Amazon Web Services リソースのモデル化およびセットアップに役立つサービスです。」

イマイチ、理解しにくいので、一言で説明するのであればAWS CloudFormationは、「AWSに特化した構成管理ツール」です。AWSリソースをCodeで管理することができるサービスです。

 

構成管理ツールとは

構成管理ツールは、「Infrastructure as Code」という概念を実現するツールのひとつで、ネットワークやサーバなどのITインフラをコード(Code)で設計構築し管理することができるツールです。

構成管理ツールと似たようなツールで「オーケストレーションツール」と呼ばれるツールもあります。似て非なるものなので、少々ややこしいのですが、「Infrastructure as Code」の概念をもとに開発されてきたツールといった意味では同じものになりますので、それぞれの特長をよく理解し、自分の目的にあったツールを選択していくのがベストです。

  • 構成管理ツール Ansible、AWS CloudFormation
  • オーケストレーションツール:Terraform

というツールが有名です。

AWS CloudFormationのキホン

では、さっそくAWS CloudFormationのキホンについてご紹介していきます。

AWS CloudFormationは、AWSで作られるVPNやサブネット、EC2などのサーバー、アプリケーションのインストールなどの一連の構築作業をコード(Code)で記述し実行することができます。今まで人がやっていた作業をコードとして記述することでヒューマンミスを減らすことができます。

良いことはそれだけではありません。

パラメーターシートはもういらない

日本では伝統的に基本設計書や詳細設計書の他に、Excleなどでパラメーターシートなるものをつくり詳細な設定情報を記述していくという文化が色濃く残っていました。今も多くのSierやNierでは秘密裡にExcelによるパラメータシートの製造が行われているかもしれませんが、構成管理ツールを使う場合、今までパラメーターシートに記述していた内容をそのままコード(Code)に記述することができるようになったので、設計書を書いてからパラメーターシートを書きあげ、それからconfigを書く なんて無駄な作業をする必要はなくなりました。

つまり、コード(Code)をそのまま設計書として利用するということです。

コードが設計書

しかも、ここで作られるコード(Code)は今までのパラメーターシートのように静的なドキュメントではありません。詳しくは別の記事でご説明しますが「動的な設計書」として、さらには変更管理もできる設計書として利用することができるので、簡潔で効率の良い、しかも管理までできる優秀なドキュメントなのです。

AWS CloudFormationで利用できるコードの形式

AWS CloudFormationで利用できるコード(Code)は、jsonもしくはyaml形式です。両方とも採用されていますのでどちらでも問題なく利用することができるのですが、jsonは括弧が鬱陶しいことやコメントが記述できないことなどの理由から、ここでは、yaml形式でコード(Code)を記述していくことをおススメしています。この後、サンプル例なども出てくるのですが、形式はすべてyaml形式で表現しています。


AWS CloudFormationの基本の説明が少し長くなってしまいましたので、「AWS CloudFormationでよく使われるキーワード」や「 AWS CloudFormation のテンプレート」についてご紹介していきたいと思います。

お疲れ様でした。

次の記事:AWS CloudFormation #1 フォーマット