AWS: подключение к конечной точке VPC в Accepter VPC из задачи fargate в Requester VPC

У меня есть два VPC в одной учетной записи и в одном регионе, и. Я создал одноранговое соединение VPC между ними, где находится принимающий и запрашивающий.

содержит несколько конечных точек интерфейса для доступа к сервисам AWS (ECR, SSM, журналы) без общедоступного IP-адреса (который отлично работает).

Теперь я хотел бы запустить задачу Fargate, у которой также нет общедоступного IP-адреса, надеясь, что я смогу использовать одноранговое соединение для доступа к требуемым конечным точкам в VPC-A, но я не могу заставить его работать.

Когда я начинаю фаргейт-задачу в VPC-B, Я получаю CannotPullContainerError с сообщением:

запрос отменен при ожидании соединения (превышено время ожидания Client.Timeout при ожидании заголовков)

указывая, что конечная точка не может быть достигнута.

Однако, когда я запускаю анализ достижимости, используя эластичный сетевой интерфейс той же задачи, что и источник, и желаемую конечную точку VPC в качестве назначения, он возвращает Reachable результат с ожидаемым путем (идентификаторы отредактированы):

Я думаю, что мне где-то не хватает какой-то конфигурации, но где? Или это вообще возможно?

1 ответ

Думает DNS.

Ваша служба fargate должна направлять com.amazonaws.eu-west-1.ecr.dkr и т. Д. На IP-адрес в vpc-b, а не через интернет-шлюз.

Я думаю, что когда вы создаете конечную точку и включаете для нее DNS в vpc-a, она создает частную размещенную зону с такой записью:

com.amazonaws.eu-west-1.ecr.dkr = [ip.address.1, ip.address.2]

Каждая из записей в массиве - это IP-адрес созданной вами конечной точки интерфейса. Частная размещенная зона присоединена к VPC-A, но скрыта от вас, поэтому вы не можете просто присоединить ее к VPC-B.

Я не думаю, что вам не хватает какой-либо прямой конфигурации, т.е. намерение состоит в том, чтобы конечная точка интерфейса работала в рамках одного vpc.

Однако есть способы заставить его работать с vpc-b. Это непроверенные, немного взломанные, возможно, не стоит усилий, но могут, может быть, сработают.

Опция 1:

Создайте частный хостинг, например, для домена com.amazonaws.eu-west-1.ecr.dkr и прикрепите его к vpc-b. Создайте запись A на вершине зоны с несколькими значениями для каждого из IP-адресов в vpc-a для вашего интерфейса.

Вам нужно будет повторить это для всех необходимых интерфейсов, что может быть немного утомительно. Теоретически DNS сначала разрешит эту запись и направит ее через пиринговое соединение на IP-адрес интерфейса.

Вариант 2.

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-hostentry.html

Вы можете попробовать добавить запись, например, для:

com.amazonaws.eu-west-1.ecr.dkr = ip.address.1

Вы можете добавить только один IP-адрес для данного домена, но теоретически задача должна направлять этот трафик через одноранговое соединение с интерфейсом.

Предполагается, что ваша политика конечной точки интерфейса и группа безопасности не будут блокировать сетевой трафик.

Опять же, это может не сработать, но может указать вам направление, в котором находятся ваши проблемы, надеюсь, в любом случае

Другие вопросы по тегам