Tag: 亚马逊 ECS

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

我正在尝试在AWS ECS中设置一个具有关联数据库的基本Web应用程序。 在本地我有这些设置在不同的容器,并在ECS,我想有单独的任务定义,以便我可以扩展两个分开。 我在ECS中成功地将我的第一个任务定义注册为david_mongodb 。 它有一个名为david_mongodb的容器。 然后我试图把我的第二个任务定义注册为david_web ,它有一个名为david_web的容器,通过david_mongodb:db链接数据库。 当我点击“创build”时,它会返回一个错误: Unable to create Task Definition Linked container 'david_mongodb:db' doesn't exist. 似乎任务定义不能在其他任务定义中看到容器名称? 我在想,把david_web和david_mongodb容器放在同一个任务定义中也是可以的,但是我不想这样做:它会阻止我单独扩展Web应用程序或数据库。 这个概述似乎证实我的build筑是被推荐的… 那么如何链接生活在不同任务定义中的容器呢? 还是有另一个巧妙的方式来处理这个?

使用EFS的AWS ECS上的MongoDB Docker容器

是否推荐在AWS Elastic Container Service(ECS)上共享同一个AWS Elastic File System(EFS)的多个MongoDB Docker容器? 为什么? 为什么不?

Amazon ECS中的最低健康百分比和最高百分比是多less?

我已经有了Docker和EC2的经验。 但我是新来的ECS。 有人可以帮助我了解这两个参数实际上做了什么,它们的区别和用法。 官方文件说: 最低健康百分比代表在部署期间必须保持RUNNING状态的服务任务数量的下限,以所需任务数量的百分比(四舍五入到最接近的整数)为单位。 此参数使您可以部署而不使用其他群集容量。 例如,如果您的服务具有所需数量的四个任务并且最低健康百分比为50%,则调度程序可能会停止两个现有任务,以在启动两个新任务之前释放群集容量。 不使用负载平衡器的服务的任务在运行状态下被认为是健康的; 如果使用负载平衡器的服务的任务处于RUNNING状态,并且负载平衡器将其托pipe的容器实例报告为健康状态,则认为它们是正常的。 最低健康百分比的默认值在控制台中为50%,AWS CLI,AWS开发工具包和API为100%。 最大百分比参数表示在部署期间允许处于RUNNING或PENDING状态的服务任务数量的上限,以所需任务数量(向下舍入为最接近的整数)的百分比表示。 通过此参数可以定义部署批量大小。 例如,如果您的服务具有所需数量的四个任务并且最大百分比值为200%,那么调度程序可能会在停止四个较早的任务之前启动四个新任务(前提是需要执行此操作的群集资源)。 最大百分比的默认值是200%。 我仍然不清楚这两个参数。 如果我的服务具有最低的健康百分比,如果我的服务具有所需数量的4个任务并且最低健康百分比为25%,则调度程序将启动/停止多less个现有/新的任务? 如果我的服务有最大数量的4个任务并且最大百分比值为50%,那么调度程序将启动/停止多less个现有的/新的任务? 如果我的服务只有一个任务正在运行,那么如何设置这些参数来停止现有任务并运行新任务。

运行任务时出现AWS ECS错误:您的群集中找不到容器实例

我尝试使用ECS将docker容器映像部署到AWS ,但未创buildEC2实例。 我search了互联网寻找解释为什么我收到以下错误: “调用RunTask操作时发生客户端错误(InvalidParameterException):您的群集中找不到容器实例。 这是我的步骤: 1.将Ubuntu中的Docker镜像推送到Amazon ECS仓库。 2.注册ECS任务定义: aws ecs register-task-definition –cli-input-json file://path/to/my-task.json 3.执行任务: aws ecs run-task –task-definition my-task 然而,它失败了。 这是我的任务: { "family": "my-task", "containerDefinitions": [ { "environment": [], "name": "my-container", "image": "my-namespace/my-image", "cpu": 10, "memory": 500, "portMappings": [ { "containerPort": 8080, "hostPort": 80 } ], "entryPoint": [ "java", "-jar", "my-jar.jar" ], "essential": true } […]

