Amazon web services aws中被阻止的端口和自动缩放组

Amazon web services aws中被阻止的端口和自动缩放组,amazon-web-services,amazon-ec2,ansible,amazon-ecs,Amazon Web Services,Amazon Ec2,Ansible,Amazon Ecs,我有一个具有以下设置的自动缩放组: - name: configure auto-scaling group ec2_asg: name: "{{ application_name }}-{{ application_environment }}-auto-scaling-group" availability_zones: - "{{ region }}a" - "{{ region }}b"

我有一个具有以下设置的自动缩放组:

- name: configure auto-scaling group
      ec2_asg:
        name: "{{ application_name }}-{{ application_environment }}-auto-scaling-group"
        availability_zones:
          - "{{ region }}a"
          - "{{ region }}b"
          - "{{ region }}c"
        state: present
        launch_config_name: "{{ application_name }}-{{ application_environment }}-launch-configuration"
        min_size: 1
        max_size: 2
        region: "{{ region }}"
        desired_capacity: 2
        tags:
          - environment: "{{application_environment}}"
        vpc_zone_identifier:
          - "{{ vpc.subnets[0].id }}"
          - "{{ vpc.subnets[1].id }}"
          - "{{ vpc.subnets[2].id }}"
它正在旋转两个ec2实例

在这两个实例中,都有一个服务正在运行,nginx正在侦听端口80。我知道我不能使用端口80两次。该服务的预期容量为2,但我愿意在滚动更新期间运行一个

但是,如果更新服务和任务定义,则会出现以下错误:

错误:(service myapp testing service)无法放置任务,因为没有容器实例满足其所有要求。最接近的匹配(容器实例24d9d97e-c979-41a3-a438-212390612ae3)已在使用任务所需的端口。有关更多信息,请参阅《Amazon ECS开发人员指南》中的疑难解答部分。

是的,端口被阻塞了。在这种情况下,我想做的是,一个nginx服务被关闭,新的被使用,另一个在那之后被关闭并替换为新的


我原以为这是默认行为,但看起来并非如此——或者我有什么问题吗?

您需要重新配置您的ECS服务配置,以使用
myapp测试服务

将最小健康百分比设置为50


这将允许您的服务在部署新版本时运行旧版本的1个任务。

这是Amazon Ecs,对吗?是的,这是Amazon ECSOkay。尝试配置更改。嗯,看起来ansible缺少配置(),但我确实在控制台中看到了它。我检查一下。服务部署的事件顺序是什么?我猜最大健康百分比是200。将最大健康百分比设置为100可能会有所帮助。但我认为ECS失败并找出新任务的部署位置是可以的。它是200%,我将尝试100.100%的工作,现在我想起来了,它确实很有意义。