amazon-web-services - 指向私有子网的弹性负载均衡器
问题描述
我已经创建了一个面向 Internet 的弹性负载均衡器来指向我在 VPC 中的 EC2 实例,就像我之前有很多次一样,但是对于这个我使用带有 nat 网关的私有子网来控制传出流量并将其全部通过列入白名单的 IP。
不幸的是,仅此负载均衡器就存在间歇性连接问题,这会导致各种问题,包括 Cloudfront 可靠地联系原始站点。
这适用于公共子网(事实上我现在已经直接换掉了),但不适用于私有子网。
任何想法将不胜感激,
克里斯
解决方案
我可以让它可靠地工作的唯一方法是将它指向两个公共子网。
这是设计使然。
面向 Internet 的应用程序负载均衡器 (ALB) 和经典 ELB 必须专门在公共子网中预置。
无论平衡器后面的实例是否在私有子网中,这始终是正确的。
如果将平衡器放置在私有子网中,则浏览器无法建立与平衡器的连接,因为平衡器子网的默认路由不是 Internet 网关——因此平衡器的回复被错误路由并且连接超时。如果平衡器位于公共子网和私有子网的混合上,则超时会变得间歇性,因为一些连接通过公共子网到达平衡器(并且工作),而其他连接通过私有子网到达平衡器(而不是)。
平衡器不需要位于任何私有子网上,因为 VPC 路由表始终包含一个隐式路由,该路由允许 VPC 内的所有子网到达所有其他子网,仅受安全组和网络 ACL 规则的约束。将平衡器放在与实例完全不同的子网中没有性能劣势。
推荐阅读
- c++ - 在模板函数中使用
- r - 我无法调试在 git bash 命令行上链接目录路径的问题
- c++ - 该程序没有产生输出,而是卡在一个循环中,几秒钟后消失并打印被杀死?
- java - 如何直接在 localhost:8080 而不是 tomcat 主页中打开我的 Web 应用程序
- javascript - 如何检查用户刚刚输入的内容(区分不同符号的输入)?
- python - 通过 .exe 启动时,Python OpenCV 不读取视频输入
- javascript - node JS - 将函数本身发送到客户端,该函数在客户端(不在服务器中)运行
- c# - 将 ASP .Net WPF 应用程序转换为在没有窗口(窗体)的情况下运行
- visual-studio-code - 当 preselect = true 有来自多个源(扩展)的多个完成项时,vscode 的要求行为是什么
- database - 有没有办法在 oracle 数据库中找到长时间运行的程序/包块?