2021/06/18

AWS CLI CloudFormationとは?テンプレートやスタック作成方法を紹介!

 
  

AWS CLI CloudFormationとは

AWS CLI CloudFormationは、AWS CloudFormationスタックの作成、監視、更新、削除をコマンドラインから行うことができるサービスです。 AWS CloudFormationでは、設定ファイルをもとにして好みのシステム構成を作成することができます。AWS CLI CloudFormationでは、このCloudFormationをコマンドラインから制御することができます。 AWSではマネジメントコンソールからそれぞれのAWSリソースを設定していくこともできますが、この方法では同じシステムを立ち上げたい場合等に設定ミスが起こり得ます。 テンプレートファイルを一度作成してAWS CLI CloudFormationを使えば、間違いなく同じシステムを簡単に立ち上げることができます。

AWS CloudFormationとは

AWS CLI CloudFormationは、AWS CloudFormationをAWS CLIから制御するサービスです。 AWS CloudFormation は EC2やRDS DBインスタンスなどの、Amazon Web Services リソースの設定に役立つサービスです。 いちどテンプレートを作成すれば、これに従ってAWS CloudFormation がこれらのリソースの設定を自動的に行います。 これらのAWSリソースの単位を、スタックと呼びます。スタックを作成すれば、スタックに含まれるAWSリソースが起動されます。スタックを削除すれば、起動されたAWSリソースが自動的に削除されます。 AWS CloudFormationはAWSマネジメントコンソールからのインターフェースもあります。CLIを使用する前に、まずはマネジメントコンソールからCloudFormationを使ってみて理解を深めるとよいでしょう。 また、AWS CloudFormation自体は無料のサービスです。ただし、CloudFormationから使用する AWS リソースには料金が課金されるので、注意が必要です。

テンプレートを作成するには

テンプレートとは、スタックを構成するAWSリソースを記述したものです。テンプレートはテキストファイルとして保存され、フォーマットはJSONまたはYAMLが使用できます。 テキストファイルのため、任意のエディタで編集できます。以下にJSON,YAMLフォーマットでの例を示します。 (例1)JSONでの例
{
    "Resources" : {
        "MyBucket" : {
            "Type" : "AWS::S3::Bucket"
        }
    }
}

(例2) YAMLでの例
Resources:
  MyBucket:
    Type: AWS::S3::Bucket
例1,例2のテンプレートを使用してスタックを作成すると、AWS CloudFormationはMyBucketという名前でAmazon S3バケットを作成します。 ここでは基本的な例として、Amazon S3バケットを示しましたが、 他のAWSのリソースも同様に記述することができます。例えばEC2インスタンスのようなリソースの場合にはさらに多くのパラメータを設定する必要があります。

AWS CloudFormation デザイナー とは

AWS CloudFormationデザイナーは、AWS CloudFormationテンプレートを作成、編集するためのグラフィカルツールです。 AWS CloudFormationデザイナーを使うことで、簡単にテンプレートの編集を行い、JSONまたはYAML形式のテキストファイルで出力できます。 AWS CloudFormationデザイナーを使用するには以下のリンクを開き、AWSにサインインします。
AWS CloudFormationデザイナー

テンプレートをチェックするには

AWS CLI CloudFormationの実際の使用例を以下に示します。なお、AWS CLIのインストールと設定はすでに済んでいるものとします。 以下のコマンドで、テンプレートに構文エラーがないか、事前に確認することができます。 (例) > aws cloudformation validate-template –template-url template.json –template-urlオプションのあとに、チェックしたいテンプレートファイル名を記載します。このようにテンプレートをチェックするコマンドが用意されていますが、 これは構文エラーをチェックするものです。 リソース等の他の原因で、このチェックが通っても正常にスタックが作成できない場合がありますので、注意が必要です。

スタックを作成するには

スタックを作成するには、次に示すaws cloudformation create-stackコマンドを実行します。 (例) > aws cloudformation create-stack –stack-name mystack –template-body template.json 上記例では、テンプレートファイルtemplate.jsonにしたがって、mystackという名前のスタックを作成しています。スタックの名前はここではmystackとしていますが、任意のもので構いません。

スタックを削除するには

スタックを削除するには、aws cloudformation delete-stackコマンドを使用します。 (例) > aws cloudformation delete-stack –stack-name mystack 上の例では、mystackという名前のスタックを削除します。スタックを削除すると、スタックと、スタックで起動したすべてのリソースが自動的に削除されます。

スタックの実行結果を確認するには

AWS CloudFormationスタックの情報を確認するには、2つの AWS CLIコマンドを使用します。aws cloudformation list-stacksとaws cloudformation describe-stacksです。それぞれ確認できる内容に違いがあります。 aws cloudformation list-stacksコマンドでは、作成した任意のスタックのリストと情報 (名前、スタック識別子、テンプレート、ステータスなど) を確認できます。90日以内に削除したスタックも含めて表示されます。 (例1) > aws cloudformation list-stacks また、スタックのステータスが特定のもののみを表示するオプションもあります。 (例2) > aws cloudformation list-stacks –stack-status-filter CREATE_COMPLETE 例2では、作成が完了した(CREATE_COMPLETE)スタックのみを表示します。 aws cloudformation describe-stacksコマンドでは、実行中のスタックの情報を確認できます。デフォルトでは、実行中のすべてのスタックに関する情報が表示されます。 (例3) > aws cloudformation describe-stacks

AWS CLI CloudFormationまとめ

AWS CLI CloudFormationは、AWSリソースのセットアップに便利なサービスです。 テンプレートファイルと呼ばれるテキストファイルを作成することで、AWS CloudFormationがこれらのリソースを設定して起動・削除することができます。 AWSではマネジメントコンソールを使用してリソースを手動で設定することもできますが、AWS CLI CloudFormationを使用すればコマンドラインからCloudFormationを制御できるため、AWSリソースの設定をテキストファイルを使用して管理することができます。]]>

ITエンジニアへのキャリアチェンジならキャリアチェンジアカデミー

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニア
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞

おすすめの動画

  • 【未経験からIT業界へ転職するなら】相談窓口とスキルの獲得はここで解決!IT転職が一気に有利に!【キャリアチェンジアカデミー】

  • 【費用一切不要】未経験からIT業界へ転職するならまずはここへ相談!【キャリアチェンジアカデミー】

  • 【何のエンジニアになれるのか?】未経験からITエンジニアを目指すとこんな道がある【キャリアチェンジアカデミー】