我有两个基本的 Web 应用程序设置,它们位于 Amazon Web Service 上的 ELB 后面。
布局 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:
- Web 服务器是否将 http 响应发送回 ELB?如果它直接传递给用户,它会获得性能响应吗?
- 如果我只在安全组上限制 Http 端口的传出流量,是否还有任何安全威胁?
布局 B:
- 这种设计是否会产生另一层故障点 (NAT)?
- 它适用于 Oauth 通信吗?
- 它可以与 3rd 方 CI 和编排工具(jenkins、chef)一起使用吗?
两种设计都运行良好,但考虑到性能和安全性,哪种设计是基础架构的最佳实践。
谢谢