ECS, использующий режим мостовой сети, не может получить доступ к Интернету - PullRequest
0 голосов
/ 22 января 2019

У меня есть приложение Java, работающее в контейнере Docker на ECS. Недавно возникло новое требование для доступа к внешнему интернету. Это не было проблемой в наших средах разработки, но однажды внезапно экземпляр Docker не смог получить доступ к Интернету.

Немного покопавшись, я изменил сетевой режим с «моста» на «хост», что решило проблему. Дело в том, что я не хочу использовать режим моста.

То, что я не могу понять, это то, почему это было бы по-разному в разных средах ... их определения задач и т. Д. Абсолютно одинаковы.

Я проверил группы безопасности. На самом деле, я проверил, что хост EC2 может получить доступ к Интернету. И в любом случае все, что устраняется тем, что работает в режиме «хост». Кроме того, экземпляр EC2 порождается из того же AMI, что и другие среды.

1 Ответ

0 голосов
/ 22 января 2019

Не могли бы вы проверить, есть ли у вас NAT-шлюз (VPC -> NAT-Gateway), назначенный той же подсети, что и экземпляр EC2 (частная подсеть), и интернет-шлюз, назначенный общедоступной подсети?

Таблица маршрутов вашей частной подсети должна выглядеть следующим образом:

| Destination   | Target      |
| 10.20.0.0/16  | local       |
| 0.0.0.0/0     | nat-00d.... | 

Таблица маршрутов вашей общедоступной подсети должна выглядеть следующим образом:

| Destination   | Target      |
| 10.20.0.0/16  | local       |
| 0.0.0.0/0     | igw-046.... | 

.. при условии, что 10.20.8.0/21 является вашей общедоступной подсетью, а 10.20.16.0/21 - вашей частной подсетью.

Тогда у вас должно быть подключение к Интернету в вашей службе ECS в режиме невесты.

...