Bra*_*inn 5 amazon-web-services aws-cloudformation amazon-elastic-beanstalk
我们有一种情况,我们希望以通常的Elastic Beanstalk方式运行Django服务器,同时连接Django网站使用的自定义Docker容器.到目前为止,我基本上有以下.ebextensions配置文件:
packages:
yum:
ecs-init: []
files:
/etc/ecs/ecs.config:
mode: "000644"
owner/group: root
content: ECS_CLUSTER=${Ref: MyCluster}
commands:
01_start_docker: sudo service docker start
02_start_ecs: sudo start ecs
Resources:
MyCluster:
Type: AWS::ECS::Cluster
MyService:
Type: AWS::ECS::Service
Properties:
Cluster: ${Ref: MyCluster}
DesiredCount: 1
TaskDefinition: ${Ref: MyTask}
MyTask:
Type: AWS::ECS::TaskDefinition
Properties:
ContainerDefinitions:
- ...
Run Code Online (Sandbox Code Playgroud)
问题是ECS服务正在尝试在向群集注册Elastic Beanstalk提供的EC2实例之前启动.因此,部署到Elastic Beanstalk会挂起.如果我手动SSH连接到EC2实例并手动安装ecs-init,创建ecs.config和运行命令,则会继续创建服务并成功创建EB环境.
有没有办法让服务等到EB的自动缩放组创建的EC2实例注册到集群?
更多背景:
想清楚了之后自己解决了。
将 Elastic Beanstalk 启动(通过 AutoScaling)的每个 EC2 实例注册到 ECS 集群是没有意义的。ECS 任务应该只有一个实例。因此,实际上有必要创建一个单独的 EC2 实例来连接到 ECS 集群(其服务现在可以依赖于 EC2 实例)。
| 归档时间: |
|
| 查看次数: |
299 次 |
| 最近记录: |