BLOG
ブログ
  • TOP
  • BLOG
  • AWS基礎 CloudFormation紹介

AWS基礎 CloudFormation紹介

AWS基礎 CloudFormation紹介

CONTENT

みなさん、こんにちは!

今回はAWSサービスの一つであるCloudFormationについて紹介させていただきます。


前知識としてAWSは、Amazonが提供するクラウドサービスであるAmazon Web Serviceの略称です。今回の記事ではAWSのサービスの一つであるCloudFormationを取り上げます。


まず、AWSを利用してシステム構築しようと考えると、数多くのAWSサービスを利用して構築することになるでしょう。多くのケースで当てはまるものとして、サーバーが必要であればAmazon EC2を利用して、データベースではAmazon RDSなどが必要です。

そして、環境も本番で使用する一つだけというわけにはいきませんから、開発用やテスト用と同じような環境は複数必要になってきます。こういった複数のリソースを管理するには通常であれば多くの時間が必要ですし、難易度も高いはずです。
CloudFormationは、これらのAWSリソースのセットアップに役立つサービスです。


CloudFormationの特徴は、AWSリソースをJSONやYAMLの形式でテンプレートを作成しておくことで、
・テンプレートをもとにAWSリソースを自動で作成
・一つのテンプレートで同じ構成のリソースを複数構築

といったことが出来るようになります。

特に同じ構成のリソースを複製できる点は非常にメリットが大きいです。リソースを手動で作成すると、どうしてもヒューマンエラーが付いて回るため予防にも限界があります。テンプレート化してしまえばシステム構築の初動が早くなり開発に注力出来る時間も多くなるため、思っている以上に恩恵があることでしょう。


ただし、私自身はCloudFormationを始めて作成する際は直接JSONテンプレート作成を行ったのですが、とても苦労しました。CloudFormationテンプレートとしてのルールに沿った記述をする必要が当然あります。

その上、各種AWSサービスの知識も全くない中でテンプレート作成しないといけなかったので、そもそもAWSリソースに対してどんな設定が可能か分からないことがより難解に感じた理由でした。

公式からドキュメントも公開されているものの、CloudFormationテンプレート作成にはある程度幅広い知識とAWS経験が多少ある方が良いと感じました。


CloudFormationテンプレート作成にはJSONやYAMLの形式で直接テンプレート記述せずとも、普段使い慣れているプログラミング言語(JavaScript,Pythonなど)で作成が出来るAWS CDKといったサービスもあるので、私は使用したことが無いですが、テンプレート作成のハードルを下げる方法は存在します。


この他にもCloudFormationには様々な機能が含まれています。

例えばテンプレートを修正しても、いきなり環境に反映するのは怖いですが、反映前に事前にリソースに与える影響を確認できる機能もあります。まだまだ便利は機能はあるため、気になっている人は少しずつでも触れるところから試してみると良いでしょう。


私自身まだまだCloudFormationの知識をはじめとして勉強不足ですが、少しずつ勉強しています。皆さんも気になるサービスからAWSに触れてみてはいかがでしょうか。