前のパートに戻る 完了して次のパートへ  

  3-2 プライベートサブネットの作成

「流れ」で説明した プライベートサブネットの作成 を行います。

本パートの目標


本パートでは前章で作成した VPC に、プライベートサブネット を追加 する方法を学びます。

また、AWS CloudFormation を使った 変更セットの作成方法 も学びます。

設定情報


追加するサブネットの設定情報です。

サブネット の CIDRブロック は VPC で設定した 10.0.0.0/16 の中で設定する必要があります。

VPC が1つのネットワークになるため、サブネット間でIPアドレスが重ならないように注意しましょう。

  • 追加サブネット1

  • 追加サブネット2

テンプレートファイルの作成


vpc.yaml に、下記のようにコードを追記してください。

2つのプライベートサブネットを作成するために 論理ID が tpSubnet02a で subnet02atpSubnet03a で subnet03a を作成しています。

また、それぞれのサブネットに対し、AWS::EC2::RouteTable でルートテーブルを作成し、 AWS::EC2::SubnetRouteTableAssociation で関連付けています。

スタックの変更


前章では スタックの更新 を行いました。

ですが、通常の更新はまず 変更セットの作成 を行うようにしてください。 これを行うことで、スタックを更新する際に影響するリソースを確認できます。

コマンドラインでの操作

AWS CLI を利用の場合は以下を実行してください。

・テンプレートの検証

$ aws cloudformation validate-template --template-body file://vpc.yaml

・変更セットの作成

$ aws cloudformation create-change-set --stack-name techpit --template-body file://vpc.yaml --change-set-name addSubnet  --profile techpit

・変更セットの確認

$ aws cloudformation describe-change-set --change-set-name addSubnet --stack-name techpit --profile techpit

上記のコマンドを実行すると、ターミナルに以下のような実行結果が表示されます。

$ aws cloudformation describe-change-set --change-set-name addSubnet --stack-name techpit --profile techpit
{
    "Changes": [
        {
            "Type": "Resource",
            "ResourceChange": {
                "Action": "Add",
                "LogicalResourceId": "tpRouteTable02a",
                "ResourceType": "AWS::EC2::RouteTable",
                "Scope": [],
                "Details": []
            }
        },
        {
            "Type": "Resource",
            "ResourceChange": {
                "Action": "Add",
                "LogicalResourceId": "tpRouteTable03",
                "ResourceType": "AWS::EC2::RouteTable",
                "Scope": [],
                "Details": []
            }
        },
        {
            "Type": "Resource",
            "ResourceChange": {
                "Action": "Add",
                "LogicalResourceId": "tpRouteTableAssociation02a",
                "ResourceType": "AWS::EC2::SubnetRouteTableAssociation",
                "Scope": [],
                "Details": []
            }
        },
        {
            "Type": "Resource",
            "ResourceChange": {
                "Action": "Add",
                "LogicalResourceId": "tpRouteTableAssociation03",
                "ResourceType": "AWS::EC2::SubnetRouteTableAssociation",
                "Scope": [],
                "Details": []
            }
        },
        {
            "Type": "Resource",
            "ResourceChange": {
                "Action": "Add",
                "LogicalResourceId": "tpSubnet02a",
                "ResourceType": "AWS::EC2::Subnet",
                "Scope": [],
                "Details": []
            }
        },
        {
            "Type": "Resource",
            "ResourceChange": {
                "Action": "Add",
                "LogicalResourceId": "tpSubnet03a",
                "ResourceType": "AWS::EC2::Subnet",
                "Scope": [],
                "Details": []
            }
        }
    ],
    "ChangeSetName": "addSubnet",
    "ChangeSetId": "arn:aws:cloudformation:ap-northeast-1:777777777777:changeSet/addSubnet/f453cd20-99e1-4725-ae90-9e8d161aef34",
    "StackId": "arn:aws:cloudformation:ap-northeast-1:777777777777:stack/techpit/b6ceaec0-6d93-11ea-8857-0a50f89864ca",
    "StackName": "techpit",
    "Description": null,
    "Parameters": null,
    "CreationTime": "2020-03-24T06:46:22.154000+00:00",
    "ExecutionStatus": "AVAILABLE",
    "Status": "CREATE_COMPLETE",
    "StatusReason": null,
    "NotificationARNs": [],
    "RollbackConfiguration": {},
    "Capabilities": [],
    "Tags": null
}

・変更セットの反映

$ aws cloudformation execute-change-set --change-set-name addSubnet --stack-name techpit --profile techpit

AWSマネジメントコンソールでの操作

AWSマネジメントコンソール を使ってスタックを変更する場合は以下の手順で実行します。

変更セットの作成

スタック名(ここではtechpit) を選択し、スタックアクション の 既存スタックの変更セットを作成 をクリックします。

ステップ1:テンプレートの指定

前提条件 - テンプレートの準備 で 既存テンプレートを置き換える を選択します。

次に テンプレートの指定 で テンプレートのアップロード を選択し、ファイルの選択 から先ほど修正したテンプレートファイルをアップロードします。

アップロードが完了したら「次へ」をクリックします。

ステップ2:スタックの詳細を指定

ここは何も設定しなくて大丈夫です。そのまま「次へ」をクリックします。

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

同様に何も設定しなくて大丈夫です。そのまま「次へ」をクリックします。

ステップ4:レビュー

内容を確認し、問題なければ「スタックの作成」をクリックします。 すると以下のように 変更セット名 を入力するポップアップが現れますが、そのまま「変更セットの作成」をクリックして作成します。

CREATE_COMPLETE へ変わったら作成完了です。

リソースが追加される場合はアクションが Add となります。他に Modify と Delete のアクションがあります。

変更 のところに変更内容が表示されます。

スタックの更新

変更内容に問題なければ 実行 をクリックして完了です。

確認


  1. Amazon VPCコンソール の サブネット を選択します。
  2. Name が techpit2a と techpit3a のサブネットが作成されているのを確認します。
  3. 作成されたサブネットを選択し、テンプレートの内容が設定されていることを確認しましょう。

4.Amazon VPCコンソール の ルートテーブル を選択します。

5.Name が techpit02a と techpit03 のルートテーブルが作成されているのを確認します。

6.作成されたルートテーブルを選択し、テンプレートの内容が設定されていることを確認しましょう。


まとめ


  • ネットワークを3層に分けて不要なインターネット通信を減らす。
  • スタックを更新する際は事前に 変更セット を作成する。
  • 変更セット を作成したら アクション を確認する。

以上で今回のパートは終了です。

次回は NATゲートウェイの作成 を行います。

議論

0 質問

このコースの評価は?