Help us understand the problem. What is going on with this article?

AWS FargateでAutoScaleを試してみる

More than 1 year has passed since last update.

AWS Fargateでより強力になったAuto Scaleingを実施してみます。
AWS公式のブログを参考に設定を実施しました。

TerraformでECS環境の構築【オートスケール編】を参考にTerraformでも設定します。

旧ECSのAutoScale

コンテナインスタンス(EC2)縛りがありコレジャナイ感があります。
以下2つのAuto Scale設定が必要です。

  • コンテナインスタンスのAuto Scale
  • ECS ServiceAuto Scale

ECS.png

FargateのAutoScale

コンテナインスタンス(EC2)から解放され、ECS Cluster内でtaskを自在に配置できます。

  • コンテナインスタンスのAuto Scale

が不要になりました。

Fargate.png

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起動

前回記事を参考に実施。

  • 実施後のサービスの状態

Service更新.png

CloudWatch Alerm設定

AWS公式のブログを参考に実施

  • 実施後のアラーム状態

CPU利用率は低いため、ScaleInがアラーム状態で、ScaleOutがOKの状態

CloudWatchAlerm設定.png

ECS Service AutoScale設定

AWS公式のブログを参考に実施

  • Serviceの更新

Service更新.png

  • Auto Scaling Policy設定

作成したAlermを選択し、クールダウン期間はテスト用に60秒に修正
以下同様に、ScaleInPolicyも作成

AutoScalePolicy設定.png

  • 設定後のAuto Scalingの状態

タスクの最大数も調整の上、更新する

ServiceのAutoScale.png

負荷を掛ける

Apache Bench等で負荷を掛けて、ScaleOutAlermを発火させます。
必要に応じ、セキュリティグループの調整も実施してください。

bash
$ ab -n 1000000 -c 1000 http://fargate-nginx-alb-XXXXXXXXXXXX.us-east-1.elb.amazonaws.com/
  • ScaleOutが発火した状態

ScaleOut発火.png

  • taskが2つRUNNINGになります

サービス2つRunning.png

アクセス停止

CPU利用率が低下し、ScaleInAlermが発火して、taskが停止します。

  • AutoScale履歴

Alermによるstart及びstopの履歴が参照できる。

AutoScale履歴.png

  • taskが1つ(再小数)RUNNINGに戻る

サービス1つRunning.png

最後に

ECSでは苦労した、Auto Scaleがあっさり制約なしで実現できるようになりました。
東京リージョン上陸が待ち遠しいですね。

bigtreetc
お客様のデジタルトランスフォーメーションの実現をミッションとして、DXに欠かせない「クラウド」「AI」「デジタルマーケティング」「RPA」をコアテクノロジーとして位置付け、各テクノロジーのプロフェッショナルチームにより専門的なサービスを提供しています。
https://www.bigtreetc.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away