Java 如何将Spring云服务正确部署到AWS ECS

Java 如何将Spring云服务正确部署到AWS ECS,java,amazon-web-services,amazon-ec2,spring-cloud,Java,Amazon Web Services,Amazon Ec2,Spring Cloud,我花了一周的时间试图找到一个好的例子来正确地实现这一点,但互联网似乎没有任何东西在那里 我有一个非常基本的Spring云服务。它包括Eureka、Zuul、Spring配置和一些服务 我已经通过使用esc cli了解了如何基于我的docker compose.yml文件轻松创建新任务。所以我有两个任务 一个管理任务,它有一些基本的东西,在这个阶段不需要扩展,并且有一个它们的实例,对于这个项目来说很好 version: '2' services: mongo: image: mong

我花了一周的时间试图找到一个好的例子来正确地实现这一点,但互联网似乎没有任何东西在那里

我有一个非常基本的Spring云服务。它包括Eureka、Zuul、Spring配置和一些服务

我已经通过使用
esc cli
了解了如何基于我的
docker compose.yml
文件轻松创建新任务。所以我有两个任务

一个管理任务,它有一些基本的东西,在这个阶段不需要扩展,并且有一个它们的实例,对于这个项目来说很好

version: '2'
services:

  mongo:
    image: mongo
    cpu_shares: 300
    mem_limit: 268435456
    ports:
      - 27017:27017   

  config-service:
    image: config-service
    cpu_shares: 300
    mem_limit: 268435456
    ports:
      - 8888:8888
    environment:
      - SPRING_PROFILES_ACTIVE=cloud

  edge-service:
    image: edge-service
    cpu_shares: 300
    mem_limit: 268435456
    ports:
      - 80:8080
    environment:
      - SPRING_PROFILES_ACTIVE=cloud
我的第二个任务具有上述任务的客户端

version: '2'
services:

  instance-service:
    image: instance-service
    cpu_shares: 300
    mem_limit: 268435456
    ports:
      - 8081:8081
    environment:
      - SPRING_PROFILES_ACTIVE=cloud

  restore-service:
    image: restore-service:latest
    cpu_shares: 300
    mem_limit: 268435456
    ports:
      - 8082:8082
    environment:
      - SPRING_PROFILES_ACTIVE=cloud
我可以用一个简单的命令轻松创建这些任务,例如
ecs cli compose--file management-task.yml--project name management task up
没有问题

当我遇到问题时,任何东西都无法到达
Eureka
Config
服务,因此它们都会死亡。我到处都读过,我可以使用应用程序负载平衡来允许容器相互通信,但实际上我找不到任何关于如何做到这一点的信息

我在这里找到的最接近的一篇博客文章,但是他们没有利用Eureka在任务中,也没有利用配置服务器

那么,有没有关于如何将现代Spring云应用程序部署到AWS的全面示例?或者,有没有人对如何让我的任务/容器彼此对话,而不只是说“使用负载平衡器…”有什么建议


谢谢你抽出时间

所以我知道这是一篇有点死气沉沉的文章,但是这里还没有答案,所以对于将来找到它的人的后代来说:

您正在处理一个“服务发现”问题,有多种方法可以解决它:

  • 您可以根据自己的状态使用负载平衡器。这样做的方式是创建ALB,然后在该ALB中创建目标组。目标组的健康检查必须使用字符串文字“traffic port”,因为每个ECS容器都有一个随机端口。确保连接到ECS群集的EC2实例的安全组允许在所有TCP端口上传入。请注意,如果您的ALB健康检查因任何原因失败,容器将设置为“排空”并关闭

  • ECS最近也(在您的帖子之后,但现在是GA)宣布了ECS服务发现

  • 您可以使用Kubernetes(EKS),它本机支持服务发现