Ниже приведен подход автоматического масштабирования EC2, выполняемый с ansible task1 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 (скажем) как * Параметр 1035 *,
Как подходить к масштабированию задач ecs на основе коэффициента загрузки приложения? в основном для масштабирования EC2, а затем развертывания приложения в этом EC2, поскольку в приведенном выше коде приложение развертывается в task2 , когда определено stack_config