По порядку через CLI:
aws ec2 run-instances --image-id $AWS_IMAGE --count 1 --instance-type $AWS_INSTANCE_TYPE --key-name $AWS_KEY_NAME --security-group-ids "$SG_ID" --subnet-id "$SUBNET_ID" --private-ip-address $AWS_GATEWAY_IP
aws ec2 create-network-interface --subnet-id $SEC_SUBNET_ID --groups $SG_ID --private-ip-address $AWS_GATEWAY_SEC_IP
aws ec2 attach-network-interface --network-interface-id $SEC_NIC_ID --instance-id $AWS_GATEWAY_ID --device-index 1
Когда я получаю доступ через ssh к экземпляру EC2, вторая сетевая карта ВЫКЛЮЧЕНА, если я включаю ее вручную, у нее нет своего частного IP-адреса, и я также должен установить его вручную.
Как я могу включить дополнительный сетевой адаптер по умолчанию?
До сих пор единственное решение, которое мне удалось найти, - это настроить интерфейс вручную прямо на машине:
# sudo ifconfig eth1 up
# sudo ifconfig eth1 10.1.1.x netmask 255.255.255.0
Первая команда - включить интерфейс, вторая - назначить ему IP-адрес. На данный момент я назначил тот же IP-адрес, который Amazon автоматически назначал сетевой карте, я не знаю, вызовет ли установка другого IP-адреса проблемы с согласованностью.
Вы должны сами настроить интерфейсы в Ubuntu. Несколько интерфейсов, все с использованием DHCP (а иногда и с несколькими назначенными адресами на интерфейс), не настраиваются сами по себе, и нечего добавлять маршруты политики, которые вам нужны, чтобы трафик выходил на правильные интерфейсы.
Amazon Linux делает это автоматически с помощью пакета ec2-net-tools.
Очевидно, это было перенесено для совместимости с Ubuntu, или, по крайней мере, в настоящее время предпринимаются попытки сделать это: https://github.com/ademaria/ubuntu-ec2net
Или вы можете запустить инстанс Amazon Linux и перепроектировать выполняемые им операции.