[AWS] CloudFormation
Cloud AWS
Published : 2020-07-14   Lastmod : 2020-07-18

1.CloudFormationとは

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

AWSでEC2やRDSなどでシステム構築をするときはIAMやVPCの設定などのインフラ環境構築作業が必要になります。そして、その後はアプリケーションを構築すると思います。CloudFormationは、このような実装済みインフラ環境、アプリケーションをテンプレート化するサービスです。

本来、インフラ構築をする際は「EC2インスタンスのタイプはt3.microを選択し、パブリックサブネットに置いて、RDSはMySQLを使ってプライベートに置く、S3は、Route53は、」など選択することが多いです。ですが、一度構築した環境をAWS CloudFormationでテンプレート化しておけば、その環境を複製したいとき、CloudFormationを使えば簡単にインフラ環境が構築できます。

2.CloudFormationのメリット

CloudFormationのメリットは、圧倒的な時間の節約です。AWS CloudFormationでリソースの設定をすれば、同じ環境を複数構築し、一括管理することができる点です。例えばシステム開発する際はテスト環境と本番環境が必要ですが、これをいちいち1つずつ構築するのは面倒です。CloudFormationでは、テスト環境を本番環境用に複製できるので、新たなインフラ構築の手間が減ります。

また、AWS CloudFormationのテンプレートは、テキストファイルで作成するので管理がラクです。せっかくテンプレートを作っても、テンプレートの使い方が手間だと結局時間がかかってしまいますが、テキストでテンプレート化されているためインフラ環境の扱いが簡単になります。

さらに、利用料金ですが、CloudFormationは無料で利用できます。基本的にCloudFormationはEC2やRDSなどと一緒に使うためか、CloudFormationの利用料は一切かかりません。

3.CloudFormationの使い方

CloudFormationを使えるようにするには、テンプレートを作成しなければいけません。定義を記述したテンプレートのファイルを作ります。

テンプレートに最低限必要な要素は、AWSTemplateFormatVersionとResourcesというリソース定義のリストだけです。リソースの定義順は関係ないので好きな順番に書いてください。CloudFormationがリソースの関係性を自動で考えて紐づけてくれます。

テンプレートファイルが完成したらS3などにアップロードして使える状態にしておきましょう。インフラ環境は特別な仕様のシステムを覗き、ほぼ同じような設計パターンになります。そのようなときはCloudFormationを利用すれば、ただでさえスピーディーなクラウドサーバの環境構築がさらにスピードアップします。

関連する記事