はじめに
Autonomous Databaseに付属するツールのData Transformsですが、プライベート・ネットワークにあるデータ・ソースを利用するには事前にこちらのドキュメント、Noteの設定が必要になります。
- 15.6 Enable Access to Private Data Sources from Autonomous Database
- How To Connect to Resources in a Private Network from Autonomous Database Data Transforms? (Doc ID 2977470.1)
そこで、プライベート・エンドポイントのAutonomous Database(ADB)のData Transformsから別のVCNのプライベート・エンドポイントにあるBase Database(BaseDB)に接続できるよう試してみました。
環境
-
OCI Computeは必須ではなく、データベース接続確認のために作成しました。SQL*Plusを使うため、Oracle Linux Cloud Developerイメージを利用しています。
-
アクセス制御は考慮していません。実際にはセキュリティリストやACLなどは環境に合わせた設定が必要です。
-
便宜上Data Transformsのコンソールにはインターネット経由でのアクセスができるようにしています。
Autonomous Databaseの作成
プライベート・エンドポイントに作成する方法はこちらのチュートリアルを参照してください。この記事ではData Transformsのコンソールはインターネット経由でアクセスさせたいため、「パブリック・アクセスを許可」にチェックをして、アクセスを許可するクライアントを設定します。また便宜上すべてからアクセスできるよう、CIDRブロックで0.0.0.0/0にしています。
もし「パブリック・アクセスを許可」しない場合はチュートリアルの2-2,2-3の方法でアクセスが可能です。
プライベート・エンドポイントアクセスのための設定
ドキュメントに記載があるとおり、作成したAutonomous DatabaseにADMINユーザーで接続し、SQLで以下のコマンドを実行します。Noteによると2時間待つようにとあるのでそのまま放置します。
ALTER DATABASE PROPERTY SET ROUTE_OUTBOUND_CONNECTIONS = 'PRIVATE_ENDPOINT';
VCNのローカル・ピアリング
VCN間のローカル・ピアリングの設定をします。ローカル・ピアリングについてはこちらのドキュメントをご確認ください。
同じリージョン内のCIDERが重複していないVCN間でのみ可能です。
ローカル・ピアリング・ゲートウェイ(LPG)の作成
OCIコンソールから、「ネットワーキング」 > 「仮想クラウド・ネットワーク」でAutonomous Databaseで利用しているVCNを選択し、「Resources」からローカル・ピアリング・ゲートウェイをクリックします。
ローカル・ピアリング・ゲートウェイの作成で以下を入力して作成します。
- 名前:任意の名前
- コンパートメントに作成:デフォルトで選択されているコンパートメント
同様にBase Databaseで利用しているVCNを選択してローカル・ピアリング・ゲートウェイを作成します。また、作成したローカル・ピアリング・ゲートウェイのOCIDをコピーしておきます。
ピアリング接続の確立
Autonomous Databaseで作成したローカル・ピアリング・ゲートウェイ(ピアリング・ステータスが新規になっています)で「ピアリング接続の確立」をクリックします。
「ローカル・ピアリング・ゲートウェイOCIDの入力」を選択して、コピーしておいたBase DatabaseのVCNのローカル・ピアリング・ゲートウェイのOCIDを入力して、「ピアリング接続の確立」をクリックします。
接続が確立できると、Base DatabaseとAutonomous Database両方のローカル・ピアリング・ゲートウェイのピアリング・ステータスがピアリング済みとなります。
ルート表の設定
それぞれのVCNのプライベート・サブネットが使用しているルート表にローカル・ピアリングでアクセスするためのルールを設定します。使用しているルート表は、プライベート・サブネットのサブネット詳細画面で確認することができます。
表示されているルート表名をクリックすると、そのルート表の詳細画面になりますので、ルート・ルールの追加をクリックしてルールを追加します。
- ターゲットタイプ:ローカル・ピアリング・ゲートウェイ
- 宛先/CIDRブロック:先方(Autonomous Database側ならBase Database側、Base Database側ならAutonomous Database側)のVCNのCIDR
- ターゲット・ローカル・ピアリング・ゲートウェイ: 作成したローカル・ピアリング・ゲートウェイ
Base Databaseのホスト名の解決
Data Transformsのプライベート・ネットワークのソースへの接続はFQDN名での接続が必要です。
Base Databaseのホスト名の解決のために、Autonomous Database側のVCNのDNSリゾルバにプライベート・ビューとしてBase Database側のデフォルト・プライベート・ビューを追加します。詳細はこちらのチュートリアルをご確認ください。
Autonomous Database側のVCNの詳細画面でDNSリゾルバを確認し、名前をクリックします。
プライベート・リゾルバの詳細画面でプライベート・ビューの管理をクリックします。
コンパートメントの変更で、コンパートメントをBase DatabaseのVCNのコンパートメントに変更し、利用しているプライベート・ビューを選択して、保存します。
セキュリティ・リストの編集
Base Database側のプライベート・サブネットのセキュリティ・リストのイングレス・ルールにAutonomous Database側からBase Databaseへの接続を許可するように設定をします。
- ソース:10.0.0.0/16 Autonomous Database側VCNのCIDER(Public SubnetのComputeからの接続テストをしたいため)
- 宛先ポート:1521 (Base Databaseのリスナーポート)
Computeで確認
Autonomous DatabaseのVCNのパブリック・サブネットに作成したComputeからSQL*PlusでBaseDBへの接続を確認してみます。接続文字列はOCIコンソールのプラガブル・データベース詳細のPDB接続で確認できます。
簡易接続でSYSTEMユーザで接続確認します。
[oracle@compute1 ~]$ sqlplus system/WelCome12345##@basedb19c.private1.vcn1.oraclevcn.com:1521/pdb1.private1.vcn1.oraclevcn.com
SQL*Plus: Release 21.0.0.0.0 - Production on Mon Oct 7 09:13:49 2024
Version 21.13.0.0.0
Copyright (c) 1982, 2022, Oracle. All rights reserved.
Last Successful login time: Mon Oct 07 2024 09:08:50 +00:00
Connected to:
Oracle Database 19c EE High Perf Release 19.0.0.0.0 - Production
Version 19.24.0.0.0
接続できました!
Data Transformsで接続の作成
2時間経過していることを確認して、OCIコンソールのAutonomous Databaseの詳細画面からData Transformsを起動します。ツール構成タブからデータ変換のパブリック・アクセスURLをブラウザで開きます。
Database Actionsからの起動も可能です。
Autonmous DatabaseのADMINユーザーとそのパスワードでログインします。
初回アクセスや事前に設定したアイドル時間終了後の場合は、2分程度プロビジョニングの時間が必要です。
起動すると、Data Transformsのホーム画面となります。Data TransformsのメニューからConnectionsを選択します。
Base DatabaseとAutonomous Databaseへの接続を作成します。Autonomous Databaseの接続はデフォルトで作成されていますが、接続サービスがLOWサービスでの固定となるため、他のサービスが利用できるよう別に作成をします。
Create Connectionをクリックします。
まずBase Databaseへの接続を作成します。DatabasesタブからOracleを選択し、Nextボタンをクリックします。
以下を設定します。Connectionsに指定する文字列は、Base Databaseのコンソールから接続したいプラガブル・データベースの接続文字列を@の後に指定します。
- Connection Name:任意の名前
- Connections:以下のいずれかのフォーマットで設定
- jdbc:oracle:thin:@::
- jdbc:oracle:thin:@:
- jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=)(PORT=)(CONNECT_DATA=(SERVICE_NAME=)))
- User: 接続ユーザ名
- Password: 接続ユーザのパスワード
例えば、簡易接続を使った場合は次のようになります。
Test Connectionsで接続テストを行い、以下のように接続が成功すればOKです。
Autonomous Databaseの接続も同様に作成します。
試してみたところ、ウォレットファイルのアップロードやTLSの接続文字列をそのまま利用してもエラーになったため、成功した方法を記載しています。(2024年10月時点)
接続文字列はAutonomous Databaseのコンソールからデータベース接続で確認できます。TLS認証はTLS、アクセスはプライベート・エンドポイントを選択し、表示されるいずれかのTNS名の接続文字列をコピーします。
コピーした文字列をData Transformsの接続文字列のフォーマットの@の後に記述し、ホスト名のoraclecloud.comの部分をoraclevcn.comに変更します。
(host=xxxxxxxx.adb.ap-tokyo-1.oraclecloud.com))
→(host=xxxxxxx.adb.ap-tokyo-1.oraclevcn.com))
Test Connectionsで接続が成功すればOKです。
ドキュメントを確認したところ、以下のようにoraclecloud.comは予約済みであるため利用できないとありました。
ただ、oraclevcn.comでの名前もAutonomous Databaseを作成時にデフォルトで利用VCNのプライベート・ゾーンとして作成されており利用ができそうなので、それで試したところ接続できました。
おわりに
Data Transformsからプライベート・エンドポイントにあるデータ・ソースへのアクセスを試してみました。
Data Transformsでデータ・フローを作成する方法などについてはこちらのチュートリアルを参考にしてください。