使用 Cloudfront 设置 AWS ELB 而不是单个 EC2 实例有啥意义?
Posted
技术标签:
【中文标题】使用 Cloudfront 设置 AWS ELB 而不是单个 EC2 实例有啥意义?【英文标题】:What's the point of an AWS ELB setup with Cloudfront, rather than a single EC2 instance?使用 Cloudfront 设置 AWS ELB 而不是单个 EC2 实例有什么意义? 【发布时间】:2018-08-08 17:29:14 【问题描述】:如果 AWS Cloudfront 为访问者缓存您的网站内容,那么设置 ELB 而不是标准的单一 Web 服务器 EC2 实例又有什么意义?
当然,只有少数 Cloudfront 连接会与服务器通信。
【问题讨论】:
“可以肯定的是,只有少数 Cloudfront 连接会与服务器进行通信。” 您为什么建议会出现这种情况?您是否打算加密 CloudFront 和您的实例之间的流量?如果是这样,你将如何做到这一点? 【参考方案1】:您不需要在 CloudFront 和您的单个 EC2 实例之间使用 ELB。 ELB 和 CloudFront 都提供了额外的保护 (DDoS),但对于单个实例,两者都不需要也不需要设置。
但是,AWS 的一大设计优势是负载平衡和 Auto Scaling (ASG)。您将需要一个负载均衡器来添加这些功能。网站确实会崩溃,启用 ASG 将确保在您的网络服务器无响应时启动新实例。
注意。您不希望您的 EC2 实例可用于公共 Internet。您将吸引大量知道 AWS IP 地址的黑客。此流量可以快速消耗小型 T.x 实例上的资源。确保您的安全组设置为仅允许来自 CloudFront 的流量。
【讨论】:
【参考方案2】:这是一个广泛的问题。如果您真的知道自己在做什么以及您真正需要什么,那么如果您只需要一个 EC2 实例,那么您可以使用它。 对于生产环境,始终建议拥有多个应用程序实例(服务器),以避免单点故障。这意味着,如果一台服务器出现故障或流量负载增加,其他实例会协调并保持应用程序正常运行并可供用户/客户访问。
更多细节请参考原文档:
https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html Elastic Load Balancing 在多个可用区中的多个 EC2 实例之间分配传入的应用程序流量。这会提高应用程序的容错能力。
负载平衡器充当客户端的单一联系点,从而提高应用程序的可用性。随着需求的变化,您可以在负载均衡器中添加和删除实例,而不会中断对应用程序的整体请求流。 Elastic Load Balancing 会随着应用程序的流量随时间变化而扩展负载均衡器,并且可以自动扩展到绝大多数工作负载。
您可以配置健康检查,用于监控已注册实例的健康状况,以便负载均衡器仅向健康的实例发送请求。您还可以将加密和解密工作卸载到负载均衡器上,以便您的实例可以专注于它们的主要工作。
https://aws.amazon.com/elasticloadbalancing/
【讨论】:
以上是关于使用 Cloudfront 设置 AWS ELB 而不是单个 EC2 实例有啥意义?的主要内容,如果未能解决你的问题,请参考以下文章
我应该为 elb 和 aws S3 设置两个不同的 Cloudfront 发行版吗?
AWS 云产品 CloudFront + ELB + EC2 + S3 构建虚拟主机动静分离站点