OCI ComputeでエフェメラルIPを予約済パブリックIPに変更する方法 (コンソール・CLI対応)

OCI Core Services

初めに

OCIのパブリック・サブネットにComputeインスタンスを作成すると、デフォルトでエフェメラル・パブリックIPが割り当てられます。エフェメラルIPは、インスタンスの存続期間にのみ有効な一時的なIPアドレスです。

一方で、システムの運用が進むと、以下のような要件が出てくることがあります。

  • インスタンス停止や再作成時にも同じIPを利用したい
  • 固定のIPアドレスを外部システムに登録したい
  • DNS設定を安定させたい

このような場合、予約済パブリックIP(Reserved Public IP)を利用することが一般的です。

「エフェメラルIPを予約済IPに変更したいが可能か?」という疑問を持つ方も多いのではないでしょうか。

オラクルの公式ドキュメントでは、次のように説明されています。

「特定のパブリックIPを作成したら、そのタイプを変更することはできません。たとえば、アドレス203.0.113.2を持つエフェメラル・パブリックIPが割り当てられているインスタンスを起動した場合、このエフェメラル・パブリックIPを、アドレス203.0.113.2を持つ予約済パブリックIPに変換することはできません。」

つまり、同じIPアドレスのままタイプを変更することはできません。しかし、新しい予約済パブリックIPを作成してインスタンスに付与することは可能です。

実際の運用では、以下の流れで対応します:

  1. 予約済パブリックIPを作成する
  2. エフェメラル・パブリックIPを解除する
  3. 予約済パブリックIPをインスタンスに割り当てる

なお、OCIではエフェメラルIPと予約済IPのいずれも基本的に無料で利用できます。これは、AWS (Amazon Web Services)、Microsoft Azure、GCP (Google Cloud Platform) などの他クラウドと比較した場合、大きなメリットの一つです。

クラウド・プロバイダーOCIAWSAzureGCP
IPの名称Public IPElastic IPStatic IP, Dynamic IPExternal IP
料金無料有料有料有料

本記事では、OCIコンソールおよびOCI CLIを使用して、エフェメラルIPを予約済パブリックIPへ変更する具体的な手順を解説します。

変更方法
事前準備:エフェメラル・パブリックIPのあるComputeインスタンスを用意しておきます。

1. 予約済パブリックIPを作成する

Networking → IP Management → Public IPs → Reserve Public IP Address
指定したCompartmentに、パブリックIPの名前を入力してから、予約を実施します。
Reserve public IP

2. エフェメラル・パブリックIPを解除する

Compute → Instances → Instance Details → Attached VNICs
ComputeインスタンスのVNICを指定します。
Attached VNICs

VNIC Details → Resources → IPv4 Address → Edit
IPv4アドレスの画面より、編集ボタンをクリックします。
Click edit button

編集画面に入ったら、予約済パブリックIPの選択肢が、グレーの状態となり直接に変更できません。
Edit IP address

それで、"NO PUBLIC IP"を指定し、変更を実施します。
Change public IP type to 'No Public IP'

3. 予約済パブリックIPをインスタンスに割り当てる

上記の変更処理が、すぐ適用されます。実施後、もう一度アドレスの編集画面を開きます。
今回は、予約済パブリックIPが選択可能の状態となります。それを選択し、ステップ1で予約したパブリックIPを指定してから、変更を実施します。
Change public IP type to 'Reserved Public IP'

実施後、すぐ予約済みパブリックIPに変更されます。
新しいIPでインスタンスへの接続が、できる状態です。ここまで、変更処理は完了です。
Check public IP address

4. OCI-CLIでの実施方法

事前にIPアドレスのOCIDを取得しておいてください。

a) 指定したプライベートIPのOCIDを取得
例:oci network private-ip list --ip-address <Private_IP> --subnet-id <Subnet_OCID>

b) パブリックIPを取得
例:oci network public-ip list -c <compartment_ocid> --scope REGION --all

このコマンドの出力には、エフェメラル・パブリックIPと予約済エフェメラルIPの両方を含めます。片方のみを取得したい場合、--lifetimeをつけてください。

エフェメラル・パブリックIPの場合:--lifetime EPHEMERAL
予約済パブリックIPの場合:--lifetime RESERVED

c) 自動に割り当てられたエフェメラル・パブリックIPを解除
例:oci network public-ip delete --public-ip-id <Ephemeral_Public_IP_OCID>

d) 予約済パブリックIPの割り当て
例:oci network public-ip update --public-ip-id <Reserved_Public_IP_OCID> --private-ip-id <Private_IP_OCID>

e) 割り当てた予約済パブリックIPの解除
例:oci network public-ip update --public-ip-id <Reserved_Public_IP_OCID> --private-ip-id ""
※、プライベートIPを空白の文字列にすると、割り当てた予約済パブリックIPが解除されます。

以上

タイトルとURLをコピーしました