AWS - ELB可用区域+ VPC最佳实践?

时间:2017-02-16 04:24:29

标签: amazon-web-services amazon-elb amazon-vpc

设置ELB时,会说如下:

  

您必须至少从两个可用区指定子网,以提高负载均衡器的可用性。

我目前有两个VPC:

  1. WebVPC
    1. 公共子网-US-东-1A
    2. 私人子网美东-1B
  2. DatabaseVPC
    1. 公共子网-US-东-1A
    2. 私人子网美东-1B
  3. ELB仅适用于WebVPC(用于提供网络流量)。我目前每个VPC只有一个公共子网和一个私有子网,这意味着我只能从我的WebVPC向ELB提供一个公有子网。

    这是否意味着最佳做法是至少拥有两个公共子网和至少两个私有子网?

2 个答案:

答案 0 :(得分:4)

您的架构不是高度可用。如果一个AZ出现故障(实际上,如果数据中心发生故障),最好在多个可用区(AZ)之间复制服务。

此外,通常最好将应用程序的所有相关服务保留在相同的VPC 中,除非您有特殊理由将它们分开。

此外,通过将您的应用程序置于私有子网中,使用仅公共子网中的负载均衡器,可以提高安全性。

因此,建议的架构是:

  • 一个VPC
  • AZ-a
  • 中的公有子网
  • AZ-b中的公有子网
  • 连接到两个公共子网的负载均衡器
  • AZ-a
  • 中的私有子网
  • AZ-b中的私有子网
  • 您的Web应用程序在两个私有子网中同时运行(假设它可以在多个Amazon EC2实例上运行)
  • 您的数据库在其中一个私有子网中运行,能够故障转移到另一个私有子网。 Amazon RDS可以使用多可用区选项自动执行此操作(需要支付额外费用)。

Highly Available architecture

要了解有关构建高度可扩展的解决方案的更多信息,我建议2016年AWS re:Invent会议的ARC201: Scaling Up to Your First 10 Million Users会话(YouTubeSlideSharePodcast)。

答案 1 :(得分:1)

是。最佳做法是提供至少两个可用区。

如果在私有子网中启动EC2实例,则应在公共子网中启动负载均衡器,该子网应连接到互联网网关。

Load Balancer可以通过互联网网关处理流量并重定向到EC2实例的私有IP。只有已注册的EC2实例才会从Load Balancer接收流量。

在你的情况下:

  1. 根据最佳做法,您必须在不在公有子网中的私有子网中启动数据库。 Web层和数据库层都可以位于同一个VPC中。如果您有不同的环境,如Dev,Test和Prod - 所有应该在不同的VPC中启动。您可以使用VPC对等连接VPC。
  2. 最好在私有子网中启动,而不是在公共子网中启动EC2实例。因为,您将使用负载均衡器将网络流量重定向到EC2实例。