OCIを使っていると、以下のような「インスタンスが起動できない」事態に遭遇することがあります
- 重要なワークロードでサービス継続が必要な時
- リリースされたばかりの最新シェイプを試したい時
- GPU搭載インスタンスなど人気があって品薄が続くシェイプを確実に確保したい時
そんな時に使うのが 容量予約(Capacity Reservation) 機能ですが、
この機能には知っておくべき仕様や落とし穴があります。
今回は、OCIの容量予約について、実際に運用で遭遇する問題を中心に解説します。
容量予約とは
必要なときにCPU・メモリリソースを確実に使うために、コンピュートリソースを事前に確保する仕組みです。
他のパブリッククラウドと同様、OCIにも標準されている機能です。
- 課金
- 未使用の予約済容量は85%で請求されます。予約完了した時点から即課金されます
- 容量予約に対して作成されたインスタンスは、100%で請求されます
- 期間
- 作成後、容量予約済となればすぐに使えます
- 公式ドキュメント
容量予約の作成方法(コンソール操作のみ紹介します
1. コンソール操作
OCIコンソール画面にて、左上 1.ハンバーガーメニュー → 2.コンピュート → 3.容量予約
2. [容量予約の作成]ボタンを押下
3. 容量予約の作成画面
- 容量予約名: 任意でOK。リージョン、AD、シェイプがわかると見やすいと思います
- コンパートメント: 作成するコンパートメントは必ず指定、別コンパートメントの容量予約は使用できません
- 可用性ドメイン: 東京や大阪リージョンは1つしか無いのでそのままでOK。その他複数ADあるリージョンは適切に指定してください
- フォールトドメイン: 既存のインスタンスを容量予約する場合、Dault-Domainの1・2・3を必ずあわせる必要があります
- シェイプ: 対象のシェイプを指定
- コア: OCPU数を指定。 ComputeにアタッチするOCPU数を指定してください。 4 OCPUのComputeに 2 OCPUだけ容量予約するようなことはできません
- メモリ: メモリ数を指定。 Computeにアタッチするメモリ数を指定してください
- 数: 同じ構成が複数ある場合、まとめて作成することが出来ます
4. 作成完了
[次]ボタン → [作成]ボタン
画面遷移後のコンソール中段にて、対象のシェイプ・OCPU数・メモリ数・数が予約されていることを確認
Q. 容量予約してるのに、起動できないんですけど!?
A1. それ実は容量予約出来てませんよ?
容量予約作成後、容量構成を見ると、予約済容量が0になってるケースがあります。
これは、指定された数にたいし、「0」個の予約を完了しました、という状態となります。
これはバグでは・・・?と言いたいところですが、残念ながら仕様のようです(2025年8月現在)
なので、この状態で容量予約を適用しようとしても、キャパシティが無いよ、と怒られていまいます。
要注意
0で作成されたあと、自動的にリトライする機能はありません!!!!
予約済が確保できるまで再作成する必要があります。
新規Computeに適用
既存Computeに適用
既存で起動しているComputeに対して、0個予約済の容量予約を適用とした場合
A2. インスタンスと容量予約を明示的にアタッチしていないですよ!
容量予約しても、Compute作成時、または既存Computeの変更時に、明示的に容量予約をアタッチしないと使ってくれません。
この状態だと、せっかく容量予約済でもキャパシティ無い旨のAPIエラーが表示されてしまいます
既存Computeに適用する手順
コンソールの対象のComputeにて、画面左の 1.アクション → 2.その他のアクション → 3.編集
メニュー一番下の「配置」部分のチェックボックスをクリックし、予約済の容量を指定
- 公式の手順