amazon-web-services - 私有(private)子网不与公共(public)网络通信 - 运行状况检查失败

标签 amazon-web-services nat aws-fargate aws-application-load-balancer

我正在尝试实现此 blog 中描述的以下架构

enter image description here

我有一个使用 ENI(私有(private) IP 为 10.0.241.85)的 Fargate 服务,在私有(private)子网(我们称之为“子网”)中运行-1')。 ENI 还具有弹性 IP,因为如果没有,则无法从 ECR 中提取镜像。我认为这并不重要?我的服务中的容器暴露了端口 3000/4000。然后,我将 ALB 和 NAT 网关置于公共(public)子网中(我们称之为“subnet-2)。 ALB 将端口 80/443 上的流量转发到必要的目标组。目标组有 2 个针对 ENI 上的私有(private) IP 的注册任务(1 个在端口 3000 上,另一个在 4000 上)。据我所知,这应该允许流量进入,对吗?

对于流出流量,subnet-1 有一条通往 中 NAT 网关的默认路由 (0.0.0.0/0) subnet-2,这应该允许流量流出,对吗?

所有服务都位于相同 VPC 和相同可用区(如果适用)

我有 2 个安全组供这些服务使用:

  1. 测试
  2. API

测试(入站) enter image description here

测试(出站) enter image description here

api(入站) enter image description here

api(出站) enter image description here

我们利用临时端口在两个安全组之间进行通信

注意:我在此处删除了目的地,但是,是的,目的地是测试安全组

| Service | Security Groups |
|---------|-----------------|
| ENI     | test            |
|         | api             |
|---------|-----------------|
| ALB     | api             |
|---------|-----------------|

子网 1 路由表 enter image description here

子网 2 路由表 enter image description here

注意:所覆盖的路由只是对等连接,因此与此无关

据我所知,这两个子网应该能够使用其中服务的私有(private) IP 进行通信,这就是我在这里所做的。

运行状况检查失败,并显示以下通用消息:

Task failed ELB health checks

我还查看了this博客寻求更多帮助,但无济于事。

任何帮助将不胜感激:)

最佳答案

如果您的任务正在监听端口 3000 和 4000,则您的安全组(我猜,根据您的评论,test)将需要允许这些端口。按照现在的配置,我没有看到允许的端口 3000 和 4000。

其他一些注意事项 - 私有(private)子网中 ENI 上的弹性 IP 不会执行任何操作,因为私有(private)子网无法直接访问互联网。如果您在没有它的情况下连接到 ECR 时遇到问题,则一定存在其他问题。

此外,您的 SG 规则允许非常大的 CIDR block ,例如 0.0.0.0/0。更安全的配置将只允许需要访问的特定安全组。在这种情况下,您需要从负载均衡器的 SG ID 获取应用程序的端口(听起来像 3000 和 4000)。

关于amazon-web-services - 私有(private)子网不与公共(public)网络通信 - 运行状况检查失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57292250/

相关文章:

security - 有人试图破解我的服务器吗?请告诉我我能做什么?

amazon-web-services - S3静态网站/蓝绿部署

java - 我可以访问在 localhost :8080 from WAN. 上运行的应用程序吗?

p2p - 无法在 PJSIP/PJNATH 库中找到 NAT 映射的内部端口

python-3.x - Cloudformation 的 AWS lambda 代码部署问题

java - Multi-Tenancy 应用程序中的连接池。共享池与每个租户的池

azure - 应用服务上的内部负载均衡器在配置了 NAT 网关后是否仍执行 SNAT?

amazon-web-services - 由于目标组运行状况检查失败,AWS ECS 服务正在重新启动

google-bigquery - 使用 Workload Identity 从 aws fargete 到 gcp bigquery 的连接错误

amazon-web-services - 什么是 AWS 中的 vCPU