我对 AWS 和网络总体来说还很陌生,但我正在尝试使用 Elastic beanstalk 为 dotnet 项目提供服务。我能够成功运行它,健康检查良好,一切都很顺利。它运行的是带有路由 53 域名的单个实例,因此访问 http 中的域给了我一个很好的响应。
这太棒了,我什至验证了它能够通过 http 调用我们的其他 api 之一。我想添加 SSL 证书,以便可以在 https 上提供服务,并做了一些研究,我发现我需要一个负载均衡器才能提供此服务。因此,我将其从单实例更改为负载平衡。
然后,我确保它使用我的证书在 https 以及 http 上提供服务,并为其提供了一个使用我的健康检查作为其路径的默认进程
然后我更新了我的route53以指向elastic beanstalk环境,并成功通过http和https访问我的网站。
但是,即使我的实例正在运行,我的 Elastic beanstalk 环境运行状况也会切换为“未知”,并表示未从实例收到数据。我尝试更改正在运行的环境变量之一(因为我们现在可以在 https 上进行调用),但更新失败并恢复回来。我尝试了多次,结果总是一样。
我是否错过了添加负载均衡器的步骤?我只是不了解 AWS 的一些基本知识吗?这里可能发生了什么,我应该检查什么?
我已验证负载均衡器处于活动状态,并且目标组运行状况良好。我还验证了关联的安全组允许 443 和 80 上的入站和出站流量。它无法访问我们之前拥有的任何外部 API,但这可能是因为它仍在尝试使用旧的 API 来执行这些操作。通过 http 的端点。
就我而言,我遵循了公共 VPC 文档中的设置(这是我账户中的默认 VPC 配置): https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/vpc.html#services-vpc-public
缺少的部分是启用实例公共 IP。
公有 VPC 设置(负载均衡):