当前位置:  开发笔记 > 数据库 > 正文

在AWS ECS中的任务定义之间链接容器?

如何解决《在AWSECS中的任务定义之间链接容器?》经验,为你挑选了1个好方法。

我正在尝试在AWS ECS中设置一个具有关联数据库的基本Web应用程序.在本地我将这些设置放在不同的容器中,在ECS上,我希望有单独的任务定义,以便我可以单独扩展它们.

    david_mongodb在ECS中成功注册了我的第一个任务定义.它有一个名为的容器david_mongodb.

    然后我尝试将我的第二个任务定义注册为david_web,其中有一个名为david_web链接数据库的容器david_mongodb:db.

    单击"创建"时,会返回错误:

    Unable to create Task Definition
    Linked container 'david_mongodb:db' doesn't exist.
    

似乎任务定义无法在其他任务定义中看到容器名称?我正在考虑将两个容器david_webdavid_mongodb容器放在同一个任务定义中会起作用,但我不想这样做:它会阻止我单独扩展Web应用程序或数据库.这个概述似乎证实我的架构是推荐的......

那么如何链接生活在不同任务定义中的容器?还是有另一种聪明的方法来处理这个问题?



1> Samuel Karp..:

ECS任务定义中的链接类似于Docker链接,仅当容器属于同一任务定义时才起作用(属于单个任务定义的容器一起放在同一主机上).为了在不同任务定义中的容器之间进行通信,您需要一种机制来发现容器所在的位置(主机)以及通信端口.

ECS通过服务功能与Elastic Load Balancing(应用程序负载均衡器,网络负载均衡器和经典负载均衡器)集成,其中任务将自动在ELB中注册并在ELB中适当地注销.

ECS还与Route 53自动命名集成,以便使用ASRV记录基于DNS的服务发现.您的服务任务可以自动输入和删除DNS记录.

Amazon ECS的服务发现使用DNS描述了一种不同的方法,其中Lambda函数通过CloudWatch Events侦听ECS事件流并更新Route 53 DNS记录.此方法已被上述Route 53自动命名功能取代.

如果你想避免负载均衡器和DNS,另一种模式可能是大使容器(有一个名为ecs-task-kite的样本使用ECS API),或者你可能对覆盖网络感兴趣(Weave有一个相当详细的获取为他们的解决方案开始指导).

弥敦道佩克是保持了许多有关ECS不同的主题,包括服务发现的轨道,在这里.

推荐阅读
农大军乐团_697
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有