LoginSignup
3
2

More than 1 year has passed since last update.

CloudFormationについて(1)-CloudFormationの概要-

Last updated at Posted at 2022-12-23

こんにちは。
この記事は、株式会社日立システムズ Advent Calendar 2022の20日目の記事です。

今回、CloudFormationを利用しリソースを構築する機会がありましたので、
以下の3回に分けて学習したことをまとめていきたいと思います。

 1. CloudFormationについて(1)-CloudFormationの概要-
 2. CloudFormationについて(2)-【実践】CloudFormationテンプレートの作成-
 3. CloudFormationについて(3)-【実践】ネストスタックの作成-

第1回の今回は「CloudFormationの概要」についてまとめていきます。

目次

1.CloudFormationとは
2.CloudFormationテンプレートの構成要素
3.まとめ

1.CloudFormationとは

1.1 CloudFormationの概要

AWS リソースを記述するテンプレートを作成することで
自動でAWS環境を構築できるサービス・IaC(Infrastructure as Code)ツールです。
image.png

1.2 メリット

同様のAWS環境を短時間で構築できるようになります。(作業工数の削減)
削除する際は一括削除が可能です。(作業工数の削減)
また、構築作業を自動化できます。(人為的な設定ミスの削減)

1.3 利用手順

(1)テンプレートの作成

まず、テンプレートを作成します。作成方法は主に以下の通りです。

  • クイックスタート
    AWSのベストプラクティスに基づいてセキュリティや可用性を考慮しているテンプレートを利用する。

  • サンプルテンプレート・テンプレートスニペット
    既存のサンプルを利用し、テンプレートを作成する。

  • 自らテンプレートを作成
    JSONまたはYAML形式で0からテンプレートを作成する。

  • AWSCloudFormationデザイナー
    AWS CloudFormation テンプレートを作成、参照、および変更するためのグラフィックツールを利用し作成する。
    AWS CloudFormation デザイナー とは

(2)スタックの作成

CloudFormationのページから「スタックの作成」をクリックします。
image.png

「スタックの作成」画面に遷移します。
「テンプレートの指定」では、すでにS3にテンプレートを格納している場合は「Amazon S3 URL」を選択し、格納先のURLを入力します。
image.png

また、「テンプレートファイルのアップロード」を選択し、「ファイルの選択」からテンプレートをアップロードすることもできます。ファイルを選択したら、「次へ」をクリックします。
image.png

「スタックの詳細を指定」画面に遷移します。
ここではスタックの名前やパラメータを入力し、ページ右下の「次へ」をクリックします。
パラメータに関しては後述します。
image.png

「スタックオプションの設定」画面に遷移します。
ここでは各オプションを選択または入力し、ページ右下の「次へ」をクリックします。
image.png

最後に「レビュー」画面に遷移します。
ここでこれまでのステップで選択または入力した情報を確認します。
確認し終わりましたら、ページ右下の「送信」をクリックします。
image.png

以下の画面に遷移しスタックの作成が始まります。
作成中のステータスは「CREATE_IN_PROGRESS」です。
image.png

しばらく経ち、以下の画面のように「CREATE_COMPLETE」になりますと、スタックの作成が成功したことが分かります。
image.png

実際にリソースが作成できているか確認しましょう。
image.png

2.CloudFormationテンプレートの構成要素

2.1 セクション

CloudFormationテンプレートでは以下のセクションを記述していきます。
必須のセクションはResourcesになります。

# セクション 要否 記載内容
1 AWSTemplateFormatVersion 任意 テンプレートが準拠している AWS CloudFormation テンプレートバージョン。
2 Description 任意 テンプレートの説明。
3 Metadata 任意 テンプレートに関する追加情報。
4 Parameters 任意 スタックを作成または更新時に、テンプレートに渡すことができる値。
5 Rules 任意 スタックの作成またはスタックの更新時に、テンプレートに渡されたパラメータまたはパラメータの組み合わせを検証できる。
6 Mappings 任意 条件パラメータ値の指定に使用できる、キーと関連する値のマッピングできる。
7 Conditions 任意 スタックの作成または更新を制御する条件。
8 Transform 任意 サーバーレスアプリケーションの場合に、使用するAWS SAM のバージョンを指定。
9 Resources 必須 構築するリソースとプロパティ。
10 Outputs 任意 スタック構築後に出力させたい値(別のスタックに渡したいリソースの値)を記述。

2.2 Resourcesの形式

必須のセクションであるResourcesでは以下の形式で記述していきます。

Resourcesの形式
 Resources:
  Logical ID:
    Type: Resource type
    Properties:
      Set of properties

Logical IDではテンプレート内でのリソースの論理名を記述します。
また、テンプレート内で一意である必要があります。
Typeではリソースタイプを記載し、Propertiesではリソースのプロパティを記載します。
Propertiesではリソースによって、値の指定が必須な項目(Required:Yes)や条件付きで必須な項目(Required: Conditional) もありますので以下を参照し、記述していきます。

まとめ

今回のポイントは以下の通りです。

  • CloudFormationテンプレートはJSONまたはYAML形式で作成します。
  • CloudFormationを利用することで
    ・同様のAWS環境を短時間で構築できるようになります。(作業工数の削減)
    ・削除する際は一括削除が可能です。(作業工数の削減)
    ・構築作業を自動化できます。(人為的な設定ミスの削減)
  • CloudFormationテンプレートではResources等のセクションごとに記述する。

次回は実際にテンプレートを作成し、内容を説明していきます。

※本記事は2022/12/13時点での内容になります。
 最新の情報に関しては公式ドキュメントを参照ください。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2