🔖
"AWS Hands-on for Beginners - Network編#1"をAWS CLIで構築する1
AWS Hands-on for Beginners - Network編#1 AWS上にセキュアなプライベートネットワーク空間を作成するを先日受講したが、さらに深い理解を得るためにAWS CLIで構築していく。
構成図
作業環境の構築
まず、AWS CLIを実行するための作業環境を構築をする。
VPCの作成
- 環境変数に東京リージョンを指定
export AWS_DEFAULT_REGION="ap-northeast-1"
- VPCのCIDRブロックとタグを変数に指定
VPC_TAG_NAME="handson"
VPC_CIDR="10.0.0.0/16"
TAG_SPECIFICATIONS="ResourceType=vpc,Tags=[{Key=Name,Value=${VPC_TAG_NAME}}]"
- VPCを作成
aws ec2 create-vpc \
--cidr-block ${VPC_CIDR} \
--tag-specifications ${TAG_SPECIFICATIONS}
- VPCが作成されたことを確認
aws ec2 describe-vpcs \
--filters Name=tag:Name,Values=${VPC_TAG_NAME} \
--query "Vpcs[].Tags[?Key == `Name`].Value" \
--output text
サブネットの作成
- VPC IDの指定
VPC_ID=$( \
aws ec2 describe-vpcs \
--filters Name=tag:Name,Values=${VPC_TAG_NAME} \
--query "Vpcs[].VpcId" \
--output text \
)
- サブネットのCIDRブロック、アベイラビリティゾーン、タグを指定
SUBNET_CIDR="10.0.1.0/24"
AZ_CODE="a"
AZ_NAME=${AWS_DEFAULT_REGION}${AZ_CODE}
SUBNET_TYPE="Public"
SUBNET_TAG_NAME=${SUBNET_TYPE}"-subnet-"${AZ_CODE}
SUBNET_TAG_SPECIFICATIONS="ResourceType=subnet,Tags=[{Key=Name,Value=${SUBNET_TAG_NAME}}]"
- サブネットの作成
aws ec2 create-subnet \
--vpc-id ${VPC_ID} \
--cidr-block ${SUBNET_CIDR} \
--availability-zone ${AZ_NAME} \
--tag-specifications ${SUBNET_TAG_SPECIFICATIONS}
- サブネットが作成されたことを確認
aws ec2 describe-subnets \
--filters Name=vpc-id,Values=${VPC_ID} \
Name=tag:Name,Values=${SUBNET_TAG_NAME} \
--query "Subnets[].Tags[?Key==`Name`].Value" \
--output text
サブネットを4つまとめて作成、確認、削除する
- サブネットを作成
subnet_cidrs=("10.0.1.0/24" "10.0.2.0/24" "10.0.11.0/24" "10.0.12.0/24")
az_codes=("a" "c" "a" "c")
subnet_tag_names=("Public-subnet-a" "Public-subnet-c" "Private-subnet-a" "Private-subnet-c")
for i in {0..3}
do
subnet_tag_specifications="ResourceType=subnet,Tags=[{Key=Name,Value=${subnet_tag_names[$i]}}]"
aws ec2 create-subnet \
--vpc-id ${VPC_ID} \
--cidr-block ${subnet_cidrs[$i]} \
--availability-zone ${AWS_DEFAULT_REGION}${az_codes[$i]} \
--tag-specifications ${subnet_tag_specifications}
done
- サブネットを確認
subnet_tag_names=("Public-subnet-a" "Public-subnet-c" "Private-subnet-a" "Private-subnet-c")
for i in {0..3}
do
aws ec2 describe-subnets \
--filters Name=vpc-id,Values=${VPC_ID} \
Name=tag:Name,Values=${subnet_tag_names[$i]} \
--query "Subnets[].Tags[?Key==`Name`].Value" \
--output text
done
- サブネットを削除
subnet_tag_names=("Public-subnet-a" "Public-subnet-c" "Private-subnet-a" "Private-subnet-c")
for i in {0..3}
do
SUBNET_ID=$( \
aws ec2 describe-subnets \
--filters Name=tag:Name,Values=${subnet_tag_names[$i]} \
--query "Subnets[].SubnetId" \
--output text \
)
aws ec2 delete-subnet --subnet-id ${SUBNET_ID}
done
参考
次回
Discussion