Доступ к приватным ресурсам в VPC

Бессерверные приложения с AWS Lambda

Claudio Canales

Senior DevOps Engineer

Что такое VPC?

  • VPC — это ваша приватная сеть в AWS.
  • Она предоставляет адресное пространство, маршрутизацию и управление брандмауэром.
  • Вы сами определяете, как ресурсы взаимодействуют друг с другом.

Обзор компонентов VPC

Бессерверные приложения с AWS Lambda

Простая аналогия: закрытый жилой комплекс

  • Подсети — это кварталы.
  • Группы безопасности — правила на воротах.
  • NAT — общий выход в публичный интернет.

Аналогия с закрытым жилым комплексом

Бессерверные приложения с AWS Lambda

Зачем запускать Lambda в VPC?

  • Доступ к приватным ресурсам: внутренним сервисам и базам данных.
  • Группы безопасности контролируют, к чему Lambda может подключаться.

Приватный доступ Lambda через VPC

Бессерверные приложения с AWS Lambda

Что нужно настроить

  • Выберите подсети.
  • Выберите группу безопасности.
  • Lambda получит IP-адрес внутри VPC для доступа к приватным эндпоинтам.

Параметры и эффекты конфигурации VPC

Бессерверные приложения с AWS Lambda

Подсети: где выполняется функция

  • Подсети определяют размещение функции в сети.
  • Приватные подсети не имеют прямого выхода в интернет.
  • Выбирайте подсети, обеспечивающие доступ к нужным ресурсам обработчика.

Влияние выбора подсети

Бессерверные приложения с AWS Lambda

Группы безопасности: правила брандмауэра

  • Группы безопасности — это правила брандмауэра для сетевого интерфейса.
  • Они управляют входящим и исходящим трафиком.
  • Исходящие правила нередко определяют, может ли Lambda подключиться к базе данных.

Аналогия группы безопасности с охранником

Бессерверные приложения с AWS Lambda

ENI и холодные старты

  • ENI — это Elastic Network Interface (эластичный сетевой интерфейс).
  • Перед вызовом обработчика Lambda может потребоваться создать и подключить ENI.
  • Эта дополнительная настройка увеличивает задержку при холодном старте.

Последовательность холодного старта с ENI

Бессерверные приложения с AWS Lambda

Аналогия ENI: подключение сетевого кабеля

  • ENI — это сетевое соединение для вашей функции.
  • Он создаётся в выбранной подсети.
  • Чем больше работы по настройке, тем медленнее холодный старт.

Аналогия ENI с подключением сетевого кабеля

Бессерверные приложения с AWS Lambda

Исходящий доступ в интернет

  • Приватные подсети обычно не имеют доступа в публичный интернет.
  • Без исходящего маршрута обращения к публичным API завершатся по тайм-ауту.
  • Распространённое решение: NAT-шлюз.

Исходящий трафик через NAT-шлюз

Бессерверные приложения с AWS Lambda

Когда нужен NAT?

  • NAT нужен при обращении к публичным интернет-эндпоинтам.
  • Если используются только ресурсы внутри VPC, NAT может не потребоваться.

Схема принятия решения о NAT

Бессерверные приложения с AWS Lambda

Типичные признаки проблем с сетью

  • Тайм-ауты указывают на отсутствие маршрута или NAT.
  • Отказ соединения указывает на правила группы безопасности.

Контрольный список сетевых симптомов

Бессерверные приложения с AWS Lambda

Рекомендации

  • Используйте VPC только для приватного подключения.
  • Сохраняйте конфигурацию минимальной.
  • Отслеживайте задержку холодного старта и ошибки соединения.

Рекомендации по VPC

Бессерверные приложения с AWS Lambda

Ключевые выводы

  • VPC обеспечивает Lambda приватную сеть.
  • Вы настраиваете подсети и группы безопасности.
  • ENI могут увеличивать накладные расходы при холодном старте.
  • Приватным подсетям нужен NAT для исходящего доступа в интернет.

Компромиссы при подключении VPC

Бессерверные приложения с AWS Lambda

Давайте потренируемся!

Бессерверные приложения с AWS Lambda

Preparing Video For Download...