💭
ECS ハンズオン
作るもの
リージョンを環境変数に設定しておく
export MY_REGION_ID_1="ap-northeast-1"
export MY_AZ_ID_1="ap-northeast-1a"
export MY_AZ_ID_2="ap-northeast-1c"
VPC の作成
aws ec2 create-vpc \
--cidr-block 10.0.0.0/16
export MY_VPC_ID_1=$(aws ec2 describe-vpcs \
--filters "Name=cidr-block,Values=10.0.0.0/16" \
--query "Vpcs[].VpcId" \
--output text) \
&& echo $MY_VPC_ID_1
aws ec2 create-tags \
--resources $MY_VPC_ID \
--tags Key=Name,Value=my-vpc
aws ec2 describe-vpcs \
--filters "Name=vpc-id,Values=$MY_VPC_ID_1"
パブリックサブネット①の作成
aws ec2 create-subnet \
--vpc-id $MY_VPC_ID \
--cidr-block 10.0.1.0/24 \
--availability-zone $MY_AZ_ID_1
export MY_PUBLIC_SUBNET_ID_1=$(aws ec2 describe-subnets \
--filters "Name=cidr-block,Values=10.0.1.0/24" \
--query "Subnets[].SubnetId" \
--output text) \
&& echo $MY_PUBLIC_SUBNET_ID_1
aws ec2 create-tags \
--resources $MY_PUBLIC_SUBNET_ID_1 \
--tags Key=Name,Value=my-my-public-subnet-1
aws ec2 describe-subnets \
--filters "Name=subnet-id,Values=$MY_PUBLIC_SUBNET_ID_1"
パブリックサブネット②の作成
aws ec2 create-subnet \
--vpc-id $MY_VPC_ID \
--cidr-block 10.0.2.0/24 \
--availability-zone $MY_AZ_ID_2
export MY_PUBLIC_SUBNET_ID_2=$(aws ec2 describe-subnets \
--filters "Name=cidr-block,Values=10.0.2.0/24" \
--query "Subnets[].SubnetId" \
--output text) \
&& echo $MY_PUBLIC_SUBNET_ID_2
aws ec2 create-tags \
--resources $MY_PUBLIC_SUBNET_ID_2 \
--tags Key=Name,Value=my-my-public-subnet-2
aws ec2 describe-subnets \
--filters "Name=subnet-id,Values=$MY_PUBLIC_SUBNET_ID_2"
プライベートサブネット①の作成
aws ec2 create-subnet \
--vpc-id $MY_VPC_ID \
--cidr-block 10.0.3.0/24 \
--availability-zone $MY_AZ_ID_1
export MY_PRIVATE_SUBNET_ID_1=$(aws ec2 describe-subnets \
--filters "Name=cidr-block,Values=10.0.3.0/24" \
--query "Subnets[].SubnetId" \
--output text) \
&& echo $MY_PRIVATE_SUBNET_ID_1
aws ec2 create-tags \
--resources $MY_PRIVATE_SUBNET_ID_1 \
--tags Key=Name,Value=my-private-subnet-1
aws ec2 describe-subnets \
--filters "Name=subnet-id,Values=$MY_PRIVATE_SUBNET_ID_1"
プライベートサブネット②の作成
aws ec2 create-subnet \
--vpc-id $MY_VPC_ID \
--cidr-block 10.0.4.0/24 \
--availability-zone $MY_AZ_ID_2
export MY_PRIVATE_SUBNET_ID_2=$(aws ec2 describe-subnets \
--filters "Name=cidr-block,Values=10.0.4.0/24" \
--query "Subnets[].SubnetId" \
--output text) \
&& echo $MY_PRIVATE_SUBNET_ID_2
aws ec2 create-tags \
--resources $MY_PRIVATE_SUBNET_ID_2 \
--tags Key=Name,Value=my-private-subnet-2
aws ec2 describe-subnets \
--filters "Name=subnet-id,Values=$MY_PRIVATE_SUBNET_ID_2"
コンテナ用セキュリティグループの作成
aws ec2 create-security-group \
--group-name my-sg-container \
--description "my sg for container" \
--vpc-id $MY_VPC_ID_1
MY_SG_ID_CONTAINER=$(aws ec2 describe-security-groups \
--filters "Name=group-name,Values=my-sg-container" "Name=vpc-id,Values=$MY_VPC_ID_1" \
--query 'SecurityGroups[0].GroupId' \
--output text) \
&& echo $MY_SG_ID_CONTAINER
セキュリティグループにインバウンドルールの追加
aws ec2 authorize-security-group-ingress \
--group-id $MY_SG_ID_CONTAINER \
--protocol tcp \
--port 80 \
--cidr 10.0.0.0/16
CloudMap に名前空間を作成
VPC を指定して、プライベートな名前空間を作成する
aws servicediscovery create-private-dns-namespace \
--name httpd-service-discovery.internal \
--vpc $MY_VPC_ID_1
環境変数に保存
export MY_NAMESPACE_1=$(aws servicediscovery list-namespaces \
--filters Name="TYPE",Values="DNS_PRIVATE" \
--query "Namespaces[?Name=='httpd-service-discovery.internal'].Id" \
--output text)
echo $MY_NAMESPACE_1
上記操作でRoute53にもホストゾーンが作成されていることを確認する
aws route53 list-hosted-zones-by-vpc \
--vpc-id $MY_VPC_ID_1 \
--vpc-region $MY_REGION_ID_1
Discussion