📚
ダウンタイムゼロでECSクラスターのEC2インスタンスをAmazon Linux 2からAmazon Linux 2023へアップデートする
アップデート対象のクラスターに属するECSサービスのデプロイ設定を確認する
- ECSサービス詳細画面で「デプロイ」を選択します。
- 「デプロイ設定」 > 「最小および最大実行タスク」が「最小100%および最大200%」となっているか確認します。
CloudFormation経由でAuto Scaling Groupの新しいリビジョン(AmazonLinux2023)を作成する。
- AWS CloudFormationコンソールを開き、対象のECSクラスターに属するAuto Scaling Groupのスタックを選択します。
- スタック詳細画面で「更新」を選択し、「既存のテンプレートを使用」を選択します。
- 「スタックの詳細を指定」画面でテンプレートのパラメータを確認し、AMI IDを最新バージョンに更新するなど、必要に応じて変更します。
- 「LatestECSOptimizedAMI」 セクションで"/aws/service/ecs/optimized-ami/amazon-linux-2023/recommended/image_id"を指定することで、最新のAL2023 AMI IDを取得します。
- 「(次へ)」を選択し、以降のページで変更内容を確認しながら更新を進めます。
- 「送信」をクリックして変更をデプロイします。
- CloudFormationコンソールでスタック更新のステータスを監視します。スタックは約15分以内に 「UPDATE_COMPLETE」ステータスになるはずです。
- 「EC2」コンソール > 「Auto Scaling グループ」で対象のAuto Scaling Groupを選択し、「起動テンプレート」詳細画面で新しいリビジョンが作成されていることを確認し、AMI IDがAL2023のものであることを確認します。
Auto Scaling Groupのインスタンスを更新する
- 「EC2」コンソール > 「Auto Scaling グループ」で対象のAuto Scaling Groupを選択し、「インスタンスの更新」を選択します
- 「インスタンスの更新を開始する」をクリックし、「終了する前に起動」を選択し、「起動テンプレートを更新する」にチェックを入れます。
- 新しく作成したリビジョンを選択し、「インスタンスの更新を開始する」をクリックします。
- インスタンスの更新が完了するまで約10分~20分ほど待ちます。
- インスタンスが更新され、ECSタスクが新しいインスタンスに配置されていることを確認します。
参照
- Replacing Auto Scaling instances based on an instance refresh - https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-instance-refresh.html?icmpid=docs_ec2as_console
- Start or cancel an instance refresh (console) - https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-instance-refresh.html?icmpid=docs_ec2as_console#start-instance-refresh-console
- Start or cancel an instance refresh (AWS CLI) - https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-instance-refresh.html?icmpid=docs_ec2as_console#start-instance-refresh-cli
- Automatically update instances in an Amazon ECS cluster using the AMI ID parameter - https://aws.amazon.com/blogs/compute/automatically-update-instances-in-an-amazon-ecs-cluster-using-the-ami-id-parameter/
https://aws.amazon.com/blogs/compute/refreshing-an-amazon-ecs-container-instance-cluster-with-a-new-ami/ - Refreshing an Amazon ECS Container Instance Cluster With a New AMI - https://aws.amazon.com/blogs/compute/refreshing-an-amazon-ecs-container-instance-cluster-with-a-new-ami/
- Changing the launch configuration for an Auto Scaling group - https://docs.aws.amazon.com/autoscaling/ec2/userguide/change-launch-config.html
Discussion