我在Amazon Web Service上有两个基于ELB的Web应用程序的基本设置。
布局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 |
+-----+
我相信这两种架构都有利有弊:
布局A:
布局B:
这两种设计都运行良好,但考虑到性能和安全性,哪种设计是基础设施的最佳实践。
感谢
答案 0 :(得分:1)
简短的回答是,在两种情况下,击中ELB的流量都会通过ELB返回。
布局A: 对于通过ELB发出的请求,只有入境港对SG而言才有意义 对于源自EC2实例并向外界传输的其他事项,您需要打开服务使用的端口
布局B:
是的,NAT是单点故障。如果你失去它,就会失去与外界的联系
是。对于外部世界,流量将显示为源自NAT盒。
通常(在正常设置中)对您的服务的入站请求通过ELB 对于需要外出并源自VPC的流量,您需要经过NAT。要解决单点故障,您可以选择高可用性NAT设置,或者如果您运行多区域,并且您的应用程序旨在支持区域故障,您只需要监控并捕获NAT计算机故障。
使用NAT的一大优势是,并非所有需要在外部流量上运行的计算机都需要具有EIP,并且NAT计算机也可以运行安全加固的映像。您基本上为您的VPC设置了明确的边界,您可以更好地保护它。