EC2 インスタンスキャパシティーの予約をしたのに、キャパシティー不足のエラーが出るときの対処方法

2021.02.04

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

困っていた内容

EC2 インスタンスキャパシティーの予約をしたのに、インスタンスを起動しようとするとキャパシティー不足のエラーが出ます。

We currently do not have sufficient t3.medium capacity in the Availability Zone you requested (ap-northeast-1c). Our system will be working on provisioning additional capacity. You can currently get t3.medium capacity by not specifying an Availability Zone in your request or choosing ap-northeast-1d, ap-northeast-1a.

どうすればキャパシティー予約を使用した EC2 インスタンスが起動できるようになりますか?

どう対応すればいいの?

まずは EC2 コンソールの [キャパシティーの予約] を確認してください。

キャパシティーの予約画面

キャパシティーの予約作成時に [インスタンスの利用資格] 項目で [一致する詳細を持つ任意のインスタンス] を選択していた場合、[適格性] の列が open と表示されます。

キャパシティーの予約作成画面

適格性が open ですと、条件の合致するインスタンスが存在すれば、キャパシティーが自動で割り当てられます。そのため、起動したいインスタンスを対象に手動でキャパシティーを割り当てることができません。

急ぎの場合は条件の合致するインスタンスを停止し、[利用可能な数量] 列の数値を「N 次のうち: X」(N, X は 1 以上の自然数)として、利用可能なキャパシティーの余剰を作る必要があります。適格性 open のキャパシティー予約を使用しているインスタンスを停止すると、自動でキャパシティー予約が外れます。

キャパシティーの余剰が作れない環境では、別のインスタンスタイプを指定するか、起動する AZ を変えることを検討してください。

適格性の列が targeted と表示される場合は、以下のとおり EC2 インスタンスの起動時にキャパシティーの予約で任意の ID を指定できます。

条件の合致する任意のキャパシティー予約 ID を指定して起動してください。

EC2 インスタンスの新規作成画面

既存 EC2 インスタンス(停止中)の起動画面

キャパシティーの予約 ID が指定されたか確認

インスタンスの利用資格とは?

インスタンスの利用資格は EC2 インスタンスキャパシティーの予約を自動で割り当てるか、手動で割り当てるかを設定する項目です。

2021/02 時点の AWS ドキュメントでは、利用資格(instance-match-criteria)について以下のとおり記載されています。

  • [open (開く)] — (デフォルト) キャパシティーの予約 は、一致する属性 (インスタンスタイプ、プラットフォーム、およびアベイラビリティーゾーン) を持つインスタンスに一致します。一致する属性を持つインスタンスを起動すると、そのインスタンスはリザーブドキャパシティーに自動的に配置されます。
  • [targeted (指定済み)] — キャパシティーの予約は、一致する属性 (インスタンスタイプ、プラットフォーム、およびアベイラビリティーゾーン) を持つインスタンスのみを受け入れ、明示的に予約を行います。

コンソールでは、以下のように表示されます。

  • 一致する詳細を持つ任意のインスタンス
    インスタンスタイプ、プラットフォーム、およびアベイラビリティーゾーンは、この予約で指定されたものと一致する必要があります。
  • この予約を指定するインスタンスのみを受け入れます。
    インスタンスを起動するときは、この予約に関連付けられた予約 ID または予約リソースグループ ARN を指定する必要があります。

なお、コンソールのデフォルトでは「一致する詳細を持つ任意のインスタンス」(Open)が選択されています。すでに予約条件の合致するインスタンスが起動されている場合は、キャパシティー予約の作成後、即座にインスタンスへキャパシティーの予約が割り当てられます。

参考資料