EC2 Auto Scaling Instance Refresh のキャンセルとロールバックの違いを確認しつつ試してみた

EC2 Auto Scaling Instance Refresh のキャンセルとロールバックの違いを確認しつつ試してみた

2026.01.05

はじめに

テクニカルサポートの 片方 です。
以前に公開した ブログ では EC2 Auto Scaling の Instance Refresh に追加された Replace Root Volume(ルート EBS ボリューム置換)を使い、起動中の EC2 インスタンスを停止することなく OS を更新する方法を紹介しました。
Instance Refresh は便利な一方で、設定や利用状況によっては、期待した結果と異なる挙動となる場合もあるかと思います。
その様な場合 EC2 Auto Scaling では、Instance Refresh の制御手段として、以下 2 つの方法が用意されています。

  • キャンセル(Cancel)
  • ロールバック(Rollback)

本記事では、キャンセルとロールバックの違いを整理しつつ、試してみました。
なお、Instance Refresh には Skip Matching という、すでに Desired Configuration と一致しているインスタンスを置き換え対象から除外する機能も用意されています。
キャンセルとロールバックに焦点を当てるため詳細は割愛しますが、Instance Refresh の実行対象を制御したい場合にはご検討ください。

https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-instance-refresh-skip-matching.html

キャンセルとロールバックの違いについて

どちらも Instance Refresh が 進行中の場合のみ実行可能で、完了後には実行できない点は共通しています。
一方で、目的と挙動は明確に異なります。
ドキュメントに沿って、その違いを整理すると以下となります。

項目 キャンセル ロールバック
目的 更新処理を止める 変更を元に戻す
実行可能タイミング Instance Refresh 実行中のみ Instance Refresh 実行中のみ
既に更新されたインスタンス そのまま残る 再度置き換えられる
更新前の構成に戻るか 戻らない 戻る
Replace Root Volume 時の注意 ルートボリュームは戻らない 元の AMI で再作成される

キャンセル(Cancel)

キャンセルは、進行中の Instance Refresh を中断するための操作です。
本機能のポイントとしては以下がございます。

  • Instance Refresh の進行を止めるだけ
  • すでに置き換えられたインスタンスは元に戻らない

https://docs.aws.amazon.com/autoscaling/ec2/userguide/cancel-instance-refresh.html

You can cancel an instance refresh that is still in progress. You can't cancel it after it's finished.
Canceling an instance refresh does not roll back any instances that were already replaced.

やってみた

以下の AWS CLI コマンドでルート EBS ボリュームの置き換えを実行します。

$ aws autoscaling start-instance-refresh --cli-input-json file://config.json

完了する前に、以下の AWS CLI コマンド例を参考に キャンセル(Cancel)します。

$ aws autoscaling cancel-instance-refresh \
  --auto-scaling-group-name <my-asg>

もし、起動・終了中のインスタンスを待たずに即座にキャンセル状態にしたい場合は、次のオプションを使用できます。

$ aws autoscaling cancel-instance-refresh \
  --auto-scaling-group-name <my-asg> \
  --no-wait-for-transitioning-instances

002
003

非常に簡単ですね。
マネジメントコンソール画面側の操作では、[インスタンス更新] タブの [アクティブなインスタンス更新] で、 [アクション]、 [キャンセル] を選択すれば可能です。

005
006
007

なお、CloudTrail のイベント履歴では、CancelInstanceRefresh のイベント名が確認できます。

ロールバック(Rollback)

ロールバックは、Instance Refresh による変更を元の構成に戻すための操作です。
本機能のポイントとしては以下がございます。

  • すでに更新されたインスタンスも含めて再度置き換え
  • Instance Refresh 開始前に保存されていた Auto Scaling グループの構成に戻る
  • 「更新内容に問題があったため元に戻したい」場合に使用する

Replace Root Volume の場合もロールバックは可能であるものの、以下の挙動となる。

  • 元のルート EBS ボリュームが復活するわけではない
  • 更新前の AMI を使って、再度ルートボリュームが作成される

Undo changes with a manual or auto rollback - Amazon EC2 Auto Scaling
https://docs.aws.amazon.com/autoscaling/ec2/userguide/instance-refresh-rollback.html

You can roll back an instance refresh that is still in progress. You can't roll it back after it's finished. You can, however, update your Auto Scaling group again by starting a new instance refresh.

When rolling back, Amazon EC2 Auto Scaling replaces the instances that have been deployed so far. The new instances match the configuration that you last saved on the Auto Scaling group before starting the instance refresh.

また、ロールバックには 2 種類あります。

  • 手動ロールバック
    ご自身で判断してマネジメントコンソール画面や AWS CLI コマンドから実行する方法です。

  • 自動ロールバック
    Instance Refresh 開始時に設定しておくことで、失敗時に 自動的にロールバックされます。
    代表的なトリガーは "Instance Refresh が失敗した場合" と "指定した CloudWatch アラームが ALARM 状態になった場合" です。

本ブログでは手動でロールバックする方法のみ紹介します。

やってみた

以下の AWS CLI コマンドでルート EBS ボリュームの置き換えを実行します。

$ aws autoscaling start-instance-refresh --cli-input-json file://config.json

完了する前に、以下の AWS CLI コマンド例を参考にロールバック(Rollback)します。

$ aws autoscaling rollback-instance-refresh \
  --auto-scaling-group-name <my-asg>

008
こちらも、非常に簡単ですね。
マネジメントコンソール画面側の操作では、[インスタンスの更新] タブの [アクティブインスタンスの更新] で、[アクション] および [ロールバック開始] を選択すれば可能です。

009
0010

CloudTrail のイベント履歴では、RollbackInstanceRefresh のイベント名が確認できます。

まとめ

本ブログが誰かの参考になれば幸いです。

参考資料

クラスメソッドオペレーションズ株式会社について

クラスメソッドグループのオペレーション企業です。
運用・保守開発・サポート・情シス・バックオフィスの専門チームが、IT・AIをフル活用した「しくみ」を通じて、お客様の業務代行から課題解決や高付加価値サービスまでを提供するエキスパート集団です。
当社は様々な職種でメンバーを募集しています。
「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、クラスメソッドオペレーションズ株式会社 コーポレートサイト をぜひご覧ください。※2026年1月 アノテーション㈱から社名変更しました

この記事をシェアする

FacebookHatena blogX

関連記事