🍣
AWSのCLIを使ってECSをスケジュールベースでスケールさせる
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