Amazon VPCをAWS CLIで構築する手順③
はじめに
前回はセキュリティグループの作成を行いました。
今回は、インターネットゲートウェイの作成とアタッチをAWS CLIでやる手順を書きます。今回も「AWS Hands-on for Beginners」とJAWS-UG CLI専門支部のハンズオンで学んだことを基に書いています。
※注意
ハンズオンで学んだことを基にしてコマンド実行しながら書きますが、認識違いや補足などがありましたらご指摘いただけますと幸いです。
また、記載内容を参考にする場合は自己責任でお願いいたします。
前回の記事
本記事の作業環境と、VPCとサブネット、セキュリティグループの手順については、前回以前の記事を参照してください。
構成図
前回までに作成したVPCにインターネットゲートウェイをアタッチする形を目指します。
手順
1.インターネットゲートウェイの作成
①リージョンを環境変数に指定
VPCを作成するリージョンを環境変数に指定します。この手順では東京リージョンを指定します。
export AWS_DEFAULT_REGION='ap-northeast-1'
②各種変数の指定
インターネットゲートウェイのタグ名・タグ文字列を指定します。
インターネットゲートウェイタグ名
EC2_INTERNET_GATEWAY_TAG_NAME='handson-cli-igw'
タグ文字列
STRING_EC2_INTERNET_GATEWAY_TAG="ResourceType=internet-gateway,Tags=[{Key=Name,Value=${EC2_INTERNET_GATEWAY_TAG_NAME}}]" \
&& echo ${STRING_EC2_INTERNET_GATEWAY_TAG}
ResourceType=internet-gateway,Tags=[{Key=Name,Value=handson-cli-igw}]
③コマンド実行
以下のコマンドを実行して、インターネットゲートウェイを作ります。
aws ec2 create-internet-gateway \
--tag-specifications ${STRING_EC2_INTERNET_GATEWAY_TAG}
成功すると以下のように表示されます。
{
"InternetGateway": {
"Attachments": [],
"InternetGatewayId": "igw-xxxxxxxxxxxxxxxx",
"OwnerId": "xxxxxxxxxxxx",
"Tags": [
{
"Key": "Name",
"Value": "handson-cli-igw"
}
]
}
}
指定した名称でインターネットゲートウェイが作成されたことを確認します。
aws ec2 describe-internet-gateways \
--filters Name=tag:Name,Values=${EC2_INTERNET_GATEWAY_TAG_NAME} \
--query "InternetGateways[].Tags[].Value" \
--output text
成功していたら、インターネットゲートウェイタグ名が表示されます。
handson-cli-igw
2.インターネットゲートウェイをVPCにアタッチ
①リージョンを環境変数に指定
VPCを作成するリージョンを環境変数に指定します。この手順では東京リージョンを指定します。
export AWS_DEFAULT_REGION='ap-northeast-1'
②各種変数の指定
VPCタグ名とID、インターネットゲートウェイのタグ名とIDを変数に指定します。
VPCタグ名
EC2_VPC_TAG_NAME='handson-cli-vpc'
VPC ID
EC2_VPC_ID=$( \
aws ec2 describe-vpcs \
--filters Name=tag:Name,Values=${EC2_VPC_TAG_NAME} \
--query "Vpcs[].VpcId" \
--output text \
) \
&& echo ${EC2_VPC_ID}
インターネットゲートウェイタグ名
EC2_INTERNET_GATEWAY_TAG_NAME='handson-cli-igw'
インターネットゲートウェイID
EC2_INTERNET_GATEWAY_ID=$( \
aws ec2 describe-internet-gateways \
--filters Name=tag:Name,Values=${EC2_INTERNET_GATEWAY_TAG_NAME} \
--query "InternetGateways[].InternetGatewayId" \
--output text \
) \
&& echo ${EC2_INTERNET_GATEWAY_ID}
③コマンド実行
指定した名称でインターネットゲートウェイを作成します。
※成功しても何も返しません。
aws ec2 attach-internet-gateway \
--vpc-id ${EC2_VPC_ID} \
--internet-gateway-id ${EC2_INTERNET_GATEWAY_ID}
インターネットゲートウェイが指定のVPCにアタッチされているか確認します。
aws ec2 describe-internet-gateways \
--filters Name=tag:Name,Values=${EC2_INTERNET_GATEWAY_TAG_NAME} \
--query "InternetGateways[].Attachments[?VpcId==\`${EC2_VPC_ID}\`].VpcId" \
--output text
正しくアタッチされているとVPC IDを返します。
vpc-XXXXXXXXXXXXXXXXX
ここまでのまとめ
この記事ではインターネットゲートウェイの作成とVPCへのアタッチまでを書きました。
次回はルートテーブルの作成とサブネットの関連付け、インターネットへのルート登録を書きます。
※次の記事
Discussion