2

Я пытаюсь включить функцию лямбда VPC для ElasticCache для доступа к DynamoDB. Я знаю, для этого мне нужно настроить NAT-шлюз. Однако я не могу заставить его работать. Моя приватная подсеть находится в 172.31. . область.Как подключить функцию AWS Lambda внутри VPC к общественным ресурсам, таким как DynamoDB?

Эти шаги я следующие:

  1. Создать подсеть с диапазоном внутрибрюшинно в 10.0.0.0.
  2. Создайте публичный VPC в том же диапазоне IP, о котором говорилось выше.
  3. Создание общедоступного интернет-шлюза в публичном VPC.
  4. Создайте общедоступную таблицу маршрутов, которая не является основной таблицей маршрутов и прикрепляет к ней публичную подсеть. Затем добавьте маршрут для 0.0.0.0/0 к общедоступному интернет-шлюзу, созданному выше.
  5. Создайте NAT-шлюз в общедоступной подсети. Этот NAT получает Elastic IP и частный IP в 10. .. * Область.

Теперь у меня есть 3 таблицы маршрутов, два для моих публичных подсетей (10.0.0.0) и один существующих для моей частной подсети (172.31.0.0), которая является частью моей личной VPC.

У моей частной таблицы маршрутов есть маршрут для 0.0.0.0/0 для моего частного интернет-шлюза.

Мне кажется, мне нужно изменить этот маршрут, чтобы указать на мой публичный шлюз NAT, однако я не могу этого сделать, поскольку частный IP-адрес моего NAT лежит в диапазоне 10.0.0.0. Я смущен в этом вопросе о том, как действовать. Я попытался создать NAT-шлюз в частной подсети и перенаправить маршрут к нему, но он тоже не работает. Что я упускаю?

+2

Ваш маршрут по вашей частной подсети должен указывать на [Идентификатор шлюза NAT] (http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-nat-gateway.html#nat-gateway-create- маршрут), а не Интернет-шлюз. –

+0

Как я уже упоминал, моя личная подсеть не показывает мой NAT в списке опций для пересылки. – Adi

+0

Просто не используйте ElastiCache вместе с DynamoDB, пока Amazon не выпустит хорошее решение для этого, так как невероятно болезненно настроить его правильно прямо сейчас. Мы закончили тем, что использовали redislabs.com для наших лямбдов. –

ответ

0

Ошибка, которую я делал, создавала два VPC, один для частной подсети и один для публики. AWS VPC не может связываться друг с другом, пока не будет включен Peering.

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

0

Глупый, но вы случайно смешаете VPC по умолчанию (172.31 ...) и созданный вами VPC (10.0 ...). Итак, если вы видите таблицу маршрутов по умолчанию для VPC, она фактически предназначена для подсети (ы) по умолчанию, которая является общедоступной, кстати!