У меня есть две базовые настройки для веб-приложений, которые находятся за ELB на веб-сервисе Amazon.Лучшая практика: NAT vs ElasticIP
Layout A:
+-----+
+---+ ELB +----+
| +-----+ |
| |
| |
+---v-----+ +-----v---+ +---------------+
| EC2/EIP | | EC2/EIP +----+----> | HTTP RESPONSE |
+---------+ +---------+ | +---------------+
|
| +------------------+
+----> | EXTERNAL WEBSITE |
| +------------------+
|
| +-----+
+----> | API |
+-----+
Компоновка B:
+-----+
+---+ ELB +----+
| +-----+ |
| |
| |
+--v--+ +--v--+ +-----+ +---------------+
| EC2 | | EC2 +--+ NAT +--+----> | HTTP RESPONSE |
+-----+ +-----+ +-----+ | +---------------+
|
| +------------------+
+----> | EXTERNAL WEBSITE |
| +------------------+
|
| +-----+
+----> | API |
+-----+
Я считаю, что обе архитектуры имеют свои плюсы и минусы:
Layout A:
- ли веб-сервер отправить HTTP-ответ обратно в ELB? если он идет напрямую к пользователю, будет ли он получать отклики производительности?
- Если я ограничиваю исходящий трафик для порта Http только в группе безопасности, существует ли еще угроза безопасности?
Схема Б:
- представляет эту конструкцию, создавая еще один слой точки отказа (NAT)?
- Будет ли это работать для связи Oauth?
- Может ли он работать с сторонними инструментами CI и Orchestration (jenkins, chef)?
Оба дизайна работают хорошо, но какой дизайн является наилучшей практикой для инфраструктуры, учитывающей производительность и безопасность.
благодаря
+1 хотя я бы добавил, что потеря экземпляра NAT не будет прерывать входящие запросы, поступающие через ELB, если веб-серверу не нужен внешний доступ к ресурсам для выполнения запроса (например,выборка данных из удаленного API), а примеры NAT лучше всего применять для каждого AZ, поэтому не совсем одна точка катастрофического сбоя. –
согласен. контекст вопроса заставил его звучать так, как будто служба выходит за рамки vpc, чтобы сделать какую-то работу. если все это связано с NAT, не должно ухудшать работу службы. – Mircea
Как вы думаете, с этой документацией AWS http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_NAT_Instance.html существует ли какая-либо логическая причина, почему этот дизайн должен использоваться (используя ELB для каждого экземпляра)? –