1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

AWS CloudFormationを使いこなす(1)

Posted at

#エピソード1〜AWS CloudFormationとは〜
業務でCloudFormationを触ることがあったため、そこで得たものをまとめていきます。

AWS CloudFormationとは

AWSのリファレンスは、以下のように記述されており、要は「設定さえ用意しておけば、いつでもリソースを構築でき、設定ファイルとして管理することが可能」というサービスです。

AWS CloudFormation では、Infrastructure as Code を実現することにより、AWS やサードパーティーの関連するリソースのコレクションをモデリングし、迅速に一貫してプロビジョニングし、ライフサイクル全体で管理することが容易になります。必要なリソースとその依存関係を CloudFormation テンプレートに記述すれば、1 つのスタックとして一括で起動し、設定できます。必要なときにはいつでもテンプレートを使用し、スタック全体を 1 つのユニットとして作成、更新、削除できます
引用:https://aws.amazon.com/jp/cloudformation/

必要なもの

CloudFormation用のロール

後述しますが、CloudFormationを使用してリソースを構築する場合、各リソースを作成するためのロールを選択する必要があります。

ロールを作成する際に、以下を指定する必要があります。

  • ユースケースの選択時にCloudFormationを選択
  • 構築するリソースに対するアクセス権限(ポリシー)を付与

CloudFormationテンプレート

テンプレートは、事前に用意してもよいですし、CloudFormationの機能であるデザイナーを利用して作成することも可能です。

テンプレートはJSON形式かYAML形式で記載することができます。

補足

デザイナーを使用するにしろ、自前でテンプレートを用意するにしろ、各リソースを作成するには様々な設定値(プロパティ)があり、それらを設定する必要があります。(例: S3のバケット名)

以下のページに各リソースごとのプロパティがまとまっています。

注意して欲しいのが、現在(2021/09)時点で日本語のドキュメントがありません。頑張って英語のドキュメントを読みましょう。
そして、言語を日本語に設定していますとサイドバーにページ階層が表示されません。

AWS_resource_and_property_types_reference.png

ブラウザにて「ColudFormation S3」のような検索をすれば該当のページが表示されます。

使用方法

用語

前提条件

今回はサンプルとして、S3バケットを構築します。以下のテンプレートを使用します。
デザイナーは使用しないため、ファイルとして用意しておいてください

create_s3.yml
AWSTemplateFormatVersion: 2010-09-09
Resources:
  # https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html
  S3BucketForRedirect:
    Type: AWS::S3::Bucket
    Properties:
      BucketName: <バケット名>

※バケット名は各自で変更してください。

CloudFromation用のロールにはS3バケットを作成するための権限を付与してください。

操作しているリージョンにスタック及び、リソースが作成されるので、作成したいリージョンを選択してください。

実際に操作してみる

事前にテンプレートファイルを用意し、ローカル環境からアップロードする手順を紹介します。
また必要な項目以外は全てデフォルトの値を使用します。

スタックの作成

01.CreateStack.png

大項目 小項目 設定値 備考
テンプレートの準備 テンプレートの準備 テンプレートの準備完了
テンプレートの指定 テンプレートソース テンプレートファイルのアップロード
テンプレートファイルのアップロード create_s3.yml 上記にて作成したファイルを選択

スタックの詳細を指定

02.StackDetail.png

大項目 小項目 設定値 備考
スタックの名前 スタックの名前 testforstudy 同一リージョン内のスタックにて一意

スタックオプションの設定

03.StackOption.png

大項目 中項目 小項目 設定値 備考
アクセス許可 IAMロール-オプション 第1項目 IAMロール名 ロールの指定方法を選択
第2項目 MyStudyCloudFormationRole CloudFormation用のロールを選択

レビュー

各項目を確認します。

完成

04.CreateCoplete.png

このように「CREATE_COMPLETE」となれば、完成です。
失敗した場合、イベントタブにエラー内容が表示されるため、それにしたがって修正を加えてください。

使用してみた感想

  • テンプレートファイルを作成してしまえば、いくらでもリソースを構築が可能なのでとても便利。
  • テンプレートファイルを用意するのが手間。
    • AWSコンソールにて使用している値との紐付けが手間。

参考

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?