AWS CloudFormation練習帖:VPCを作ってみる

公開日:2019-07-09
最終更新:2019-07-09

何をする?

  • AWS CloudFormationを使ってAmazon VPCを作ってみます
    • 今回は、こんな感じの何の変哲もないただのVPCを作ります

前提条件

  • AWSアカウントは開設済み
  • アジアパシフィック(東京)リージョンを利用
  • VPCは未作成(デフォルトVPCのみ)
  • テンプレートはGUIで作れる(らしい)デザイナーを使わずにYAMLをポチポチ書いて作ってみます
    • JSONでも書けますが、JSONはコメントが書けないのでYAMLにします

やってみた

テンプレートの作成

何はなくともテンプレートが必要なのでテンプレートを作成します

# ここはお決まり  
AWSTemplateFormatVersion: "2010-09-09"  
# テンプレートについての説明  
Description: Create VPC  
# ここから作成するリソースについての記述  
Resources:  
  MyVPC:  
    # リソースのタイプを指定  
    Type: AWS::EC2::VPC  
    # リソースのプロパティを指定  
    Properties:  
      # IPv4 CIDR  
      CidrBlock: 10.0.0.0/16  

実行

  • マネジメントコンソール > サービス > CloudFormation
  • スタック -> スタックの作成
    • ステップ 1:ステップテンプレートの指定
      • 前提条件 - テンプレートの準備:「テンプレートの準備完了」を選択
      • テンプレートの指定:「テンプレートファイルのアップロード」を選択し、作成したYAMLをアップロード
    • ステップ 2:スタック詳細の指定
      • スタックの名前:スタック(テンプレートから作成される環境群)の名前を指定
      • パラメータ:今回はテンプレートで定義していないので設定無し
    • ステップ 3:スタックオプションの指定
      「タグ」「アクセス許可」「スタックポリシー」「ロールバック設定」「通知オプション」「スタックの作成オプション」などが指定できますが今回は全てデフォルトのままにしておきます
    • ステップ 4:確認
      ここまでの設定内容が表示されるので内容を確認して「スタックの作成」
  • CloudFormationが実行される
    • ステータスが「CREATE_IN_PROGRESS」から「CREATE_COMPLETE」になれば作成完了

作成されたリソースを確認

  • マネジメントコンソール > サービス > VPC
    CloudFormationのテンプレートで指定した通り、CIDRが10.0.0.0/16のVPCが作成されています

スタックを削除

  • マネジメントコンソール > サービス > CloudFormation
  • 削除対象のスタックを選択 > 削除する
    • 確認メッセージ > スタックを削除する

      確認メッセージに書かれている通り、スタックリソース(テンプレートによって作成された環境群)が全て削除されます
    • ステータスが「DELETE_IN_PROGRESS」から「DELETE_COMPLETE」になれば削除完了

リソースが削除されたかを確認

  • マネジメントコンソール > サービス > VPC
    確かにCIDRが10.0.0.0/16のVPCが消えています

おまけ

VPCで指定できるプロパティ

エラーが発生した場合はどうなるか

  • テンプレートのフォーマットに誤りがある場合

    # ここはお決まり  
    AWSTemplateFormatVersion: "2010-09-09"  
    # テンプレートについての説明  
    Description: Create VPC  
    # ここから作成するリソースについての記述  
    Resources:  
    MyVPC:  
      # リソースのタイプを指定  
      Type: AWS::EC2::VPD     ←正しくは、AWS::EC2::VPC  
      # リソースのプロパティを指定  
      Properties:  
        # IPv4 CIDR  
        CidrBlock: 10.0.0.0/16  

    テンプレートのフォーマットエラーが検知され実行できません

  • フォーマットエラーではないけどエラーになるテンプレートの場合

    # ここはお決まり  
    AWSTemplateFormatVersion: "2010-09-09"  
    # テンプレートについての説明  
    Description: Create VPC  
    # ここから作成するリソースについての記述  
    Resources:  
    MyVPC:  
      # リソースのタイプを指定  
      Type: AWS::EC2::VPC  
     #  IPv4 CIDRが未指定  

    実行中にエラーとなりロールバック(作成中のリソースが削除)されます

分かったこと

  • 同じような構成だったらテンプレートを作っておくと楽になりそう
  • 実務で利用するならパラメータとかを活用しないと厳しそう

メモ(今回気になったこと)

  • スタックオプションの指定
  • クイック作成リンク
  • 変更セットの作成
記事が少しでもいいなと思ったらクラップを送ってみよう!
0
+1
AWSやAzureについて勉強したことをつらつらと。

よく一緒に読まれている記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる

技術ブログをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

技術ブログを開設する

Qrunchでアウトプットをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

Markdownで書ける

ログ機能でアウトプットを加速

デザインのカスタマイズが可能

技術ブログ開設

ここから先はアカウント(ブログ)開設が必要です

英数字4文字以上
.qrunch.io
英数字6文字以上
ログインする