问题标签 [aws-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 ECS 是否在内部维护任务队列
我们正处于开发阶段。所以我们使用的是由 2 个 EC2 实例组成的 AWS ECS 集群。我们正在使用 Airflow 的 ECSOperator 向 ECS 集群提交任务。我们正在寻求扩展这个过程。所以我们将使用 Airflow 的 Celeryexecutor,它用于在 Airflow 上并发提交和调度任务。
所以问题是,我们应该关心提交给 ECS 的任务数量,还是不管提交给 ECS 的任务数量,它会通过任何内部排队机制为所有任务提供服务而不会失败?
amazon-web-services - 在 ELB 上使用路径路由部署多个全栈 React + Express 应用程序
我目前有四个容器化的 React + Express 应用程序(端口 3001 暴露),它们位于具有四个不同 CNAME 的四个单独的 ECS 实例上。他们每个人都坐在自己的 nginx 服务后面作为反向代理。
鉴于应用程序的数量可能会增加,我希望使用 ELB 在 ECS 上重新部署它,但我遇到了路径路由问题。我的目标是建立一个系统,<url_name>/service-1
将流量路由到引用的容器service-1
等。
目前,服务都处于一个running
状态,但是路由提供了一堆控制台错误,说 react build 命令生成的静态js
和css
文件在<url_name>/
. 有没有人找到在 ELB 上使用路径路由运行多个全栈 React + Express 应用程序的方法,或者添加 Nginx 服务或将 React 主页更新为固定值的解决方法?
amazon-web-services - ECS 无法承担角色
从控制台,我正在调用一个提交批处理作业的 lambda。批处理作业失败,表明 ECS 无法承担为执行作业定义而提供的角色。
对于角色,我添加了 lambda 和 ECS 服务。
错误信息:
“ECS 无法承担为此任务提供的角色‘arn:aws:iam::749340585813:role/golfnow-invoke-write-progress’。请验证所传递的角色是否具有正确的信任关系和权限,并且您的 IAM 用户有权传递此角色。”
批处理作业:
调用方式有问题吗?我的用户具有管理员权限,所以我认为这不是我的用户权限不足的问题。
apache-kafka - 无法连接到 Zookeeper 容器 - AWS ECS 环境
尝试使用 ALB 在 AWS ECS 环境中启动 Apache Kafka 和 zookeeper。启动后,docker 实例会在几秒钟后被杀死。Zookeeper 实例已链接到 kafka 实例。
启动 Kafka 容器时使用的环境变量:
kafka 容器的 Docker 日志
Zookeeper 容器的 Docker 日志:
docker - Configuring AWS ECS cluster to be load-balanced and auto-scaling behind a DNS
I have a recently-Dockerized web app that I'm trying to get running in AWS ECS. I'm using Route 53 for the DNS.
Although I haven't set it up yet in Route 53, my plan is to create a DNS record of api.uat.myapp.example.com
, and what I want is to have that domain name backed by an load-balanced, autoscaleable cluster of my containers living in ECS.
I'm in the ECS Container Network Configuration tab:
Press the "I believe!" button for a minute and let's pretend that I've already created the api.uat.myapp.example.com
domain name in Route 53. What values/configs do I need to add here so that:
- When remote clients try to connect to
api.uat.myapp.example.com
they get routed to a load-balanced container running in my ECS cluster?; and - That load-balanced ECS cluster is auto-scaling (once I figure out where I can configure auto-scaling properties, I'm sure I can figure out how to configure them!)
nginx - 让我们在 AWS ECS 上加密 docker nginx
我正在尝试在 AWS ECS(弹性容器服务)上运行的基于 docker 的应用程序上获取 HTTPS 证书。但是,当最终尝试将 docker 实例部署到 ECS 时,我遇到了一个未定义的问题。
我的设置基于https://github.com/evertramos/docker-compose-letsencrypt-nginx-proxy-companion,他利用了https://github.com/JrCs/docker-letsencrypt-nginx-proxy-companion
不幸的是,两者都没有给出 AWS ECS 的明确示例。我添加的是环境变量 DOCKER_PROVIDER=ecs 在 let's encrypt 容器的环境变量中。在创建我的 docker 容器并将它们上传到 ECS 后,我运行了一个特定于 ecs 的 docker-compose
看起来像
Web 应用程序在端口 5000 上运行。使用 let's encrypt 运行 Web 应用程序和 api 没有问题。
任何想法如何使它与 AWS ECS 一起工作?
java - AWS ECS:任务被映射到错误的目标组
我有一个包含 2 个模块的 Spring 项目:Pets 和 Owners,每个模块都是从单个 MySQL 数据库获取数据的微服务。当我将这两者推送到具有 2 个任务的单个 Docker 容器中时——每个微服务 1 个——它们都启动并运行,并且这些任务被映射到不同的主机端口(32768 和 32769)。但是,当我访问 http://{elb-dns}/pet 时,我得到了 404,但是当我访问 http://{elb-dns}/owner 时,它返回了预期的数据。我了解到宠物任务被映射到错误的目标组,但不知道为什么。
创建 ECS 集群后,以下 AWS CLI“描述”命令输出如下:
我已经确认,当单独部署时,每个微服务都是独立工作的。我正在使用 Application Load Balancer,每个微服务都有自己的目标组。我不确定还有什么可以尝试或检查的。有没有人遇到过类似的问题?我还应该在哪里寻找线索?
更新 1
我将日志记录级别更改为 TRACE,并了解到所有 /pet 和 /owner 调用都被专门路由到 owner 任务。当我尝试 http://{elb-dns}/pet/1 时,以下日志来自所有者任务:
同样的调用不会在宠物任务中产生任何日志,这表明它没有被路由到容器中的正确任务。所以我仍然坚持这个问题。
更新 2
ELB 日志显示,对于 /pet 和 /owner,所有呼叫都被路由到同一个目标组。然而,/pet 应该被路由到一个 TG,/owner 应该被路由到另一个。需要明确的是,我有 3 个 TG:一个在容器端口 8080 上用于 /pet,一个在容器端口 8080 上用于 /owner,一个在容器端口 80 上接受 HTTP 请求。所有三个 TG 都在同一个 VPC 中。
jvm-arguments - 如何在 AWS ECS 中传递 JVM 参数?
我正在尝试在 Amazon ECS 中设置微服务。如何配置 JVM 参数并将其传递给微服务?
amazon-cloudformation - 如何从 CloudFormation“资源创建失败”失败 (AWS::ApplicationAutoScaling::ScalableTarget) 中获取详细的原因信息
我有一个受限的 IAM 用户,我试图获得最低限度的权限来干净地创建基线 ECS CloudFormation 参考架构:
https://github.com/aws-samples/ecs-refarch-cloudformation
但是,我无法部署参考堆栈。我收到此错误:
我是 CloudFormation 的新手,我想知道如何最好地诊断原因。有没有地方可以让我获得有关问题原因的更详细的诊断信息?
FWIW 我可以在完全许可的私有 AWS 账户上部署参考架构,而不会遇到 AWS 打算使用此参考堆栈的任何麻烦。
作为参考,这是 service.yaml 中错误所指的部分:
这是我的命令行:
amazon-ec2 - 在 awsvpc 网络模式下授予容器互联网访问权限
情况如下:
两个容器驻留在同一个任务定义中。
具有此任务定义的服务正在特定的 ec2 实例上运行。
我已将此实例的 VPC 配置为使用 NAT 网关。我认为这是成功的,因为我现在可以从实例本身 ping 到 google。
然而,问题是在我的实例上运行的 docker 容器没有互联网访问权限。
将网络模式切换为桥接显然可以解决这个问题,但是我需要这两个容器之间的双向 REST 流量。据我所知,桥接模式只能实现单向流量。
我的问题:
我可以做些什么来从我的容器中获得 Internet 访问权限?