🍣

AWSのCLIを使ってECSをスケジュールベースでスケールさせる

2023/05/09に公開

1.CLIのインストールとログイン方法

参考記事:https://qiita.com/Mayumi_Pythonista/items/324c16ca98435df7d78d

CLIで以下を入力していく

$ aws configure
AWS Access Key ID [None]:ダッシュボードで確認
AWS Secret Access Key [None]:ダッシュボードで確認
Default region name [None]:リージョンを確認(ap-northeast-1など)
Default output format [None]: json

2.sampleロールにスイッチできるようにconfigファイルの修正

参考記事:https://dev.classmethod.jp/articles/aws-cli-assume-role-with-mfa/

CLIで以下を入力していく。MFA認証ある場合はその設定もする。

$ vi ~/.aws/config

iで修正

[default]
region = ap-northeast-1
output = json

[profile sample]
role_arn = arn:aws:iam::[アカウントID]:role/[ユーザーロール]
source_profile = default
region = ap-northeast-1
mfa_serial = arn:aws:iam::[アカウントID]:mfa/[アカウント名]

3.sampleロールにスイッチできるようにcredentialsを修正

CLIで以下を入力していく

$ vi ~/.aws/credentials

iで修正

aws_access_key_id = ダッシュボードから確認
aws_secret_access_key = ダッシュボードから確認
role_arn = arn:aws:iam::[アカウントID]:[ユーザーロール]

4.スケジューリングを設定

参考記事:https://dev.classmethod.jp/articles/ecs-scheduled-autoscaling/

4-1.resource-idを指定して設定内容を確認する

$ aws application-autoscaling describe-scheduled-actions --service-namespace ecs --profile sample \
  --resource-id service/a \

4-2.設定する

$ aws application-autoscaling put-scheduled-action --profile sample \
 --service-namespace ecs \
 --resource-id service/a \
 --scheduled-action-name sample \
 --schedule "cron(30 7 * * * *)" \
 --scalable-dimension ecs:service:DesiredCount \
 --scalable-target-action MinCapacity=6

4-3.設定を削除をする

$ aws application-autoscaling delete-scheduled-action --profile sample \
--service-namespace ecs \
--resource-id service/a \
--scheduled-action-name sample \
--scalable-dimension ecs:service:DesiredCount \

Discussion