説明
本番 EC2 インスタンスの VPC とサブネットを明確にすると、セキュリティグループ、ルーティング、公開アクセスを管理できます。サブネットを省略すると、デフォルトのサブネットが選ばれたり、環境によっては作成に失敗したりする場合があります。現在の EC2 インスタンスは VPC 内で動くため、省略を VPC 未使用と解釈してはいけません。
想定される影響
- インスタンスが意図しないネットワークに配置されたり、作成に失敗したりする場合があります。
- セキュリティグループ、ルーティング、パブリック IP 設定が組織のアクセス方針に合わない場合があります。
対処方法
- 作成タスクの
vpc_subnet_idで意図したサブネットを選び、実際に属する VPC を確認してください。 - サブネット、セキュリティグループ、ルーティング、パブリック IP 割り当てを併せて管理してください。テスト用と本番用ネットワークの分離要件も確認してください。
例
過去の amazon.aws.ec2 モジュールに対応するコレクションを前提とします。実際の AMI、キー、対象 VPC の webserver セキュリティグループとサブネットが必要です。両方ともパブリック IP 割り当てを要求するため、非公開デプロイを示す例ではありません。
変更前
yaml
- name: EC2 인스턴스 생성
amazon.aws.ec2:
key_name: mykey
instance_type: t2.micro
image: "{{ ec2_image_id }}"
wait: yes
group: webserver
count: 3
assign_public_ip: yes
サブネットを明示せず、既定値と環境に依存します。作成したインスタンスの実際の配置先を確認してください。
変更後
yaml
- name: EC2 인스턴스 생성
amazon.aws.ec2:
key_name: mykey
instance_type: t2.micro
image: "{{ ec2_image_id }}"
wait: yes
group: webserver
count: 3
vpc_subnet_id: subnet-29e63245
assign_public_ip: yes
実際に使用するサブネット ID を指定します。そのサブネットのルーティングとセキュリティグループのアクセス範囲も確認する必要があります。