Назад | Перейти на главную страницу

Сохранение тела запроса маршрута без обращения к веб-серверу в AWS

Допустим, у меня есть сайт: mysite.com, работающий на AWS, обслуживаемый некоторыми экземплярами EC2 за балансировщиком нагрузки приложений. Подсистема балансировки нагрузки завершает работу SSL с помощью сертификата ACM.

Мне нужно направить входящие запросы на URL-адрес (пример: mysite.com/{user_id}/something/here/) от балансировщика нагрузки и вместо этого отправить их в функцию Lambda (точнее, я хочу просто захватить тело запроса и записать его где-нибудь, а затем вернуть HTTP 200; это не обязательно должно выполняться с помощью функции Lambda) .

ALB позволяет выполнять маршрутизацию к разным целевым группам, но, похоже, они могут содержать только экземпляры EC2. В документации указано: «Вы регистрируете цели, такие как экземпляры EC2, в целевой группе» - что еще можно ли добавить не только инстансы EC2?

Я не хочу запускать собственный экземпляр haproxy и т. Д., А также не маршрутизировать их через nginx после того, как запросы проходят через ALB и попадают на веб-серверы, потому что цель этого упражнения - уменьшить количество вещей, которыми я должен управлять, а не увеличивайте их!

Есть ли способ обойти это?

Вы регистрируете цели, такие как экземпляры EC2, в целевой группе.

http://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-target-groups.html

Вы сделали проницательное наблюдение. Это интересный выбор слов ... но, по крайней мере, на данный момент, экземпляры EC2 являются единственной целью.

Экземпляр EC2, вызывающий ваши Lambda-функции или проксирующий их на API-шлюз (с Nginx или HAProxy), является разумным решением. Если вы не знакомы с использованием экземпляра в качестве прокси, вы, вероятно, будете удивлены тем, сколько трафика вы можете передать даже крошечным экземплярам, ​​когда проксирование - это вся работа, которую они делают. (У меня есть экземпляры t2.micro и t2.nano с HAProxy, которые проксируют более 1 миллиона запросов в день, не превышая 5% ЦП).

Но если вы хотите уменьшить количество вещей, которыми вам нужно управлять, сохранить все в одном домене и отказаться от определенных путей, вы можете использовать CloudFront. Впереди ALB для маршрутизации определенных шаблонов пути в другом месте - например, на шлюз API. (Бонус: вы также можете интегрировать статические ресурсы из S3 в свой сайт с помощью этого решения. Вы даже можете направлять запросы на серверы и сервисы, внешние по отношению к AWS, путем сопоставления с шаблоном пути.) CloudFront продается как CDN, но это также случается с быть бесконечно масштабируемым обратным прокси.