我在私有子网实例上托管了一个Web应用程序,因为该应用程序是针对不同地理位置的组织内部用户的。此应用程序需要AWS CloudFront支持才能更有效地交付静态内容。问题是-我需要面向Internet的负载均衡器(公共子网中的实例)作为CloudFront分发的来源。
我不希望面向Internet的ELB和由此产生的公共子网中的实例。
我可以利用AWS CloudFront连接到内部ELB的任何方式吗?
答案 0 :(得分:1)
我需要面向Internet的负载均衡器(公共子网中的实例)作为CloudFront分发的来源。
部分不正确。
CloudFront 确实需要原始服务器可以通过互联网访问,所以该部分是正确的。
但是,面向Internet的负载均衡器不要求均衡器后面的实例位于公共子网中或具有自己的公共IP地址。
不仅不需要,而且对于面向互联网的ELB Classic或ALB,最佳实践实际上是两者都不做。
问题,我想创建一个面向互联网的公共负载平衡器,并附加无法公开访问的后端Amazon EC2实例;例如,在私有子网中的实例。我该怎么办?
简短描述,您必须在与私有实例所使用的私有子网相同的可用区中创建公共子网。然后将这些公共子网关联到面向Internet的负载均衡器。
https://aws.amazon.com/premiumsupport/knowledge-center/public-load-balancer-private-ec2/
这适用于传统和应用程序平衡器,但不适用于网络负载平衡器;但是,由于ALB与CloudFront可以做到100%的兼容性重叠,因此在CloudFront后面并不需要NLB。
在实例的不同子网上安装平衡器不会对性能造成影响。
仅CloudFront 可用于Internet访问的资源。它不支持与VPC的专用连接(包括Lambda @ Edge功能,这些功能不在您的VPC中运行)。