Я создал кластер ECS, сервис AWS ECS с определением задачи 1 ECS, в котором есть контейнер, указывающий на этот простой образ докера это приветственное изображение Nginx для тестирования.
Теперь я хочу сделать это общедоступным в Интернете, и я хотел бы использовать Cloudfront.
Как я могу подключить Cloudfront для обслуживания контента из изображения?
Прежде всего вам нужно создать Балансировщик нагрузки приложений (ALB) с Слушатель и Целевая группа. Затем вы зарегистрируйте свой сервис ECS в целевой группе ALB. Это откроет доступ к контейнеру Nginx в Интернете через ALB.
Причины этого:
Контейнеры в службе ECS можно остановить и перезапустить, после чего они получат новый IP-адрес. Сервис может автоматически регистрировать вновь запущенные контейнеры в ALB.
Вы можете отключить SSL (HTTPS) на ALB с помощью сертификата, выданного Amazon Certificate Manager (ACM), без необходимости иметь дело с сертификатами SSL на уровне контейнера.
Вы можете запускать свои контейнеры с помощью Частный IP адреса в Частная подсеть. Только ALB должен находиться в публичной подсети.
Как только у вас есть ALB + ECS настроить и работать можно добавить Облачный фронт к смеси. Это сообщение в блоге есть пара вариантов, как ограничить доступ к ALB только из CloudFront, в частности мне нравится Вариант 2 - установка настраиваемый заголовок на стороне CF и проверка в ALB.
Надеюсь, это поможет :)