问题标签 [amazon-ecs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1593 浏览

amazon-web-services - 宽限期?- AWS EC2 容器服务和弹性负载均衡器

当弹性负载均衡器 (ELB) 与自动扩展组关联时,可以指定一个宽限期,在此期间新的 EC2 实例不会被终止,即使它们被 ELB 标记为不健康。是否可以指定一个类似的宽限期,在此期间新的 ECS 任务不会被其关联的 ECS 服务杀死并重新启动,即使运行任务的 ECS 实例已被 ELB 标记为不健康?

更新:

在我们当前的用例中,作为 ECS 任务运行的 docker 容器包含一个 JBoss 实例,该实例在启动时加载许多缓存。这些缓存可能需要几分钟才能加载。但是,ECS 服务会在容器启动后立即向 ELB 注册容器实例。这意味着流量可以在准备好接受之前路由到新容器。我们可以增加 ELB 上的健康检查间隔和“健康/不健康阈值”,以防止 ELB 将流量路由到实例以及 ECS 服务在缓存加载之前重启容器。但是,增加健康检查间隔和阈值是不可取的,因为如果在加载缓存后实例被标记为不健康,

因此,是否可以应用一个宽限期,在此期间 ELB 不会将流量路由到新容器,并且 ECS 服务不会重新启动容器(即使它未通过健康检查)?或者如果做不到这一点,对于我们的用例的解决方案有什么建议吗?

0 投票
3 回答
2078 浏览

amazon-web-services - 无法删除 ECS 的 EC2 实例(EC2 容器服务)

由于最近推出了 Amazon ECS,我尝试使用它开始一个示例。看起来 ECS 将创建一个 EC2 实例作为 ECS 的“集群”,其名称类似于“ECS Instance - EC2ContainerService-default-e40c3e79-1d27-4512-a790-c6782b45b15a”。但是,当我不想再为我的容器提供服务时,我找不到删除此 EC2 实例的方法。

当我通过 Web 控制台终止此实例时,稍后将显示另一个具有相同名称(但实例 ID 不同)的实例。这很烦人,已经向我收取了一些钱。这是 EC2 Web 控制台的屏幕截图:

EC2 Web 控制台的屏幕截图

总是有一个正在运行的实例。

这是我的 ECS Web 控制台的屏幕截图,我已在其中删除了所有集群。

在此处输入图像描述 在此处输入图像描述

在这一点上,我找不到关于这个问题的任何文档或博客。:(

0 投票
1 回答
890 浏览

amazon-web-services - 如何使用 PHP 在 AWS 上启动任务 ECS

我尝试使用 PHP SDK 在 ECS(Ec2 容器服务)上启动我的“TaskDefinition”。

  1. 我创建了任务定义。
  2. 我创建了集群。
  3. 我创建了服务。

我以为下一步是“registerContainerInstance”,但是当我调用此方法时,出现错误:

[Aws\Ecs\Exception\EcsException]在“ https://ecs.eu-west-1.amazonaws.com
” 上执行“RegisterContainerInstance”时出错;AWS HTTP 错误:客户端错误:400 ClientException(客户端):提供了身份文件,但无效。- {" __type":"ClientException","message":"提供了身份证件,但无效。"}

这是因为我不发送“instanceIdentityDocument”和“instanceIdentityDocumentSignature”。但是,我不知道如何获得这两个参数。

我之前应该手动启动 EC2 吗?

还有另一种我不知道的方法吗?

0 投票
1 回答
1407 浏览

http - ECS不会启动实例,“无法放置任务,因为找不到资源”。

我无法弄清楚为什么我的 ecs 服务无法启动,并且一直收到错误“服务无法放置任务,因为找不到资源”。

在我的任务定义中,我有 500 个专用 cpu 单元和 250 个内存,这只是一个非常小的示例节点应用程序,它只是为我的静态资产提供服务。

我正在启动我的服务,有 1 个任务,没有 ELB。

0 投票
8 回答
27444 浏览

amazon-web-services - 用于创建 ECS 服务的 Cloudformation 模板卡在 CREATE_IN_PROGRESS

我正在使用 Cloudformation 创建 AWS ECS 服务。

一切似乎都成功完成,我可以看到实例已附加到负载均衡器,负载均衡器正在声明该实例是健康的,如果我点击负载均衡器,我将成功地被带到我正在运行的容器中。

查看 ECS 控制面板,我可以看到服务已经稳定,并且一切正常。我还可以看到容器是稳定的,并且没有被终止/重新创建。

但是,Cloudformation 模板永远不会完成,它一直卡在CREATE_IN_PROGRESS大约 30-60 分钟后,当它回滚声称服务没有稳定时。查看 CloudTrail,我可以看到许多RegisterInstancesWithLoadBalancer实例化的ecs-service-scheduler,都具有相同的参数,即相同的实例 ID 和负载均衡器。我正在为 ECS 使用标准 IAM 角色和权限,因此这不应该是权限问题。

有人有类似的问题吗?

0 投票
2 回答
2037 浏览

amazon-ec2 - 如何在 aws 上部署 docker 容器而不使用弹性 beanstalk 或 ec2 容器服务

我想使用 docker 容器,而不必使用弹性 beanstalk 或 ec2 容器服务。我想上传一个.zip描述容器的文件(就像你使用弹性 beanstalk 一样)并让一个通用的 ec2 实例使用 docker 运行它。

在查看user databeanstalk 创建的运行 docker 容器的 ec2 实例的部分时,我看到一个 cloud-init 脚本,它下载了一个执行所有设置的大 shell 脚本(示例)。我假设弹性 beanstalk 所做的一切也可以通过使用 ec2 实例和user data脚本手动实现。

我的问题是:有人可以提供一个脚本的最小示例user data

  1. 安装/配置 docker
  2. 下载 .zip 文件
  3. 运行我的 docker 镜像

我熟悉自动缩放组等,我希望在不使用 beanstalk 或 ec2 容器服务魔法的情况下运行此设置。

0 投票
2 回答
261 浏览

docker - Docker:用于开发和生产环境的不同 ENV 变量

我有 Docker 容器,我将其部署在 Amazon ECS 上。Docker 容器运行 supervisord,后者又运行 3 个不同的程序。

自然,我想为本地开发和生产使用不同的环境变量来区分 API 密钥、API 端点等。这样做的好方法是什么?

这是我应该在 Dockerfile、Amazon ECS 或 supervisord conf 文件中设置的吗?

0 投票
1 回答
196 浏览

amazon-ec2 - 运行存储在 EC2 容器实例中的 Docker 映像

我正在使用 EC2 容器实例来构建我的 docker 映像。然后我想使用 ECS 服务来安排任务。我的图像已经呈现在 EC2 容器实例中。

我需要将它推送到 Docker Hub 吗?

或者我可以直接从 EC2 容器实例运行这个图像吗?

有没有最佳实践?

0 投票
5 回答
51202 浏览

amazon-ec2 - 从 Docker 容器获取控制台输出

我构建了一个安装了 Python 的图像和一个 Python 应用程序。我的 Python 应用程序是Hello, World!应用程序,只需打印“Hello, World!” 屏幕上。Dockerfile:

在控制台中我执行:

我可以看到你好,世界!输出。现在我正在尝试使用 ECS 中的任务执行相同的应用程序。我已经把它拉到了 Docker Hub。

我怎样才能看到输出Hello, World! ? 有没有办法查看我的容器是否正常运行?

0 投票
0 回答
1292 浏览

selenium - 使用 Amazon ECS 服务运行 selenium 容器时出错

我试图使用 Amazon EC2 Container Serivce(ECS) 来托管我的 selenium 集线器/节点来进行浏览器测试。我的设置如下

docker-compse.yml

然后我曾经ecs-cli compose service up启动运行这些容器的服务。到目前为止它有效。

但是当我将测试指向集线器(xxxx.com:4444)时,集线器收到了我的测试请求,并将测试分发到 chrome 容器,chrome 容器得到了测试并尝试创建一个新会话。然后它说only local connections are allowed并杀死了所有容器。

这是日志

有没有人遇到过这个问题?有谁知道出了什么问题?谢谢