4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OCI「プライベートエンドポイントアクセスのみ」で作成したAutonomous Databaseにインターネット経由で接続する方法(コンピュートインスタンス経由でADBに接続)

Last updated at Posted at 2025-04-15

はじめに

こんにちは。NTTデータ先端技術の@EumJinmanです。
本記事は、Oracle Cloud Infrastructure(OCI)「プライベートエンドポイントアクセスのみ」で作成したAutonomous Database(ADB)にインターネット経由で接続する方法の1つとして方法その1 : コンピュートインスタンス経由でADBに接続を紹介します。

その他接続方法や、全体の概要については以下のリンクをご確認ください。

全体の概要:全体の概要

方法その2:ネットワークロードバランサー(NLB)経由でADBに接続

方法その3:Bastionサーバ経由でADBに接続

目次

  1. 概要及び、構成
  2. 環境情報
  3. 前提条件
  4. コンピュートインスタンスでの設定及び、ADBへの接続
    4-1. Walletのダウンロード
    4-2. コンピュートインスタンスへの接続
    4-3. Oracle Instant Clientのインストール及び、設定
    4-4. Walletの配置及び、設定
    4-5. 接続確認
  5. まとめ

1. 概要及び、構成

構成図インスタンス.png
OCIのコンピュートインスタンス(仮想マシン)を踏み台として利用し、そのインスタンスからADBに接続する方法です。シンプルな構成で設定は簡単ですが、コンピュートインスタンスの管理・運用や、インスタンスの使用料金が必要になります。

2. 環境情報

クライアント環境

OS:Windows 10
接続ツール:TeraTerm

OCI環境

リージョン:ap-northeast-1(アジアパシフィック (東京))

コンピュートインスタンス情報

OSイメージ:Oracle-Linux-8.10-2024.11.30-0
シェイプ:VM.Standard.E2.1

ADBの情報

ワークロード・タイプ:Oracle Autonomous JSON Databases
データベースのバージョン:19c
アクセスタイプ:プライベートエンドポイント

3. 前提条件

クライアント環境

①シェル・ターミナル・コンソールがセットアップされていること
②クライアント環境からインスタンスにSSH接続できること

OCI環境

①インスタンスが作成されていること
②ADBが作成されていること
③パブリックサブネットのセキュリティリストにクライアント環境からインスタンスに接続するための適切なイングレスルールが設定されていること。(例:SSHポート22など)
④パブリックサブネットのセキュリティリストにインスタンスからインターネットに接続するための適切なエグレスルールが設定されていること
⑤パブリックサブネットのルート表にインスタンスからインターネットに接続するための適切なルールが設定されていること
⑥プライベートサブネットのセキュリティリストにインスタンスからADBに接続するための適切なイングレスルールが設定されていること。(例:ADBポート1522など)

4. コンピュートインスタンスでの設定及び、ADBへの接続

4-1. Walletのダウンロード

コンピュートインスタンスからADBに安全に接続するためにWalletを使用します。

WalletをダウンロードするためにOCIコンソールページ左上から「ナビゲーション・メニュー」→「Oracle Database」→「Autonomous Database」順にクリックし、Autonomous Databaseページに移動します。
スクリーンショット (58).png

Autonomous Databaseページから対象のADBをクリックし、ADB詳細ページに移動します。
スクリーンショット (59).png

ADB詳細ページから「データベース接続」をクリックし、データベース接続ページに移動します。
スクリーンショット (60).png

データベース接続ページからウォレット・タイプを「インスタンス・ウォレット」に選択し、「ウォレットのダウンロード」をクリックします。
スクリーンショット (61).png

ウォレットのダウンロードページからウォレットのパスワードを入力し、「ダウンロード」をクリックします。入力するパスワードはパスワード要件を確認してから入力してください。
※パスワード要件は以下の通りです。
パスワードは8文字から60文字とし、英字と数字をそれぞれ1つ以上含める必要があります。
スクリーンショット (63).png

4-2. コンピュートインスタンスへの接続

クライアント環境から踏み台となるコンピュートインスタンスに接続します。
※今回は、接続ツールとしてTera Termを使用しています。

クライアント環境のデスクトップからTera Termを開き、「Tera Term:新しい接続」画面から以下の情報を入力し「OK」をクリックします。

・ホスト:コンピュートインスタンスのパブリックIPアドレス
・サービス:SSH
・TCPポート:22

次、「SSH認証」画面から以下の情報を入力し「OK」をクリックします。

・ユーザ名:opc
・認証方式:RSA/DSA/ECDSA/ED25519鍵を使う
・機密鍵:コンピュートインスタンスのSSH機密鍵
※opcユーザは、コンピュートインスタンス作成時にデフォルトで作成される初期管理ユーザーです。

4-3. Oracle Instant Clientのインストール及び、設定

4-3-1. Oracle Instant Clientのインストール

