AWS Lambda в VPC с RDS и подключением к Интернету - PullRequest
0 голосов
/ 06 марта 2019

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

Для самой функции Lambda я создал отдельную частную подсеть, которая также разрешает трафик от шлюза NAT в таблице маршрутизации.Я назначил эту подсеть и VPC для функции Lambda в настройках Lambda.Подключение к Интернету работает нормально с этой конфигурацией, но я не могу получить доступ к базе данных.Вот почему я следовал этому посту (https://serverfault.com/questions/941886/connect-an-aws-lambda-function-triggered-by-api-gateway-to-aurora-serverless-mys) и добавил CIDR IP-адреса лямбда-подсети в группу безопасности экземпляров RDS (так называемый rds-launch-wizard).

Тем не менее, функция Lambdaможет взаимодействовать с общедоступным Интернетом, но не может подключиться к экземплярам RDS (время ожидания). У меня заканчиваются идеи, что здесь не так?

1 Ответ

1 голос
/ 06 марта 2019

Конфигурация должна быть:

  • A Публичная подсеть со шлюзом NAT (и, по определению, интернет-шлюз)
  • A Частная подсеть с экземпляром Amazon RDS
  • Та же или другая Частная подсеть , связанная с функцией Lambda
  • Частная подсеть (ы), настроенная с Таблица маршрутов с адресатом 0.0.0.0/0 для шлюза NAT

Затем рассмотрим группы безопасности:

  • A группа безопасностидля лямбда-функции (Lambda-SG), которая разрешает весь исходящий доступ
  • A группа безопасности для экземпляра RDS (RDS-SG), которая должна разрешать входящий доступ с Lambda-SGна соответствующем порту базы данных

То есть RDS-SG разрешает входящий трафик с Lambda-SG (по имени).В группе безопасности нет необходимости использовать CIDR.

Функция Lambda подключится к частной подсети через Elastic Network Interface (ENI) и сможет обмениваться данными как с экземпляром RDS (напрямую), так и с Интернетом (через шлюз NAT).

Обратите внимание, что вы не направляете «трафик от шлюза NAT».Скорее, вы направляете интернет-трафик на шлюз NAT.Также не существует такой вещи, как «таблицы маршрутизации экземпляров RDS», поскольку таблицы маршрутов связаны с подсетями , а не с RDS.

...