初めに
OCI (Oracle Cloud Infrastructure) プライベートサブネット内の Oracle Base DB / Autonomous AI DBに接続する方法はいくつかあります。どの方法を選べばよいか迷っている方々に対し、各種接続方法の比較を紹介したいと思います。
プライベートサブネット内の OCI Compute (VM) に接続する方法まとめ
1. プライベートサブネット内のOracle Base DB/ADBに接続
1-1. 踏み台サーバ
踏み台サーバーを経由するのは、最も一般的な接続方法です。接続方法としては、主に以下の2つのパターンがあります。
方法-1. 二段階のログイン
- 踏み台サーバはLinuxの場合:

- 踏み台サーバはWindowsの場合:

メリット:
✅ 非常にシンプル。
✅ 踏み台サーバーへのログインが必要な作業に適している。
方法-2. SSHポート転送

メリット:
✅ 二段階のログインが不要になり、作業の手間を軽減できる。
✅ 公開する必要があるポートは22番のみで済むため、よりセキュアな接続が可能
✅ 秘密鍵を踏み台サーバに配置する必要がない。
✅ 踏み台サーバをLinuxで構築すれば、Windowsサーバを使用するよりコストを抑えられる。
詳細については、次の記事をご参照ください。
踏み台サーバ経由でプライベートサブネット内の Oracle DB (Base DB/ADB) に接続する方法
1-2. OCI Bastionサービス
OCI Bastionサービスの本質はSSHトンネルです。つまり、上記のSSHポート転送の方法をサービスとして提供しています。これにより、踏み台サーバを立てることなく、プライベートサブネット内のインスタンスに簡単に接続できます。このサービスは無料で利用でき、Oracle Base DB/ADBインスタンスだけでなく、Computeインスタンス、或いはMySQL DBサービスにも接続できます。
セッション存続時間は最大3時間で、ご注意ください。

※、Base DBの構成図は上記と同じです(宛先のポート番号が異なる)。
メリット:
✅ 踏み台サーバを立てる必要がないため、コストを節約できる。
✅ SSHトンネルで通信するので、セキュアな接続を確保できる。
✅ 設定方法は比較的にやり易い(数分間でOK)
✅ OCI Bastion自体は無料で利用できる。
接続方法の詳細について、以下の2記事をご参照ください。
OCI Bastionサービスでプライベートサブネット内のOracle DBに接続する方法
OCI Bastion経由でプライベート・サブネット内のAutonomous DBに接続
1-3. Network Load Balancer (NLB)
踏み台サーバを立てずにインターネットから接続したい場合、パブリックサブネット内のネットワーク・ロード・バランサ(NLB)を経由する方法も選択肢の一つです。

メリット:
✅ 踏み台サーバを立てる必要がないため、コストを節約できる。
✅ 設定方法は簡単で、管理者の一時作業に適している(数分間で設定完了)。
✅ レイヤー4通信であり、可用性が高くて、レイテンシが低い。
✅ OCI Bastionと比べて、セッション存続時間(最大3時間)の心配がない。
✅ NLB自体は"Always Free"でカバーできるので、無料で利用できる。
- LB経由でも接続できます(設定方法少し異なるが考え方は同じです)。
- NLB自体は停止できませんが、バックエンドをオフラインにすることは可能です。使用しないときにオフラインに切り替えることで、踏み台サーバを一時停止するのと同じような効果が得られます。
接続方法の詳細について、次の記事をご参照ください。
OCI NLB経由でプライベートサブネット内の Oracle DB (Base DB/ADB) に接続する方法
1-4. Cloud Shell
2022年8月に、Cloud Shellのプライベート・アクセス機能がリリースされました。これにより、Cloud Shellからパブリックネットワークを経由せずにプライベートネットワークのリソースにアクセスできるようになりました。
メリット:
✅ 踏み台サーバを立てる必要がないため、コストを節約できる。
✅ OCIコンソールからパブリックネットワークを経由せずに、プライベート・アクセスで接続できる。
✅ 設定は簡単で、シリアルコンソールを使って手軽に接続したい時に便利です。(管理者の一時作業に適している)
制限事項:
⚠️シリアルコンソールのため、SQL DeveloperのようなGUIがない。
接続方法の詳細について、以下の記事をご参考ください(Base DB/ADB 兼用)。
OCI Cloud Shell からプライベート・サブネット内のインスタンスに接続する
1-5. データベース・ツール
データベース・ツールはOCIのマネージド・サービスです。これを使用して、OCI内の任意のOracleまたはMySQL DBサービスへの接続を作成できます。