コンピュートインスタンスからADBへ接続する際に接続ツールとしてSQL*Plusを使用します。そのために必要なOracle Instant Clientパッケージをインストールします。

Oracle Linuxリリース・パッケージをインストールし、Oracle Instant Clientのリポジトリ定義を構成します。

実行コマンド
dnf install -y oracle-instantclient-release-el8

Oracle Instant Clientパッケージをインストールします。
※パッケージインストールの際に低メモリ環境ではメモリ不足が原因でインストールが失敗することもあるため注意が必要です。(VM.Standard.E2.1.Microシェイプで失敗)

実行コマンド
dnf install -y oracle-instantclient-basic

SQL*PlusのOracle Instant Clientパッケージをインストールします。

実行コマンド
dnf install -y oracle-instantclient-sqlplus

4-3-2. Oracle Instant Clientの設定

Oracle Instant Client をインストールした後、適切に動作させるために環境変数を設定します。
※システム全体で適応するため/etc/profileに環境変数を設定していますが、個々のユーザで適応するため~/.bashrcに設定することも可能です。

実行コマンド
echo "export ORACLE_HOME=/usr/lib/oracle/21/client64/lib" >> /etc/profile
echo "export NLS_LANG=Japanese_Japan.AL32UTF8" >> /etc/profile
echo "export LD_LIBRARY_PATH=\$ORACLE_HOME:\$LD_LIBRARY_PATH" >> /etc/profile
source /etc/profile

4-4. Walletの配置及び、設定

コンピュートインスタンスからSQL*PlusでADBに接続するためにWalletを設定する必要があります。4-1でダウンロードしたWalletをコンピュートインスタンスに配置、設定します。

4-4-1. Walletの配置

WinSCPを使用し、Walletを配置します。

クライアント環境のデスクトップからWinSCPを開き、「ログイン」画面から以下の情報を入力し「OK」をクリックします。

・ホスト:コンピュートインスタンスのパブリックIPアドレス
・ポート番号:22
・ユーザ名:opc
・機密鍵:コンピュートインスタンスのSSH機密鍵

※opcユーザは、コンピュートインスタンス作成時にデフォルトで作成される初期管理ユーザーです。
※WinSCPへの接続はPuTTY形式の秘密鍵(.ppk)が必要です。
※機密鍵の設定は以下の手順で選択します。
「設定」→「SSH」→「認証」→「機密鍵」

対象のコンピュートインスタンスに接続成功したら4-1でダウンロードしたWalletを任意の場所(今回は/tmp)にアップロードします。

4-4-2. Walletの設定

コンピュートインスタンスにWalletを設定します。

まず、配置されているWalletを展開します。
※wallet.zipがtmpディレクトリに配置されていることとします。

実行コマンド
mkdir -p /home/opc/wallet
unzip -o /tmp/wallet.zip -d /home/opc/wallet

ネットワーク設定ファイル(tnsname.ora、sqlnet.oraなど)の場所を指定するための環境変数(TNS_ADMIN)を設定します。
※特定のユーザ(opc)に適応するため~/.bashrcに環境変数を設定していますが、システム全体に適応するため/etc/profileに設定することも可能です。

実行コマンド
echo "export TNS_ADMIN=/home/opc/wallet" >> /home/opc/.bashrc
source /home/opc/.bashrc

sqlnet.oraからWalletのパスが正しく設定されていることを確認し、必要な場合編集します。

実行コマンド
vi /home/opc/wallet/sqlnet.ora

以下の通り設定されていることを確認します。
※TNS_ADMIN環境変数には/home/opc/walletが設定されています。

実行コマンド
WALLET_LOCATION = (SOURCE = (METHOD = file) (METHOD_DATA = (DIRECTORY=$TNS_ADMIN)))
SSL_SERVER_DN_MATCH=no

ADBへの接続に使用する接続文字列を確認します。
※例:<小文字のADB名>_high、<小文字のADB名>_low、<小文字のADB名>_mediumなど

実行コマンド
cat /home/opc/wallet/tnsnames.ora

接続文字列は、OCIコンソールからも確認できます。
※「ナビゲーション・メニュー」→「Oracle Database」→「Autonomous Database」→「ADB名」→「データベース接続」
スクリーンショット (64).png

4-5. 接続確認

以下のコマンドを実行し、コンピュートインスタンスからADBに接続します。
※接続文字列として<小文字のADB名>_highを使用していますが、別の接続文字列を使用しても接続可能です。

実行コマンド
sqlplus admin/'adminのパスワード'@<小文字のADB名>_high

5. まとめ

今回は、「プライベートエンドポイントアクセスのみ」で作成したADBにコンピュートインスタンス経由でインタネットから接続する方法について紹介しました。

コンピュートインスタンス経由でADBに接続する方法は、シンプルな構成で設定は簡単ですが、コンピュートインスタンスの管理や、運用が必要なことや、インスタンスの使用料金が発生することに注意してください。

4
3
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
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?