Я создал нижеприведенную инфраструктуру для использования с AWS Fargate.
ECS управляет контейнерами в частных подсетях, а трафик направляется к ним через ALB с выходом в Интернет через публичные подсети.
Доступ в Интернет к контейнерам в частных подсетях контролируется через шлюзы NAT.
Я создал git-репо, который демонстрирует проблему под рукой
https://github.com/GreenyMcDuff/aws-fargate-public
Предупреждение: запуск этого
будет стоить вам денег
Требуется Terraform v0.11.7 или выше
Вот правила группы безопасности:
alb-sg
+----------------+----------+------+------------+
| Ingress/Egress | Protocol | Port | Source |
+----------------+----------+------+------------+
| Ingress | TCP | 80 | 0.0.0.0/0 |
| Egress | All | All | 0.0.0.0/0 |
+----------------+----------+------+------------+
ecs-tasks-sg
+----------------+----------+---------+-----------+
| Ingress/Egress | Protocol | Port | Source |
+----------------+----------+---------+-----------+
| Ingress | TCP | 80 | 0.0.0.0/0 |
| Ingress | TCP | 1-65535 | alb-sg-id |
| Egress | All | All | 0.0.0.0/0 |
+----------------+----------+---------+-----------+
А вот таблицы маршрутов
открытая таблица маршрутов
+-------------+--------+
| Destination | Target |
+-------------+--------+
| 10.0.0.0/16 | local |
| 0.0.0.0/0 | igw-id |
+-------------+--------+
таблица приватных маршрутов
+-------------+--------+
| Destination | Target |
+-------------+--------+
| 10.0.0.0/16 | local |
| 0.0.0.0/0 | nat-id |
+-------------+--------+
Так что, кажется, почти все работает.Контейнер, который я запускаю - это изображение httpd:2.4
из концентратора докеров.
- Образ успешно загружен
- Контейнер запускается и переходит в состояние
RUNNING
штрафа. - Проверка работоспособности elb проходит
- Я запустил экземпляр windows EC2 в моей общедоступной подсети, перешел на него и просмотрел ip-контейнеры в Internet Explorer, и я получил страницу, как и ожидалось
Я работаю в предположении, что это проблема маршрутизации или группы безопасности из-за вышеуказанных пунктов.
Проблема в том, что когда я пытаюсь просмотреть сайт,при работе с контейнером, нажав DNS-имя Application Load Balancers (xxxx.AWS_REGION.elb.amazonaws.com
), я получаю сообщение об ошибке «Этот сайт недоступен».
Любые объяснения причин, по которым это может происходить, были бы весьма
Пожалуйста, дайте мне знать, если какая-либо дополнительная информация будет полезна, и я сделаю все возможное, чтобы предоставить ее.