CloudfFormationについて

CloudFormationの仕組みについて

CloudFormationとは、AWSのリソース(Amazon EC2 インスタンスや Amazon RDS auroraなどのサービス)をテンプレートに基づき作成してくれるサービスです。本来、同じ様なインスタンスを複数作成する際は一つ一つ設定を行う必要があり、更にそれを運用可能な状態にするには数に比例しかなりの手間と時間を浪費することになります。CloudFormationでは、ユーザーがテンプレート(リソース設定やプロビジョニングをテキスト化したもの)を作成し、更にAWSリージョンに AmazonS3(AWSのデータを格納及び取得する為のサービス)のバケットを作成しテンプレートをアップロードします。

これらの準備を終えCloudFormationサービスを利用する事により、自動で構築を開始します。
テンプレートはJSON形式もしくはYAML形式で記述する事ができ、テキストエディタかAWSのサービスではCloudFormationデザイナー等で作成ができます。テンプレートで使用する記述式であるYAML形式はJSON形式のスーパーセットでありながら視覚的にはYAML形式の方が見やすくなっております。テンプレートはAmazon.comより様々な用途に沿ったサンプルテンプレートが提供されており、サンプルテンプレートをベースにユーザーの要件にあった内容に編集することにより作成は容易になります。

関連したリソースは一つのユニットであるスタックとして管理されます。このスタックを編集する際は、改めて変更したスタックを生成し古いものは削除されます。その為、データベースなどが変更されて問題が発生する場合はバックアップを取るなどの作業を行う必要があります。

CloudFormationの特徴

CloudFormationの特徴としては以下のものが上げられます。

正確さの向上

テンプレートを元にした自動構築の為、手動で行う事により起こるヒューマンエラーを回避でき、作業に伴う作業時間も大幅に削減できる為作業の加速化も見込めます。さらに実用的で高度なサンプルテンプレートが用意されているため、ユーザーはそのテンプレートを編集、利用し完成度の高いテンプレートを作成する事が出来ます。

構築と運用の簡易化

テンプレートを使いスタックの構築すると、CloudFormationによりすぐさま稼働します。稼働後のスタックの削除も容易に行うことができます。また、リソースが必要になった際は作成したテンプレートを元に再利用する事が出来ます。テンプレート自体はテキストファイルであるため誤った部分の発見を容易に行うことができます。リソースは一まとまりにできる為、作成、更新も簡単になり全体的な管理が容易になります。削除ポリシーにより、削除するべきでないリソースは保護する事ができます。

料金

CloudFormation自体には追加料金は発生せず、CloudFormationで使用したAWSで使用したAmazonEC2インスタンスや AmazonRDS auroraなどのサービスにのみ金額が発生します。CloudFormationを使用による前払い等も発生しません。
CloudFormationで使用するAWSサービスも従量課金制であるため、使用した料金のみの支払いが基本となっております。

CloudFormationでの注意点

JSON形式、YAML形式での構文作成

テンプレートのフォーマットはJSON形式あるいはYAML形式となっている為、構文を作成する上での知識が必要です。また、テキストエディタやAWS CloudFormation デザイナーなどを使用する際にもスタックの構築やテンプレートの作成方法の知識が必要になります。

料金の計算

CloudFormationで使用するAWSサービスの料金の計算が、複数のスタックを管理する都合上複雑になることがあります。この問題は、CloudFormation内の設定により解決する事ができます。

まとめ

クラウドサービスが一般的に定着し多くの場面で見られる中で、規模によっては莫大なプログラムを構築しなくてはいけないビジネスも存在します。その場合、完成までの道筋は決っていても技術上の問題や人材確保の問題等で構築に対して多くの時間を費やしてします場合があります。CloudFormationを使用すれば構築に掛かる時間を著しく短縮する事が出来ます。多くのAWSサービスは高い性能と可用性や、フルマネージドなものとなっているためユーザーにかかる負担を減らす作りとなっております。CloudFormationもそんなAWSサービスの1つであり、CloudFormationを利用する事により抱えている多くのケースを解決できるかもしれません。ケースに当てはまる場合は一度CloudFormationの導入を検討してみたらいかがでしょうか。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です