【问题标题】:Can't access running EC2 Dockerized image from outside无法从外部访问正在运行的 EC2 Dockerized 映像
【发布时间】:2020-08-31 19:25:47
【问题描述】:

问题

我无法从 EC2 实例外部访问正在运行的 docker 映像。

我尝试过的

  • 我在 ECS 中创建了一个集群、一个具有相关任务定义的服务和一个 Application Load Balancer。
  • 当任务被执行时,我可以在任务中看到来自 Docker 映像的日志:
  • 我还看到相关的 EC2 实例正在运行。当我 ssh 进入实例时,我可以看到 docker 映像正在按预期运行:
docker ps
CONTAINER ID        IMAGE                                                                COMMAND                  CREATED             STATUS                 PORTS                     NAMES
af20230498fb        <ecr-id>.dkr.ecr.eu-central-1.amazonaws.com/app-be:latest   "docker-entrypoint.s…"   11 minutes ago      Up 11 minutes          0.0.0.0:32805->5001/tcp   ecs-app-task-definition-26-app-be-fcf9ffc3f9dadf80d401
5d59c2b2bcaa        amazon/amazon-ecs-agent:latest                                       "/agent"                 2 hours ago         Up 2 hours (healthy)                             ecs-agent

当我这样做时:

> curl 0.0.0.0:32805/status
{"message":"OK","timestamp":1598871064086}
  • 我的负载均衡器似乎设置正确:

但是,当尝试从外部访问同一端点时,无论是从 EC2 实例的公共 IP 还是应用程序负载均衡器 DNS,都会超时。

另外:Application Load Balancer 的 /status 运行状况检查也失败,因此任务每 15 分钟重新启动一次。

感谢任何帮助,如果我犯了新手错误,请提前道歉,因为我对 AWS 没有太多经验。

【问题讨论】:

    标签: amazon-web-services docker amazon-ec2 amazon-ecs


    【解决方案1】:

    您是否配置了 EC2 的安全组或启动 EC2 的 VPC 的 NACL?

    我看到您在任务中公开了端口 5001,所以在 SG 中,您应该打开该端口

    【讨论】:

    • 谢谢,SG 不允许任何 TCP 传入请求。
    • 不客气。请告诉我我的建议是否对您有帮助:D
    • 是的,我修改了 EC2 实例和应用程序负载均衡器的安全组,现在按预期工作!
    猜你喜欢
    • 2020-01-12
    • 1970-01-01
    • 1970-01-01
    • 2018-11-02
    • 1970-01-01
    • 2017-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多