我想在AWS Fargate中尝试AutoScale
让我们在AWS Fargate上实施更强大的自动扩展。我们根据AWS官方博客的参考进行了设置。
我們將使用Terraform以ECS環境構建(自動調整規模)為參考,也在Terraform中進行設定。
旧版ECS的自动扩缩容功能。
在中国人的母语中,以下是给出的唯一选择:
有一种框架叫作Elastic Compute Cloud (EC2),让人感到束缚并产生了一种不自在的感觉。
下面需要两个自动伸缩的设定。
-
- コンテナインスタンスのAuto Scale
ECS ServiceのAuto Scale
Fargate的自动扩展 (Fargate de
您可以将容器实例(EC2)从释放,并在ECS集群中自由地配置任务。
- コンテナインスタンスのAuto Scale
我不再需要了。
使用Terraform进行配置
我会立即在以下位置进行创建:
https://github.com/Thirosue/terraform-sample/tree/master/aws_fargate
请将ECS与下面的差异进行比较:
https://github.com/Thirosue/terraform-sample/tree/master/aws_ecs
- プロビジョニング
$ cd /path/to/directory/aws_fargate
$ cat terraform.tfvars
access_key="[アクセスキー記載]"
secret_key="[シークレットキーを記載]"
aws_id="[AWS IDを記載]"
$ terraform plan
$ terraform apply
- 破棄
$ terraform destroy
在管理控制台中进行设置。
Fargate启动
根据上一篇文章进行参考并实施。
- 実施後のサービスの状態
云监控警报设置
参考AWS官方博客进行实施。
- 実施後のアラーム状態
由于CPU利用率较低,所以ScaleIn处于警报状态,而ScaleOut处于正常状态。
ECS服务的自动扩缩容设置
参考AWS官方博客进行实施。
Serviceの更新
Auto Scaling Policy設定
选择已创建的闹钟,并将冷却时间调整为60秒,仅供测试使用。接着,创建相同的 ScaleIn 策略。
- 設定後のAuto Scalingの状態
根据需要调整任务的最大数量并进行更新。
施加负荷
使用Apache Bench等工具对系统施加压力,触发ScaleOutAlarm。根据需要,请进行安全组的调整。
$ ab -n 1000000 -c 1000 http://fargate-nginx-alb-XXXXXXXXXXXX.us-east-1.elb.amazonaws.com/
ScaleOutが発火した状態
taskが2つRUNNINGになります
禁止访问
CPU利用率下降,触发了ScaleInAlarm,任务停止运行。
AutoScale履歴
可以查看通过Alarm启动和停止的历史记录。
taskが1つ(再小数)RUNNINGに戻る
最后
旧有的 ECS 使用起来非常困难,现在 Auto Scale 就可以轻松地无限制地实现。真期待着东京地区的上线啊。