gpt4 book ai didi

amazon-web-services - 在 AWS Fargate 上暂停容器

转载 作者:行者123 更新时间:2023-12-04 08:02:26 25 4
gpt4 key购买 nike

我计划在 Fargate 上使用 AWS Elastic Container Service 部署 Docker 容器。

我找不到任何关于暂停 docker 容器和相关计费的有值(value)的信息。

是否可以在 Fargate 上暂停 Docker 容器以节省 CPU/内存费用?用例不时使用容器,但不想重新生成新容器,只是暂停并恢复现有容器。类似于 DigitalOcean 的快照。

最佳答案

正如您可能已经在 Task Lifecycle 上看到的那样,没有 PAUSED 状态,所以不,不可能暂停和恢复任务。

最好的方法是定义一个自动缩放策略,为您管理事件任务,这非常适合节省 CPU/内存费用。

由于您的用例不时需要这些容器,因此诀窍是定义“当我需要它们时我如何理解”。例如,您可以将某些内容推送到 SQS 队列中,并且仅当队列中至少有 1 个元素时才生成 2 个任务。处理完成后,自动缩放策略将终止任务,您将无需支付任何费用。

使用 CloudFormation,您可以像这样定义目标服务:

ECSTarget:
Type: AWS::ApplicationAutoScaling::ScalableTarget
Properties:
MaxCapacity: 2
MinCapacity: 0
ResourceId: !Join ["/", [service, !Ref MyCluster, !GetAtt [MyService, Name]]]
RoleARN: !GetAtt [ EcsAutoScalingRole, Arn ]
ScalableDimension: ecs:service:DesiredCount
ServiceNamespace: ecs

定义缩放规则

ECSScaleUp:
Type: AWS::ApplicationAutoScaling::ScalingPolicy
Properties:
PolicyName: !Join ['-', ['MyService', 'ScaleUpPolicy']]
PolicyType: StepScaling
ScalingTargetId: !Ref ECSTarget
StepScalingPolicyConfiguration:
Cooldown: 30
MetricAggregationType: "Average"
AdjustmentType: "ExactCapacity"
StepAdjustments:
- MetricIntervalLowerBound: 0
ScalingAdjustment: 2

ECSScaleDown:
Type: AWS::ApplicationAutoScaling::ScalingPolicy
Properties:
PolicyName: !Join ['-', ['MyService', 'ScaleDownPolicy']]
PolicyType: StepScaling
ScalingTargetId: !Ref ECSTarget
StepScalingPolicyConfiguration:
Cooldown: 30
MetricAggregationType: "Average"
AdjustmentType: "ExactCapacity"
StepAdjustments:
- MetricIntervalUpperBound: -1
ScalingAdjustment: 0

然后定义一个Alarm来触发自动缩放

ECSSQSAlarm:
Type: AWS::CloudWatch::Alarm
Properties:
AlarmName: !Join ['-', [!Ref 'MyService', 'SQSAlarm']]
AlarmDescription: "Trigger ECS Service Scaling based on SQS queue"
Namespace: "AWS/SQS"
MetricName: "ApproximateNumberOfMessagesVisible"
ComparisonOperator: "GreaterThanThreshold"
Dimensions:
- Name: QueueName
Value: !GetAtt [ MyQueue, QueueName]
EvaluationPeriods: 2
Period: 60
Statistic: 'Average'
Threshold: 1
AlarmActions:
- !Ref ECSWorkerScaleUp
- !Ref ECSWorkerScaleDown
OKActions:
- !Ref ECSWorkerScaleUp
- !Ref ECSWorkerScaleDown

关于amazon-web-services - 在 AWS Fargate 上暂停容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49818279/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com