问题标签 [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.
amazon-web-services - 宽限期?- AWS EC2 容器服务和弹性负载均衡器
当弹性负载均衡器 (ELB) 与自动扩展组关联时,可以指定一个宽限期,在此期间新的 EC2 实例不会被终止,即使它们被 ELB 标记为不健康。是否可以指定一个类似的宽限期,在此期间新的 ECS 任务不会被其关联的 ECS 服务杀死并重新启动,即使运行任务的 ECS 实例已被 ELB 标记为不健康?
更新:
在我们当前的用例中,作为 ECS 任务运行的 docker 容器包含一个 JBoss 实例,该实例在启动时加载许多缓存。这些缓存可能需要几分钟才能加载。但是,ECS 服务会在容器启动后立即向 ELB 注册容器实例。这意味着流量可以在准备好接受之前路由到新容器。我们可以增加 ELB 上的健康检查间隔和“健康/不健康阈值”,以防止 ELB 将流量路由到实例以及 ECS 服务在缓存加载之前重启容器。但是,增加健康检查间隔和阈值是不可取的,因为如果在加载缓存后实例被标记为不健康,
因此,是否可以应用一个宽限期,在此期间 ELB 不会将流量路由到新容器,并且 ECS 服务不会重新启动容器(即使它未通过健康检查)?或者如果做不到这一点,对于我们的用例的解决方案有什么建议吗?
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 控制台的屏幕截图:
总是有一个正在运行的实例。
这是我的 ECS Web 控制台的屏幕截图,我已在其中删除了所有集群。
在这一点上,我找不到关于这个问题的任何文档或博客。:(
amazon-web-services - 如何使用 PHP 在 AWS 上启动任务 ECS
我尝试使用 PHP SDK 在 ECS(Ec2 容器服务)上启动我的“TaskDefinition”。
- 我创建了任务定义。
- 我创建了集群。
- 我创建了服务。
我以为下一步是“registerContainerInstance”,但是当我调用此方法时,出现错误:
[Aws\Ecs\Exception\EcsException]在“ https://ecs.eu-west-1.amazonaws.com
” 上执行“RegisterContainerInstance”时出错;AWS HTTP 错误:客户端错误:400 ClientException(客户端):提供了身份文件,但无效。- {" __type":"ClientException","message":"提供了身份证件,但无效。"}
这是因为我不发送“instanceIdentityDocument”和“instanceIdentityDocumentSignature”。但是,我不知道如何获得这两个参数。
我之前应该手动启动 EC2 吗?
还有另一种我不知道的方法吗?
http - ECS不会启动实例,“无法放置任务,因为找不到资源”。
我无法弄清楚为什么我的 ecs 服务无法启动,并且一直收到错误“服务无法放置任务,因为找不到资源”。
在我的任务定义中,我有 500 个专用 cpu 单元和 250 个内存,这只是一个非常小的示例节点应用程序,它只是为我的静态资产提供服务。
我正在启动我的服务,有 1 个任务,没有 ELB。
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 角色和权限,因此这不应该是权限问题。
有人有类似的问题吗?
amazon-ec2 - 如何在 aws 上部署 docker 容器而不使用弹性 beanstalk 或 ec2 容器服务
我想使用 docker 容器,而不必使用弹性 beanstalk 或 ec2 容器服务。我想上传一个.zip
描述容器的文件(就像你使用弹性 beanstalk 一样)并让一个通用的 ec2 实例使用 docker 运行它。
在查看user data
beanstalk 创建的运行 docker 容器的 ec2 实例的部分时,我看到一个 cloud-init 脚本,它下载了一个执行所有设置的大 shell 脚本(示例)。我假设弹性 beanstalk 所做的一切也可以通过使用 ec2 实例和user data
脚本手动实现。
我的问题是:有人可以提供一个脚本的最小示例user data
- 安装/配置 docker
- 下载 .zip 文件
- 运行我的 docker 镜像
我熟悉自动缩放组等,我希望在不使用 beanstalk 或 ec2 容器服务魔法的情况下运行此设置。
docker - Docker:用于开发和生产环境的不同 ENV 变量
我有 Docker 容器,我将其部署在 Amazon ECS 上。Docker 容器运行 supervisord,后者又运行 3 个不同的程序。
自然,我想为本地开发和生产使用不同的环境变量来区分 API 密钥、API 端点等。这样做的好方法是什么?
这是我应该在 Dockerfile、Amazon ECS 或 supervisord conf 文件中设置的吗?
amazon-ec2 - 运行存储在 EC2 容器实例中的 Docker 映像
我正在使用 EC2 容器实例来构建我的 docker 映像。然后我想使用 ECS 服务来安排任务。我的图像已经呈现在 EC2 容器实例中。
我需要将它推送到 Docker Hub 吗?
或者我可以直接从 EC2 容器实例运行这个图像吗?
有没有最佳实践?
amazon-ec2 - 从 Docker 容器获取控制台输出
我构建了一个安装了 Python 的图像和一个 Python 应用程序。我的 Python 应用程序是Hello, World!应用程序,只需打印“Hello, World!” 屏幕上。Dockerfile:
在控制台中我执行:
我可以看到你好,世界!输出。现在我正在尝试使用 ECS 中的任务执行相同的应用程序。我已经把它拉到了 Docker Hub。
我怎样才能看到输出Hello, World! ? 有没有办法查看我的容器是否正常运行?
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
并杀死了所有容器。
这是日志
有没有人遇到过这个问题?有谁知道出了什么问题?谢谢