Маркетинг вокруг Смертный Любит, чтобы сделать это как «спиннинг вверх» функция — это простая задача без других зависимостей. Тем не менее, функции без сервеса должны быть вызваны как-то. И одним из ваших вариантов является использование AWS Lambda с ALB.
Но если вы только что узнали AWS Lambda и хотите настроить его с помощью ALB, вы собираетесь запускать лицо первым в тонну нового жаргона: целевые группы, слушатели, правила слушателя, порты и т. Д. Так Если вы еще не знакомы с AWS Alb, и это различные идеи, которые вам нужно будет добраться до скорости.
К концу этой статьи вы поймете основные концепции, связанные с AWS ALB, чтобы вы могли опубликовать свою функцию лямбда.
AWS LAMBDA с ALB
Настройка AWS LAMBDA с ALB дает нам много преимуществ, включая центральный источник в воронку и контролировать наш трафик и одну точку для прикрепления таких вещей, как сертификаты HTTPS и аутентификация.
Чтобы понять, как использовать AWS Lambda с ALB, нам нужно будет обсудить следующие концепции ALB:
- Сеть
- Слушатели
- Правила слушателя
- Целевые группы
- Форматы ответов
- Прикрепление доменов
И на сегодняшнюю статью я не собираюсь сделать типичную «здесь, просто скопируйте этот учебник, вместо этого я собираюсь сосредоточиться больше на том, чтобы запустить вас через основные концепции, чтобы вы могли реализовать дизайн, который имеет смысл для вашего сценария Отказ Но, если вы хотите следовать, я дам фрагмент террафора для каждого ресурса, который мы обсуждаем, что следует, по крайней мере, начать голову.
Примечание: Я говорил раньше, почему я думаю, что настраивая инфраструктуру как код (террафом), прежде чем концепции облака обучения — хорошая идея. Если вы хотите знать, почему, проверьте: 5 важных причин изучения террафора до облачных вычислений.
Звучит неплохо? У нас есть несколько концепций, чтобы покрыть. Давайте доберемся до этого!
Создайте ALB (выбрав сеть)
Первое, что вам нужно будет сделать, это оценить, в какую сеть будет запущена ваш альбу.
Если вы хотите, чтобы ваш альбус обстоялся, вам понадобится как минимум: VPC с интернет-шлюзом, двумя публичными подсетью (на разных зонах доступности) и группе безопасности. Но не волнуйтесь, если у вас нет этой настройки, AWS имеет вариант по умолчанию, позвольте мне объяснить.
Большинство ресурсов в вашей учетной записи AWS должны быть введены в сеть, и Alb ничем не отличается. Чтобы помочь вам AWS дает каждую новую учетную запись сеть по умолчанию, которую вы можете использовать.
У Networke Network есть все, что вам нужно сегодня, за исключением, что: Вам нужно будет открыть группу безопасности, чтобы позволить трафику течь к своему слушателю Alb (Но больше на это позже).
Как только вы выяснили, где вы хотите, чтобы ваш Alb вы можете пойти дальше и создать его в своих обозначенных подсети.
Подсказка: Если все эти сети кажется, что я говорю еще один язык, я бы предложил прочитать статью: AWS Сетевые основы: простое руководство для инженеров программного обеспечения.
Добавить слушателя
После создания балансировщика нагрузки в данной сети вам нужно будет настроить слушателя, чтобы сообщить балансиру загрузки, какие типы запросов вы хотите прослушать.
Слушатель просто «прослушивает» для входящих запросов. По умолчанию ваш ALB не слушает какого-либо трафика, поэтому вам придется сказать ему. Для этого примера мы собираемся разрешить порт 443 (HTTPS) трафика.
Вам также нужно будет настроить действие по умолчанию. Это просто говорит балансировщик нагрузки, что делать, если мы получим допустимый трафик, но не имею соответствующих действий для выполнения.
Но мы не хотим, чтобы весь наш трафик ударил наше действие по умолчанию, мы хотим перенаправить его на нашей лямбда. И мы делаем это, используя правило слушателя …
Примечание: Чтобы принять трафик HTTPS, вы захотите настроить сертификат. Это может быть сделано в ACM, эмитентом сертификата Amazons.
Добавить правило слушателя
Слушатель — это то, что назначает ваши серверы (в нашем случае, лямбда) на данные входящие маршруты в вашем ALB. По сути, правило слушателя — это сопоставление входящих запросов на серверы. Какая главная работа балансировщика нагрузки.
Мне нравится думать о слушателях, так как внешние для балансировщика нагрузки и правилах слушателя внутреннего. С прослушивателями трафик может ударить свой Alb, но без правил его нельзя обрабатывать или пересылать и т. Д.
В приведенном выше примере мы пересылаем все трафик на /статик
Маршрут в нашу «целевую группу».
Но подожди — мы не говорили о целевых группах?
Целевые группы
Целевая группа — это просто сбор ресурсов (чтение: серверы).
Мы не указываем на нашего балансировщика нагрузки непосредственно на наш сервер как … это не совсем «балансировка нагрузки» столько, сколько она просто прокси. Таким образом, целевые группы позволяют нам создать абстрактный слой между балансировщиком нагрузки и нашими серверами. Что необходимо для нашегольба на работу.
В традиционной серверной архитектуре мы бы (обычно) регистрируем множество серверов против целевой группы, что дает наше приложение высокой доступности. Мы достигаем высокой доступности, поскольку мы можем гарантировать, что наш балансировщик нагрузки обслуживает запросы, даже если сервер не работает.
Так что теперь вы можете пойти дальше и указать свою целевую группу в свою лямбду. И теперь, когда у вас есть настройка целевой группы, которая завершается инфраструктуру, нам нужно будет настроить, чтобы запустить нашу лямбда позади нашего ALB. Woohoo! Но есть всего несколько других вещей, которые вам нужно знать …
Отвечать правильному формату
Теперь, когда у вас есть настройка инфраструктуры, вы можете сделать запрос на ваш балансировщик нагрузки и увидеть, что он возвращает 500
или зависает. И это, скорее всего, из-за формата, с которым ваша лямбда отвечает. Вы не можете просто ответить на полезную нагрузку на внешний трафик, поскольку балансировщик нагрузки также необходимо отправлять другие метаданные, такие как код состояния.
И способ, которым мы предоставляем метаданные для нашего ALB, чтобы ответить, проходит через наш формат ответа LAMBDA. Как вы можете видеть выше, мы даем некоторые дополнительные данные метаданных в Альбу, но В конце концов Альб будет только вперед на секции тела, а не всю полезную нагрузку.
И это ведет нас на нашу последнюю тему …
Прикрепление домена
Если вы сделали это далеко, следуя вдоль вас, сможем ударить свой Alb через общедоступную конечную точку (вы можете найти эту конечную точку, перейдем к вашу приборную панель EC2 в AWS).
Но я должен признать, что URL AWS довольно сбивает с толку выглядит, поэтому скорее всего, вы захотите какую-то хорошую конечную точку для вашего API, как API.yourawesomesite.com.
. Чтобы добавить нашу запись DNS, нам нужно добавить запись в сервис Tranble53.
Все, что нам нужно, это запись, которая перенаправляет на наш ресурс ALB, и мы делаем это, указывая на нашу запись на нашего ALB dns_name
и ZONE_ID
Отказ Довольно просто сделать в интерфейсе, так как вы получите выпадку, который позволяет вам выбрать ваш балансировщик нагрузки из списка.
Route53 Alb запись
И VOILA!
Godspeed, Эксперт Альба!
Лямбда с альбом
Если вы последовали, вы теперь должны знать, как использовать AWS Lambda с Alb.
Вы должны иметь это …
- Предоставляется внутри сети, которую вы хотите.
- Имеет общественный трафик HTTPS.
- Отправляет статический 404 для не известных путей.
- Маршруты трафика с вашего
/статический
Маршрут к вашей целевой группе. - Имеет HTTPS CERT и чистый домен прилагается.
- Есть ли лямбда сгруппирована в целевую группу
Я сказал вам, что было бы справедливым количеством технических терминов, верно?
И это все, что вам нужно, чтобы начать. Теперь вы можете начать смотреть на более продвинутые концепции, такие как подключение нескольких лямбдей на разные маршруты.
Говорите в ближайшее время облако коренного друга!
Пост Настройте AWS Lambda с Alb (Balancer Load) появился первым на DEV тренер Отказ
Лу — редактор Облако нативное программное обеспечение Инженерное рассылка Информационный бюллетень, посвященный упрощению программного обеспечения Cloud Software, каждые 2 недели вы получаете новости и статьи, которые охватывают фундаментальные темы облачного входящего в вашем почтовом ящике.
Оригинал: «https://dev.to/loujaybee/set-up-aws-lambda-with-an-alb-load-balancer-2ibn»