OCI Cloud ShellにはSQL Plusクライアントがあらかじめ実装されているため、追加インストール不要でAutonomous Database(ADB)に接続できます。本記事では、パブリック・アクセスとプライベート・エンドポイントの両方を用いてADBへ接続する方法を、具体的な手順に沿ってご紹介します。

【お知らせ】
この記事の詳細は、個人ブログ「OCI Tech Journal」で公開しています。ぜひご覧ください。👉 https://oci-tech.jp/connect-adb-from-oci-cloud-shell/
検証環境
| 項目 | 内容 |
|---|---|
| OCIリージョン | 東京 (他リージョンでもOK) |
| ADBタイプ | Data Warehouse (ATPでもOK) |
| アクセス・タイプ | 1. パブリック・アクセス経由でADBに接続 (ADW01) |
| 2. プライベート・エンドポイント経由でADBに接続 (ADW02) |
ちなみに、SQL DeveloperというGUIツールでAutonomous DBに接続したい場合、以下の記事をご参考ください。
SQL Developerで様々なDBに接続する方法
1. パブリック・アクセス経由でADBに接続
アクセス・タイプはパブリック経由の場合、Cloud Shellからの接続はとても簡単です。
ステップ
1-1. OCIコンソールよりADB Walletを取得
1-2. ADB WalletをOCI Cloud Shellにアップロード
1-3. 環境変数の設定とsqlnet.oraの編集
1-4. ADBに接続する
2. プライベート・エンドポイント経由でADBに接続
プライベート・サブネットにADBを作成した場合、プライベート・エンドポイントを介してADBにアクセスする必要があります。Cloud Shellから直接にアクセスすることはできませんので、BastionとSSHポート転送は必要です。
OCI Bastion Serviceは2021年5月にリリースされました。それを利用し、踏み台サーバ(VM)を作成せずに、プライベート・サブネット内のリソースにアクセスできます。サービス自体は無料です。これから、OCI Bastionを使用してCloud ShellからプライベートADBにアクセスする方法を紹介します。
追記 (2022年12月)
OCI Bastionでの接続方法を投稿した時点(2022年5月)、Cloud Shellのプライベート・アクセス機能がまだリリースされませんでした。2022年8月より、Cloud Shellからプライベート・アクセス経由で、プライベート・サブネット内のリソースに接続できるようになりましたので、OCI Bastionを使わなくてもOKです。設定方法は、「OCI Cloud Shell からプライベート・サブネット内のインスタンスに接続する」をご参考ください。
ステップ
2-1. 事前準備
2-2. Bastionの作成
2-3. NSGにIngressルールを追加する
2-4. tnsnames.oraを編集する
2-5. SSH秘密キーをCloud Shellにアップロード
2-6. Cloud ShellでSSHコマンドを実行する
2-7. ADBに接続する
リンクから、詳細をご確認いただけます。
関連記事
クラウド技術ブログ一覧
OCI Cloud Shellの概要
OCI Cloud Shell からプライベート・サブネット内のインスタンスに接続する