Toyokky's Tech Notes

ネットワーク系クラウドエンジニアとして学んだことの技術メモ。

CLIだけで構築: 02_VPC、サブネット

CLIだけで構築: 02_VPC、サブネット

本ページでは CLIだけで構築: 01_まとめ、構成図 へ記載した構成図の以下AWSリソースを、AWS CLIで構築します。

記事番号 リソース種別 VPC AZ 個別情報 Name CIDR
02 VPC 本番 1x - P1x-Vpc 10.0.0.0/16
02 サブネット 本番 1a パブリック P1a-Sub-Pub01 10.0.11.0/24
本番 1a プライベート P1a-Sub-Pri01 10.0.12.0/24
本番 1a プロテクト P1a-Sub-Pro01 10.0.13.0/24
本番 1c パブリック P1c-Sub-Pub01 10.0.21.0/24
本番 1c プライベート P1c-Sub-Pri01 10.0.22.0/24
本番 1c プロテクト P1c-Sub-Pro01 10.0.23.0/24

自宅のPC環境

  • Windows10 Home Ver21H1
    • AWS CLI: aws-cli/2.1.34 Python/3.8.8 Windows/10 exe/AMD64 prompt/off
      • -- profile default : 読み取り専用
      • -- profile aws_RW : 書き込み権限あり
        • ※ 誤操作防止のため、変更操作時のみ-- profileオプションを付けてます。
    • PowerShell: Ver7.1.4

注意書き

  • コマンド内の変数やパラメータやは検証で使用したものを記載しています。自身の環境に書き換えて使用してください。
  • 個人で検証しているため実行結果に責任は持てません。必ずご自身でも検証してから使用してください。

目次


VPCの作成

# VPC作成
${profile} = "aws_RW"
${vpc_name} = "P1x-Vpc"
${vpc_cidr} = "10.0.0.0/16"
${tag_env} = "Product"
${tag_system} = "HatenaBlog"

aws ec2 create-vpc `
    --profile ${profile} `
    --cidr-block ${vpc_cidr} `
    --instance-tenancy default `
    --tag-specifications "ResourceType=vpc, `
        Tags=[{Key=Name,Value=${vpc_name}}, `
            {Key=Env,Value=${tag_env}}, `
            {Key=System,Value=${tag_system}}]"

サブネットの作成

# 変数(共通利用)
${profile} = "aws_RW"
${tag_env} = "Product"
${tag_system} = "HatenaBlog"

# VPC-IDを変数へ格納する(共通利用)
${vpc_id} = aws ec2 describe-vpcs `
    --filters "Name=tag:Name,Values=${vpc_name}" `
    --query "Vpcs[].VpcId" `
    --output text


# -------------------------------------------
# サブネット作成: AZ-1a パブリック
${sub_name} = "P1a-Sub-Pub01"
${sub_cidr} = "10.0.11.0/24"
${az} = "ap-northeast-1a"

aws ec2 create-subnet `
    --profile ${profile} `
    --vpc-id ${vpc_id} `
    --availability-zone ${az} `
    --cidr-block ${sub_cidr} `
    --tag-specifications "ResourceType=subnet, `
        Tags=[{Key=Name,Value=${sub_name}}, `
            {Key=Env,Value=${tag_env}}, `
            {Key=System,Value=${tag_system}}]"


#"# -------------------------------------------
# サブネット作成: AZ-1a プライベート
${sub_name} = "P1a-Sub-Pri01"
${sub_cidr} = "10.0.12.0/24"
${az} = "ap-northeast-1a"

aws ec2 create-subnet `
    --profile ${profile} `
    --vpc-id ${vpc_id} `
    --availability-zone ${az} `
    --cidr-block ${sub_cidr} `
    --tag-specifications "ResourceType=subnet, `
        Tags=[{Key=Name,Value=${sub_name}}, `
            {Key=Env,Value=${tag_env}}, `
            {Key=System,Value=${tag_system}}]"


#"# -------------------------------------------
# サブネット作成: AZ-1a プロテクト
${sub_name} = "P1a-Sub-Pro01"
${sub_cidr} = "10.0.13.0/24"
${az} = "ap-northeast-1a"

aws ec2 create-subnet `
    --profile ${profile} `
    --vpc-id ${vpc_id} `
    --availability-zone ${az} `
    --cidr-block ${sub_cidr} `
    --tag-specifications "ResourceType=subnet, `
        Tags=[{Key=Name,Value=${sub_name}}, `
            {Key=Env,Value=${tag_env}}, `
            {Key=System,Value=${tag_system}}]"


#"# -------------------------------------------
# サブネット作成: AZ-1c パブリック
${sub_name} = "P1c-Sub-Pub01"
${sub_cidr} = "10.0.21.0/24"
${az} = "ap-northeast-1c"

aws ec2 create-subnet `
    --profile ${profile} `
    --vpc-id ${vpc_id} `
    --availability-zone ${az} `
    --cidr-block ${sub_cidr} `
    --tag-specifications "ResourceType=subnet, `
        Tags=[{Key=Name,Value=${sub_name}}, `
            {Key=Env,Value=${tag_env}}, `
            {Key=System,Value=${tag_system}}]"


#"# -------------------------------------------
# サブネット作成: AZ-1c プライベート
${sub_name} = "P1c-Sub-Pri01"
${sub_cidr} = "10.0.22.0/24"
${az} = "ap-northeast-1c"

aws ec2 create-subnet `
    --profile ${profile} `
    --vpc-id ${vpc_id} `
    --availability-zone ${az} `
    --cidr-block ${sub_cidr} `
    --tag-specifications "ResourceType=subnet, `
        Tags=[{Key=Name,Value=${sub_name}}, `
            {Key=Env,Value=${tag_env}}, `
            {Key=System,Value=${tag_system}}]"


#"# -------------------------------------------
# サブネット作成: AZ-1c プロテクト
${sub_name} = "P1c-Sub-Pro01"
${sub_cidr} = "10.0.23.0/24"
${az} = "ap-northeast-1c"

aws ec2 create-subnet `
    --profile ${profile} `
    --vpc-id ${vpc_id} `
    --availability-zone ${az} `
    --cidr-block ${sub_cidr} `
    --tag-specifications "ResourceType=subnet, `
        Tags=[{Key=Name,Value=${sub_name}}, `
            {Key=Env,Value=${tag_env}}, `
            {Key=System,Value=${tag_system}}]"

作成したAWSリソースの表示

# VPC
## すべて表示
aws ec2 describe-vpcs

## Nameタグを指定して表示
${vpc_name} = "P1x-Vpc"
aws ec2 describe-vpcs --filters "Name=tag:Name,Values=${vpc_name}"


# -------------------------------------------
# サブネット
## すべて表示
aws ec2 describe-subnets

## Nameタグを指定して表示
${sub_name} = "P1a-Sub-Pub01"
aws ec2 describe-subnets --filters "Name=tag:Name,Values=${sub_name}"


関連記事へのリンク