LoginSignup
2
2

複数のパブリックIPを使用してOCI VMにアクセスする

Last updated at Posted at 2022-01-14

初めに
OCI(Oracle Cloud Infrastructure)は、エフェメラル予約済の2種類のパブリックIPを提供します。どちらも無料です。これは、他のクラウド・プロバイダーによりも大きな利点です。AWS、Azure、またはGCPを使用している場合は、パブリックIPの料金を支払う必要があります。

クラウド・プロバイダー OCI AWS Azure GCP
IPの名称 Public IP Elastic IP Static IP, Dynamic IP External IP
料金 無料 有料 有料 有料

「パブリックIP」の呼び方は、クラウド・プロバイダーによって異なりますのでご注意ください。

パブリック・サブネットのインスタンスを起動すると、デフォルトではインスタンスはパブリックIPを取得します。特定のインスタンスに複数のセカンダリVNICを含めることができ、特定のVNICには複数のセカンダリ・プライベートIPを含めることができます。したがって、必要に応じて、1つ以上のVNICで特定のインスタンスに複数のパブリックIPを割り当てることができます

エフェメラル・パブリックIPの制限:

  1. VNICごとに1つ
  2. VMインスタンスごとに2つ、ベア・メタル・インスタンスごとに16

では、異なるVNICにまたがる2つのパブリックIPを使用してOCI VMにアクセスする方法を簡単に紹介したいと思います。

検証環境:
インスタンス・タイプ: OCI VM
OS: Oracle Linux 7.9
パブリックIPのタイプ: エフェメラル
アタッチされたVNIC: 2つ

作業ステップ
1. パブリックIP持ちのインスタンスを作成する
2. セカンダリVNICを追加する
3. 構成スクリプトを実行する

1. パブリックIP持ちのインスタンスを作成する

パブリック・サブネットのインスタンスを作成する時、デフォルトでは「パブリックIPv4アドレスの割当て」がチェックされます。起動後、プライマリVNICにエフェメラル・パブリックIPが割り当てられ、インスタンスの存続期間中に存在します。AWS Elastic IPとは異なり、OCIエフェメラル・パブリックIPは、インスタンスのリブート後に変更されません

OCIコンソールからパブリックIPをコピーします。
image.png

それで、SSHを使用してインスタンスにアクセスできます。セキュリティ・リストとルート・テーブル(インターネットGWを含む)が正しく設定されているのを確保しておいてください。

2. セカンダリVNICを追加する

Compute Instances -> Instance details -> Attached VNICs -> Create VNIC
image.png

VNIC名(オプション)を入力し、VCNとサブネットを選択します。

デフォルトでは「パブリックIPv4アドレスの割り当て」がチェックされていません。それをチェックし、「変更の保存」ボタンをクリックします。

VNICがアタッチされたら、VNICの詳細画面からパブリックIPを確認できます。
image.png

3. 構成スクリプトを実行する

セカンダリVNICをLinux VMインスタンスに追加すると、新しいインタフェース(イーサネット・デバイス)がインスタンスに追加され、OSで自動的に認識されます。ただし、DHCPはセカンダリVNICに対してアクティブではないため、静的IPアドレスおよびデフォルト・ルートでインタフェースを構成する必要があります。

VNICを追加した後のインターフェース情報は、次のようです。(構成実行前)

[opc@linux-vm-with-public-ips ~]$ ifconfig
ens3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 9000
        inet 10.0.0.17  netmask 255.255.255.0  broadcast 10.0.0.255
        inet6 fe80::17ff:fe01:5084  prefixlen 64  scopeid 0x20<link>
        ether 02:00:17:01:50:84  txqueuelen 1000  (Ethernet)
        RX packets 4497  bytes 47103124 (44.9 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3943  bytes 2596438 (2.4 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 458  bytes 31519 (30.7 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 458  bytes 31519 (30.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[opc@linux-vm-with-public-ips ~]$

Oracleは、OS構成を完了するためのシェル・スクリプトを提供しています。ここからスクリプトをダウンロードできます。

注意点
スクリプトでは、インスタンスを再起動した場合に維持されない単純な構成プロセスが使用されます。スクリプトを使用する場合、再起動するたびに再実行してください。

構成スクリプトをインスタンスにアップロードし、次のコマンドで実行します。
secondary_vnic_all_configure.sh -c

[opc@linux-vm-with-public-ips ~]$ pwd
/home/opc
[opc@linux-vm-with-public-ips ~]$ ll
total 56
-rwxr-xr-x. 1 opc opc 55938 Jan 11 07:18 secondary_vnic_all_configure.sh
[opc@linux-vm-with-public-ips ~]$ sudo ./secondary_vnic_all_configure.sh -c
Info: adding IP config for VNIC MAC 02:00:17:02:e6:f3 with id ocid1.vnic.oc1.ap-tokyo-1.abxhiljrzuxqqz4cir3z7htbswcn6ce4lcxk2fzgz544pe6utnv2woswjeoa
Info: added IP address 10.0.1.172 on interface ens5 with MTU 9000
Info: added rule for routing from 10.0.1.172 lookup ort1 with default via 10.0.1.1
[opc@linux-vm-with-public-ips ~]$

構成完了後のインターフェース情報は、次のようです。
("ens5"が追加された。)

[opc@linux-vm-with-public-ips ~]$ ifconfig
ens3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 9000
        inet 10.0.0.17  netmask 255.255.255.0  broadcast 10.0.0.255
        inet6 fe80::17ff:fe01:5084  prefixlen 64  scopeid 0x20<link>
        ether 02:00:17:01:50:84  txqueuelen 1000  (Ethernet)
        RX packets 5447  bytes 47346293 (45.1 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 4810  bytes 3290349 (3.1 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens5: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 9000
        inet 10.0.1.172  netmask 255.255.255.0  broadcast 0.0.0.0
        inet6 fe80::17ff:fe02:e6f3  prefixlen 64  scopeid 0x20<link>
        ether 02:00:17:02:e6:f3  txqueuelen 1000  (Ethernet)
        RX packets 1  bytes 56 (56.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 10  bytes 796 (796.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 552  bytes 36599 (35.7 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 552  bytes 36599 (35.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[opc@linux-vm-with-public-ips ~]$

それで、SSHを使用して新しいパブリックIPでインスタンスにアクセスできます。

以上

関連記事
オラクル・クラウドの個人シリーズ・ブログ
OCI「エフェメラル・パブリックIP」を「予約済パブリックIP」に変更する方法


公式ドキュメント
仮想ネットワーク・インタフェース・カード(VNIC)
Release Announcement - Reserved Public IPs are now available on Oracle Cloud Infrastructure!

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2