🙆‍♀️

AWS CLIでサブネットを作成

2023/08/03に公開

AWS CLIを使ってVPC内にサブネットを作成する

はじめに

AWSの仮想プライベートクラウド(VPC)は、AWSクラウド内で論理的に隔離されたプライベートネットワーク環境を提供します。この記事では、AWS CLIを使用してVPC内に新しいサブネットを作成し、その詳細を表示し、そしてサブネットを削除する方法をご紹介します。AWS CLIを用いることで、GUIを使わずに、スクリプトを通じてAWSのリソースを管理することが可能になります。

構成図

必要なパラメータ

このプロセスでは、以下のパラメータが必要になります:

パラメータ 説明
VPCの名前 既存のVPCの名前が必要です。このVPC内に新しいサブネットを作成します。
使用する可用性ゾーン AWSのリージョン内の特定の可用性ゾーンを指定します。ここでは、例として東京リージョンの 'ap-northeast-1a' と 'ap-northeast-1c' を使用します。
割り当てるCIDRブロック サブネットに割り当てるIPアドレス範囲を指定します。これはCIDR表記で行います。

手順

以下の手順でVPC内に新しいサブネットを作成します。

  1. サブネット作成

特定のVPCのIDを取得し、それを環境変数として格納します。VPCのIDは以下のコマンドで取得できます。

VPC_ID=$(aws ec2 describe-vpcs --filters "Name=tag:Name,Values=your-vpc-name" --query 'Vpcs[*].VpcId' --output text)

VPC内に新しいパブリックサブネットを作成します。このサブネットは特定の可用性ゾーンに配置され、特定のCIDRブロックが割り当てられます。また、サブネットには名前のタグが付けられます。以下のコマンドを実行することで新しいサブネットを作成できます。

aws ec2 create-subnet --vpc-id $VPC_ID --availability-zone ap-northeast-1a --cidr-block 10.0.0.0/24 --tag-specifications 'ResourceType=subnet,Tags=[{Key=Name,Value=${VPC_NAME}-public-subnet-a}]' --query 'Subnet.SubnetId' --output text > subnet-a-id.txt
  1. サブネット表示

作成したサブネットの詳細を表示します。これは以下のコマンドで実行できます。

aws ec2 describe-subnets --subnet-ids $SUBNET_A_ID
  1. サブネット削除

サブネットを削除します。これは以下のコマンドで実行できます。

aws ec2 delete-subnet --subnet-id $SUBNET_A_ID
  1. パブリックIPアドレスを自動取得

新規に作成したサブネットでパブリックIPアドレスを自動的に取得するように設定します。これは以下のコマンドで実行できます。

aws ec2 modify-subnet-attribute --subnet-id $SUBNET_A_ID --map-public-ip-on-launch

さらなるサブネットの作成

さらに、以下の手順で別のサブネットを作成します。

  1. AWS CLIを使用して新しいサブネットを作成します。このサブネットは先程作成したVPC内に作られます。
    使用するVPCのIDは環境変数 'VPC_ID' から取得します。
    このサブネットは 'ap-northeast-1a'(東京リージョンのAZ)に配置され、CIDRブロック(IPアドレス範囲)は10.0.0.0/24と指定しています。
    注意: CIDRブロックは環境によって適切な範囲に変更してください。
    また、このサブネットにはタグを設定し、その名前は'${VPC_NAME}-public-subnet-a'です。
    そして、このコマンドの出力(サブネットのID)は'Subnet.SubnetId'というクエリを使用して抽出し、テキスト形式で出力します。
aws ec2 create-subnet --vpc-id $VPC_ID --availability-zone ap-northeast-1a --cidr-block 10.0.0.0/24 --tag-specifications 'ResourceType=subnet,Tags=[{Key=Name,Value=${VPC_NAME}-public-subnet-a}]' --query 'Subnet.SubnetId' --output text > subnet-a-id.txt
  1. 'subnet-a-id.txt' ファイルからサブネットIDを読み込み、環境変数 'SUBNET_A_ID' に格納します。※変数に格納すると今後のリソースの作成に便利です。
SUBNET_A_ID=$(<subnet-a-id.txt)
  1. 同様に、別のサブネットを作成します。このサブネットも先程作成したVPC内に作られ、'ap-northeast-1c'(東京リージョンのAZ)に配置されます。
    CIDRブロックは10.0.1.0/24と指定しています。注意: CIDRブロックは環境によって適切な範囲に変更してください。
    また、このサブネットにはタグを設定し、その名前は'${VPC_NAME}-public-subnet-c'です。
aws ec2 create-subnet --vpc-id $VPC_ID --availability-zone ap-northeast-1c --cidr-block 10.0.1.0/24 --tag-specifications 'ResourceType=subnet,Tags=[{Key=Name,Value=${VPC_NAME}-public-subnet-c}]' --query 'Subnet.SubnetId' --output text > subnet-c-id.txt
  1. 'subnet-c-id.txt' ファイルからサブネットIDを読み込み、環境変数 'SUBNET_C_ID' に格納します。※変数に格納すると今後のリソースの作成に便利です。
SUBNET_C_ID=$(<subnet-c-id.txt)

結論

AWS CLIを使用してVPC内にサブネットを作成し、表示し、削除することで、AWSリソースの管理がより簡単になります。また、パブリックIPアドレスを自動的に取得する設定を追加することで、新たに作成されるインスタンスに対して、起動時にパブリックIPが自動的に割り当てられます。これらの操作を理解し、適切に使用することで、AWS環境のネットワーキング設定と管理がより簡単になります。

参考

Discussion