Я пытаюсь создать свой собственный хост-бастион для VPC и создал группу автоматического масштабирования с минимальными / максимальными значениями 1. В моих конфигурациях запуска я указываю следующее для пользовательских данных ec2:
#!
INSTANCE_ID=`/usr/bin/curl -s http://169.254.169.254/latest/meta-data/instance-id`
aws ec2 associate-address --instance-id $INSTANCE_ID --allocation-id eipalloc-my-eip-id --allow-reassociation
Цель этих пользовательских данных - немедленно связать Elastic IP-адрес с моим недавно созданным экземпляром EC2 - Я прочитал из других сообщений StackOverflow , что это должно быть явно сделано при использовании ASG.
Однако после того, как экземпляр ASG запускается и завершает инициализацию, я все еще не вижу Elastic IP в выводе моей консоли для экземпляра:
Я подтвердил, что пользовательские данные действительно используются экземпляром:
Я попытался заглянуть в системный журнал, чтобы увидеть, есть ли какие-либосообщения об ошибках во время инициализации, но сначала я не увидел ничего, что указывало бы на ошибку команды associate-address
(внутри /var/log/cloud-init-output
).
Edit: попытка отладки:
Однако затем я вручную связал Elastic IP с моим экземпляром, SSHed, и попытался выполнить команды пользовательских данных выше.Интересно, что когда я добрался до части aws ec2 associate-address
, я столкнулся с
Невозможно найти учетные данные.Вы можете настроить учетные данные, запустив «aws configure».
Это, как представляется, является корнем проблемы - мой профиль AWS не настроен.Однако у меня всегда было впечатление, что профиль экземпляра AWS по умолчанию настроен для вас с доступом к интерфейсу командной строки AWS, когда экземпляр завершает инициализацию.
Может ли кто-нибудь указать мне, почему мой пользовательданные для связывания эластичных IP-адресов могут работать неправильно?