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.
Вы можете попробовать добавить запись, например, для:
com.amazonaws.eu-west-1.ecr.dkr = ip.address.1
Вы можете добавить только один IP-адрес для данного домена, но теоретически задача должна направлять этот трафик через одноранговое соединение с интерфейсом.
Предполагается, что ваша политика конечной точки интерфейса и группа безопасности не будут блокировать сетевой трафик.
Опять же, это может не сработать, но может указать вам направление, в котором находятся ваши проблемы, надеюсь, в любом случае