ECS代理无法成功从ECR中拉出图像

我有一个ECSpipe理的EC2实例在VPC中运行(在一个私有子网中)。 当试图在这个实例上运行一个任务时,它似乎不能拉出图像。 据我可以从文档中得出,没有特殊的configuration需要从ECS代理从回购拉图像。 看看Docker日志我反复看到以下内容: level=error msg="Download failed, retrying: dial tcp 54.231.17.81:443: i/o timeout" ecs-agent日志反复显示图像不在下载: Pulling image module="TaskEngine" image="REDACTED.dkr.ecr.us-east-1.amazonaws.com/REDACTED:latest" status="Retrying in 19 seconds" 它最终试图运行图像,但显然失败并退出。 在“群集任务”选项卡中给我下面的消息: STOPPED (Essential container in task exited) amzn-ami-2016.03.e和amzn-ami-2016.03.d AMI都发生此错误 是否有任何特定的configuration或networking规则,我需要申请才能从ECR拉? 任何帮助在这里将不胜感激。 作为一个方面的说明,实例确实可以访问互联网(Pinging google.com工作正常),当我试图从Docker Hub中提取图片时,它也可以正常工作。

如何在Amazon中安装Amazon ECS容器代理? (ECS-INIT)

我有一个与Debian的杰西ec2实例,当我这样做的命令: apt-get install ecs-init 我收到一个错误包未find.. 所以我需要在Debian上添加新的depo 它不适合我: http : //docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-install.html 谢谢。 亚马逊ECS-INIT

如何将更新的Docker镜像部署到Amazon ECS任务?

一旦所说的图像已经在相应的registry中更新了,使我的Amazon ECS任务更新其Docker图像的正确方法是什么?

用ecs-cli在AWS上部署Docker时遇到困难

我有一个ECS的回购,已经使用ecs-cli创build了一个集群 ecs-cli configure –region=us-west-2 –profile=<MY PROFILE> –cluster=cluster-1 ecs-cli up –capability-iam –keypair=<MY KEYPAIR> 但是那么执行组合文件的下一步就是失败 ecs-cli compose –file docker-compose.yml –project-name drafter-project service up 这是我的docker-compose.yml文件: version: '2' services: rabbit: image: rabbitmq hostname: rabbit1 ports: – 5672:5672 – 15672:15672 drafter: build: . depends_on: – rabbit 我得到的错误是: Error registering task definition error=ClientException: Container.image should not be null or empty. Create […]

是否有可能直接从AWS lambda中调用docker run

我有一个我已经dockerized Java独立的应用程序。 每次将一个对象放到S3存储中,我都想运行这个docker。 在途中是通过AWS批处理,我试图避免。 有一个直接和简单的方法来调用从lambda运行docker运行?

如何理解Amazon ECS群集

我最近尝试使用AWS的任务定义部署Docker容器。 一路上,我遇到了以下问题。 如何将实例添加到集群? 使用Amazon ECS控制台创build新集群时,如何将新的ec2实例添加到新集群。 换句话说,启动新的ec2实例时,需要使用哪种configuration才能将其分配给Amazon ECS下的用户创build的群集。 集群中需要多less个ECS实例,这些因素是什么? 如果在集群中有两个实例(ins1,ins2),并且我的webapp,db容器正在ins1中运行。 在更新运行服务(通过http://docs.aws.amazon.com/AmazonECS/latest/developerguide/update-service.html )之后,我可以看到新创build的服务在“ins2”中运行,旧的服务在“ins1”。 我的问题是,我的webapp容器分配给另一个实例后,访问IP地址成为另一个实例IP。 如何防止或者什么解决scheme使得相同的IP地址访问webapp? 不仅IP,更换新实例后的数据如何?