Как политика масштабирования работает для масштабирования задач ECS?
Ниже представлен подход автомасштабирования EC2, выполненный с помощью недоступной задачи1. create_task
:
AutoScalingGroup:
Type: "AWS::AutoScaling::AutoScalingGroup"
Properties:
VPCZoneIdentifier: [ { "Ref": "SubnetId" } ]
LaunchConfigurationName: { "Ref": "AutoScalingLaunchConfiguration" }
MinSize: 0
MaxSize: 2
DesiredCapacity: { "Ref": "InstanceCount" }
Tags:
- Key: "Name"
Value: { "Fn::Join": ["", [ { "Ref": "AWS::StackName" }, " -instance" ] ] }
PropagateAtLaunch: "true"
Политика масштабирования еще не добавлена в приведенный выше код.
Ниже представлено развертывание приложения (контейнера), написанное на ansible task2. app_deployment
, где aws_ecs_service
модуль взят отсюда:
- name: Configure ecs service
aws_ecs_service:
state: present
name: "{{ cf_stack.stack_outputs.SomebackendService }}"
cluster: "{{ cf_stack.stack_outputs.EcsCluster }}"
task_definition: "{{ somebackend_task_def_arn }}"
desired_count: "{{ instance_count | default(1) }}"
deployment_config:
minimumHealthyPercent: 50
maximumPercent: 200
register: configure_ecs_service
when: stack_config is defined
В двух приведенных выше фрагментах InstanceCount
а также instance_count
относятся к тому же значению параметра.
Если количество экземпляров равно 1(скажем) как доступный параметр,
Как подойти к масштабированию задач ecs в зависимости от загруженности приложения? в основном для масштабирования EC2, а затем развертывания приложения в этом EC2, потому что в приведенном выше коде приложение развертывается в task2, когдаstack_config
определено