Amazon EC2 の中断可能なキャパシティ予約を使ってみた
いわさです。
2025年11月頃のアップデートになりますが、Amazon EC2 に「中断可能なキャパシティ予約(Interruptible Capacity Reservations)」という機能が追加されました。
オンデマンドキャパシティ予約(ODCR)の未使用分を、「中断可能」という前提の ODCR として提供し、組織内の他のワークロード向けに一時的に開放できる仕組みです。
通常の ODCR は予約している限りキャパシティは確保され続けますが、使っていなくてもオンデマンド料金が発生します。
中断可能なキャパシティ予約を使うことで、ODCR のオーナーが「今使っていないから一時的に貸す」という形で、組織内の別アカウントやチームにキャパシティを提供することが出来ます。
キャパシティのオーナーはいつでも回収することが出来るみたいです。
ユースケースとしては中断が許容されるようなワークロードで利用が出来そうです。リトライ実装済みのバッチ処理とかかな。
今回こちらの使い方を実際に確認してみたので紹介します。
通常のオンデマンドキャパシティ予約を作成する
まず、ソースとなるオンデマンドキャパシティ予約を作成します。
EC2 コンソールのキャパシティ予約メニューから作成します。

注意点がひとつありまして、中断可能なキャパシティ予約を作成するためには、ソースの ODCR の終了日を設定しない(手動)にする必要があります。[1]

オンデマンドキャパシティ予約が作成できました。

作成した ODCR は EC2 の起動時などに指定が可能です。

中断可能なキャパシティ予約を作成する
次に、作成した ODCR から中断可能なキャパシティ予約を作成します。
オンデマンドキャパシティ予約を選択して、アクションメニューから「中断可能な予約を作成」を選択します。

オンデマンドキャパシティの容量のうち、どの程度を中断可能な予約に割り当てるかを選択します。

今回は元のキャパシティが2なので、1を割り当ててみますか。

元の ODCR 側で中断可能なキャパシティ割り当ての状況を確認することができます。

作成後はキャパシティ予約一覧画面に、元の通常タイプのものと中断可能なタイプのものの2つが表示されています。
元の通常タイプの ODCR が2ではなく1インスタンスのキャパシティになっていることがわかります。割り当てた分だけソース側のキャパシティが減る仕組みですね。

中断可能なキャパシティ予約でインスタンスを起動する
EC2 の起動画面で、中断可能なキャパシティ予約を使ってインスタンスを起動してみます。
キャパシティ予約の項目で、明示的に購入オプションを指定します。選択画面では次のようにタイプで分かれていることに注意してください。

EC2 インスタンスが起動できました。
キャパシティを回収する(Reclamation)
今回検証したかったのがここなのですがこのキャパシティの回収というやつを試してみます。
手順ですが元のキャパシティ予約から「中断可能な割り当てを編集」を選択します。

割り当てるインスタンスを0にします。

実行中インスタンスが終了する場合がある旨の確認が出るので OK を押します。

中断可能なキャパシティ予約のステータスが Updating になりました。

2〜3分待っていると、中断可能なキャパシティ予約を使って起動されたインスタンスが自動でシャットダウン中になりました。その後終了済みになります。

その間に中断可能キャパシティ予約の使用率が0になり、しばらく経つと中断可能キャパシティ予約のステータスが Cancelled になりました。そして元のキャパシティ予約のキャパシティが2に戻っています。無事に回収されました。


なるほどね!
さいごに
本日は Amazon EC2 の中断可能なキャパシティ予約を使ってみました。
Spot インスタンスを採用できるようなワークロードで、かつ組織内でキャパシティ予約を使っていて未使用分があるのであれば、効果的に活用できそうです。
Spot インスタンスと違って中断のタイミングをオーナー側でコントロールできるのが良いですね。