メリット:
✅SQLワークシートと併用することで、データベースへの直接SQLアクセスが可能です。
✅パスワードやADBのウォレットなどの機密情報は暗号化され、OCIボールトに安全に保存されます。
Oracle Base DBとADBの接続方法の詳細について、次の記事をご参照ください。
OCI データベース・ツールでオラクルDBへの接続方法
1-6. データベース・アクション(ADBのみ)
この方法は、Autonomous AI Databaseにのみ適用されます。
ADBの詳細 → データベース・アクション → SQL
※、「データベース・アクション」をクリックすると、次の画面が表示される場合があります。
原因
ADBのプライベート・エンドポイントURLはVCN内部で識別されますが、外部からのアクセスはできません。
アクセスURLの例:https://xxxxxxx.adb.ap-tokyo-1.oraclecloudapps.com/ords/sql-developer
上記URLの中に、xxxxxxx.adb.ap-tokyo-1.oraclecloudapps.comの部分はADBのプライベート・エンドポイントURLとなります。
解決方法
- 方法-1: ADBと同じVCN内にあるComputeインスタンスからアクセスしてください。
- 方法-2: ADBと同じVCN内にLB(またはNLB)を設定し、クライアントとADB間の接続を確立します。その後、クライアントのWebブラウザでアクセスしてください。
データベース・アクションの画面に、SQL文の実行例は次の通りです。SQL Developer Webで操作できます。
1-7. インスタンス・コンソール接続(Oracle Base DBのみ)
Oracle Base DBインスタンスのOSにログインする場合、コンソール接続という選択肢があります。トラブルシューティングの時に役立ちます。

作成方法
作成画面の入口:Oracle Base DB → DBシステム → DBシステムの詳細 → コンソール接続 → コンソール接続の作成
公開キーを自動作成するか、既存のキーをアップロードします。
メニューからコマンドをコピーして、PowerShellで実行してください。
実行結果:
PS C:\Users\username> ssh -o ProxyCommand='ssh -W %h:%p -p 443 ocid1.instanceconsoleconnection.oc1.ap-tokyo-1.<中略>@instance-console.ap-tokyo-1.oci.oraclecloud.com' ocid1.instance.oc1.ap-tokyo-1.<中略>
=================================================
IMPORTANT: Use a console connection to troubleshoot a malfunctioning instance. For normal operations, you should connect to the instance using a Secure Shell (SSH) or Remote Desktop connection. For steps, see https://docs.cloud.oracle.com/iaas/Content/Compute/Tasks/accessinginstance.htm
For more information about troubleshooting your instance using a console connection, see the documentation: https://docs.cloud.oracle.com/en-us/iaas/Content/Compute/References/serialconsole.htm#four
=================================================
Oracle Linux Server 8.9
<中略>
db19c login: opc
Password:
Last login: <Time stamp> from <IP address>
[opc@db19c ~]$※、ログインする際に、秘密キー認証ではなく、パスワード認証になります。
2. 各種接続方法の比較
| 接続方法 | 踏み台 の経由 | 利用場面 | 注意事項 |
|---|---|---|---|
| 踏み台経由 | Yes | 一般的利用方法であり、セキュアかつ長時間なセッションを求める場合 | 踏み台サーバが必要 |
| OCI Bastion (公式Doc) | No | 踏み台サーバを立てず、手軽に接続したい場合 | ⏳セッション存続時間(最大3時間) |
| NLB (公式Doc) | No | 踏み台サーバを立てず、手軽に接続したい場合 | 使わない時、バックエンドをオフラインすることは可能 |
| Cloud Shell (公式Doc) | No | 踏み台サーバを立てず、シリアル・コンソールで手軽に接続したい場合 | ⏳セッションタイムアウト(20分) |
| Database Tools (公式Doc) | No | OCIコンソールから(Web GUIで)接続したい場合 | 認証情報はOCIボルトに格納する必要がある |
| Database Actions (公式Doc) | 必須ではない | 手軽にOCIコンソールから(Web GUIで)接続したい場合 | 1. ADBのみ 2. 踏み台(またはLB/NLB)を経由 |
| コンソール接続 (公式Doc) | No | トラブルシューティング | 1. Base DBのみ 2. パスワード認証 |
利用場面に応じて、適切な接続方法を選びましょう。
以上