本ブログは、オラクル・クラウドの個人ブログの1つです。
初めに
オンプレミスからプライベートサブネット内の OCI(Oracle Cloud Infrastructure)Computeインスタンスに接続する方法はいくつかあります。どの方法を選べばよいか迷っている方々に対し、各種接続方法の比較を紹介したいと思います。
一部の接続方法は、Computeインスタンスだけでなく、DBインスタンス(Autonomous DB / Base DB)にも適用できます。プライベートサブネット内のDBインスタンスに接続したい方は、こちらの取りまとめをご参考にしてください。
目次
1. プライベート・サブネット内のインスタンスに接続する
1-1. 踏み台サーバ
踏み台サーバーを経由するのは、最も一般的な接続方法です。方法としては、二段階のログインとSSHポート転送の2つのパターンがあります。
方法-a) 二段階のログイン
関連ポート一覧
接続元 | 接続先 | 宛先ポート | 用途 |
---|---|---|---|
On-P | 踏み台サーバ (Windows) |
3389 | Remote Desktop |
On-P | 踏み台サーバ(Linux) | 22 | SSH |
On-P | 踏み台サーバ(Linux) | 5901 | VNC (GUI ユーザー) |
踏み台サーバ | Windowsサーバ | 3389 | Remote Desktop |
踏み台サーバ | Linuxサーバ | 22, 5901 | SSH and VNC |
メリット:
✅ 非常にシンプルで、初心者向けです。
デメリット:
- 2回のログインが必要で、手間がかかる。
- パブリックに3389などのポートを公開する必要がある。
方法-b) SSHポート転送
踏み台サーバーは Linux の場合、SSHポート転送の手段もあります。
メリット:
✅ 二段階のログインが不要になり、手間を省ける。
✅ ターゲットがLinuxの場合、秘密キーを踏み台サーバに置く必要がない。
✅ パブリックに公開するポートは22だけでOK。なお、踏み台サーバはLinuxでよいため、コストを節約できる。
Linux サーバにSSH接続する場合
- Step-1) 踏み台サーバとターゲットVMの秘密キーをローカル端末に保存する。
※、ターゲットVMの秘密キーを踏み台サーバに保存しないことを推奨する。 - Step-2) 踏み台サーバにログインして、SSHトンネルを作成する。
ssh -L 22:<linux_private_ip>:22 opc@<bastion_public_ip> -i C:\Users\<username>\.ssh\<bastion_private_key>
- Step-3) 上記のステップが成功したら、別のセッションを開いて、次のコマンドでターゲットに接続する。
ssh localhost -l opc -i C:\Users\<username>\.ssh\<target_private_key>
Windows サーバにRDP接続する場合
- Step-1) 踏み台サーバの秘密キーをローカル端末に保存する。
- step-2) 踏み台サーバにログインして、SSHトンネルを作成する。
ssh -L 3389:<windows_private_ip>:3389 opc@<bastion_public_ip> -i C:\Users\<username>\.ssh\<bastion_private_key>
- step-3) 上記のステップが成功したら、ローカル端末からRDPを開いて、ホスト名にlocalhostを入力して接続する。
※、ローカルポート番号22や3389が既に使われている場合、次のように8222や13389の番号に置き換えてください。
- step-2)
ssh -L 13389:<windows_private_ip>:3389 opc@<bastion_public_ip> -i C:\Users\<username>\.ssh\<bastion_private_key>
- step-3) ローカル端末からRDPを開いて、ホスト名にlocalhost:13389を入力して接続する。
NSGの関連設定
インスタンス | 方向 | ソース・宛先CIDR | プロトコル | 宛先 ポート |
---|---|---|---|---|
踏み台 | Ingress | ソース: Client Public IP | TCP | 22 |
踏み台 | Egress | 宛先: Private Subnet CIDR | TCP | 22,3389 |
ターゲット (Windows) |
Ingress | ソース: 踏み台のPrivate IP | TCP | 3389 |
ターゲット(Linux) | Ingress | ソース: 踏み台のPrivate IP | TCP | 22 |
1-2. リモート・デスクトップ・ゲートウェイ
踏み台サーバを経由し、Windowsインスタンスにアクセスしたい場合、リモート・デスクトップ・ゲートウェイ(RD Gateway)という選択肢もあります。
メリット:
✅ RD Gatewayは、Windowsサーバの標準機能である。
✅ TCPポート 3389をパブリックに公開せず、HTTPS (443ポート)を利用。
✅ SSHポート転送(OCI Bastionなど)と比べて、セッションタイムアウトの心配が要らない。
通常の踏み台サーバーやOCI Bastionの方法と比べて、RD Gatewayの設定はやや複雑です。初めての方にはガイドが必要だと思います。次の記事では、ステップ・バイ・ステップのガイドを提供していますので、ご参考にしてください。
リモート・デスクトップ・ゲートウェイ経由でOCI Windows VMへの接続方法
1-3. OCI Bastionサービス
OCI Bastionサービスの本質はSSHトンネルです。つまり、上記のSSHポート転送の方法をサービスとして提供しています。これにより、踏み台サーバを立てることなく、プライベートサブネット内のインスタンスに簡単に接続できます。このサービスは無料で利用でき、Computeインスタンスだけでなく、DBインスタンス(Oracle Base DB/Autonomous DB/MySQL)にも接続できます。
セッション存続時間は最大3時間で、ご注意ください。
メリット:
✅ 踏み台サーバを立てる必要がないため、コストを節約できる。
✅ SSHトンネルで通信するので、セキュアな接続を確保できる。
✅ 設定方法は比較的にやり易い(数分間でOK)
✅ OCI Bastion自体は無料で利用できる。
OCI Bastionを作成する際には、ターゲットのVCNとサブネットを指定する必要がありますが、Bastion自体に対し、配置場所を指定する必要はありません(誤解されることがよくあります)。
接続方法の詳細について、以下の記事をご参考ください。
OCI Bastion経由でプライベート・サブネット内のComputeインスタンスに接続
1-4. ネットワーク・ロード・バランサ
踏み台サーバを立てずにインターネットから接続したい場合、パブリックサブネット内のネットワーク・ロード・バランサ(NLB)を経由する方法も選択肢の一つです。
メリット:
✅ 踏み台サーバを立てる必要がないため、コストを節約できる。
✅ 設定方法は簡単で、管理者の一時作業に適している(数分間で設定完了)。
✅ レイヤー4通信であり、可用性が高くて、レイテンシが低い。
✅ OCI Bastionと比べて、セッション存続時間(最大3時間)の心配がない。
✅ NLB自体は"Always Free"でカバーできるので、無料で利用できる。
- LB経由でも接続できます(設定方法少し異なるが考え方は同じです)。
- NLB自体は停止できませんが、バックエンドをオフラインにすることは可能です。使用しないときにオフラインに切り替えることで、踏み台サーバーを一時停止するのと同じような効果が得られます。
接続方法の詳細について、次の記事をご参考ください。
ネットワーク・ロード・バランサ (NLB) の経由でプライベート・サブネット内の OCI VMに接続する
1-5. Cloud Shell
2022年8月に、Cloud Shellのプライベート・アクセス機能がリリースされました。これにより、Cloud Shellからパブリックネットワークを経由せずにプライベートネットワークのリソースにアクセスできるようになりました。
メリット:
✅ 踏み台サーバを立てる必要がないため、コストを節約できる。
✅ パブリック・ネットワークを経由せずに、プライベート・アクセスで接続できる。
✅ 設定は簡単で、シリアルコンソールを使って手軽に接続したい時に便利です。(管理者の一時作業に適している)
接続方法の詳細について、以下の記事をご参考ください。
OCI Cloud Shell からプライベート・サブネット内のインスタンスに接続する
1-6. インスタンス・コンソール接続
コンソール接続ができると、インスタンス起動時(BOOT)のメッセージが見えます。トラブルシューティングの際にはこれが便利です。(例えば、インスタンスが「稼働中(Running)」と表示されているのに、なかなか接続できない場合などです。)
利用場面:
✅ 起動(BOOT)時のメッセージが見えるので、トラブルシューティングの時に役立つ。
作成方法
「Cloud Shell接続」と「ローカル接続」の2つタイプがあります。次は「ローカル接続」の例です。
作成画面の入口:コンピュート → インスタンス → インスタンスの詳細 → コンソール接続 → ローカル接続の作成
接続元のOS(Linux/Mac or Windows)と接続方式(シリアル or VNC)により、メニューからコマンドをコピーして、実行してください。
詳細の接続例を省略します。
1-7. サイト間 VPN と FastConnect
-
プライベートIPで通信したい場合、サイト間(IPsec) VPNサービスを利用するのが一般的です。オンプレミスとOCIの両方で設定が必要なため、疎通作業は少し複雑になります。VPNサービス自体は無料です。
-
インターネットを経由せずに専用回線で接続したい場合は、FastConnect をご利用ください。別途回線費用がかかりますが、データ転送に伴う従量課金が発生しないため、大量のデータ転送に向いています。
接続先(OCI側)のCIDRブロックは、接続元(オンプレミス側)のCIDRと重複しないようにご注意ください(サイト間VPN/FastConnect両方に適用される)。
次の記事は、On-PとOCIの間、LibreswanでIPSec VPN接続を立てるシミュレーションです。
On-PとOCI間のIPSec VPN接続のシミュレーション (Libreswanを利用)
1-8. OCI Secure Desktop サービス
このサービスの特徴は、エンドユーザに安全なデスクトップ接続を提供できることです。特に多数のエンドユーザの同時接続という利用場面に向きます。
特徴
- パブリックに公開するポートはHTTPS(443)であり、セキュアな接続が確保できる。
- ユーザーは、Webブラウザまたは専用の「Oracle Secure Global Desktop Client」を利用して接続する。
- 多数のエンドユーザーの同時接続ケースに対応している。
制限事項
- 対応しているOS: Oracle Linux 7 and 8, Windows 10 and 11
詳細について、「OCI Secure Desktops の使用体験」をご参照にしてください。
2. 各種接続方法の比較
関連機能の公式ドキュメントを参照したい場合、表内のリンクをクリックしてください。
接続方法 | インターネットの利用 | 踏み台 の経由 |
OSの制限 | 利用場面 | デメリット |
---|---|---|---|---|---|
踏み台経由 | Yes | Yes | なし | 一般的な利用方法であり、セキュアかつ長時間なセッションを求める場合。 | 踏み台サーバが必要 |
RD Gateway | Yes | Yes | Windows | Windows向け、パブリックに3389ポートを公開したくない場合。 | ⏳初期セッションを立てる時間が約1分 |
OCI Bastion | Yes | No | なし | 踏み台サーバを立てず、手軽に接続したい場合。 | ⏳セッション存続時間(最大3時間) |
NLB | Yes | No | なし | 踏み台サーバを立てず、手軽に接続したい場合。 | 特にない |
Cloud Shell | Yes | No | Linux | 踏み台サーバを立てず、シリアル・コンソールで手軽に接続したい場合。 | ⏳セッションタイムアウト(20分) |
コンソール接続 | Yes | No | なし | トラブルシューティング | ⏳セッションタイムアウト |
サイト間VPN | Yes | No | なし | プライベートIPで通信したい場合 | 🛠️接続設定は、比較的に複雑 |
FastConnect | No | No | なし | 1. インターネットを経由せず、専用線で接続したい場合。 2. 大量のデータ転送に向く。 |
💰回線費用がかかる |
Secure Desktop | Yes | No | ある | 多数のエンドユーザの同時接続 | 1.初期設定は比較的に複雑 2.対応しているOSの種類が少ない |
利用場面に応じて、適切な接続方法を選びましょう。
以上です。
関連記事
オラクル・クラウドの個人ブログ一覧
リモート・デスクトップ・ゲートウェイ経由でOCI Windows VMへの接続方法
OCI Bastion経由でプライベート・サブネット内のComputeインスタンスに接続
ネットワーク・ロード・バランサ (NLB) の経由でプライベート・サブネット内の OCI VMに接続する
OCI Cloud Shell からプライベート・サブネット内のインスタンスに接続する
On-PとOCI間のIPSec VPN接続のシミュレーション (Libreswanを利用)
プライベート・サブネット内のOracle Base DB と ADBインスタンスに接続する方法のまとめ