Как ждать завершения пользовательских данных EC2, запущенного в частной подсети? - PullRequest
0 голосов
/ 26 мая 2018

Я пишу шаблон формирования облака для подготовки экземпляра EC2 и хочу дождаться завершения пользовательских данных.

Я попытался использовать сигнал cfn, но он не работает, когда мой EC2 находится в частной подсети.

Получение ошибки тайм-аута на стороне клиента

1 Ответ

0 голосов
/ 26 мая 2018

cfn-signal требуется подключение к Интернету, напрямую или через устройство NAT или прокси, чтобы связаться с CloudFormation и доставить сигнал.Конечные точки, необходимые для работы этой функции, не находятся внутри вашего VPC.(Некоторые сервисы AWS поддерживают конечные точки VPC , но на момент написания данной статьи это не одна из них).

Ваши параметры:

Присоединение NAT-шлюза или Экземпляр NAT публичная подсеть в вашем VPC, а затем измените маршрут по умолчанию для частной подсети, чтобы он указывал на устройство NAT.Экземпляр NAT имеет более низкие эксплуатационные расходы, в то время как шлюз NAT поддерживает более высокую пропускную способность и встроенную избыточность и отказоустойчивость ... но если учитывать стоимость, экземпляр NAT на компьютере t2.nano будет более чем достаточным для этогоapplication.

Или создайте экземпляр EC2 в подсети, имеющей доступ к Интернету, используя HTTP-прокси, такой как squid , настроенный для подключения ваших экземпляров наружу, передавая --http-proxy аргумент cfn-signal с указанием адреса прокси-сервера в формате URL, например, --http-proxy http://172.32.1.10:3128.Также возможно создать кластер из таких прокси, но для этого необходимо использовать либо балансировщик сетевой нагрузки (NLB), либо ELB Classic в режиме TCP (не HTTP).Application Load Balancer (ALB) может использоваться с обратными прокси, но не поддерживает прямые прокси, и это приложение прямого прокси.

...