はじめに
Autonomous Database (以下 ADB)には データベース・アクション*1 というデータベース開発、管理およびモニタリング機能を備えたブラウザベースのアプリケーションがあります
データベース・アクションの実行は、OCI コンソールで ADB の詳細画面を表示し、データベース・アクションボタンをクリックすることで実行することが出来ます
しかし、データベース・アクションは ADB のエンドポイントに https でアクセスする必要があり、ADB をプライベート・ネットワークからの接続のみ(ネットワーク・アクセスタイプをプライベート・エンドポイント・アクセスのみとする構成)にすると、インターネット経由ではデータベース・アクションを実行することが出来ません
※下記メッセージが表示され、プライベート・エンドポイントへアクセス可能な場所にコンピュート・インスタンスを配置し、そのコンピュート・インスタンス上のブラウザからアクセスする様に促されます
そこで、本記事ではプライベート・エンドポイント・アクセスのみに構成した ADB のデータベース・アクションを、インターネット経由で表示する手法を検証していきたいと思います
*1データベースアクションとは
主な機能は、SQLステートメントとスクリプトの実行、Data Modelerダイアグラムの作成、RESTful Webサービスの開発、
JSONコレクションの管理、Data Load, Catalog, Data Insights, Business Models,
Data Transformsツールを使用してローカルおよびリモートソースからのデータのロード、
テーブルとビューでのデータの表示、データ辞書でのオブジェクト表示、データの整理、分析、変換
引用: 2 About Oracle Database Actions を機械翻訳したものです。
上記のように、とても多種多様な機能が利用可能なブラウザベースのアプリケーションで、以前はSQL Developer Webの名称でした。
NW構成
本記事では以下の NW 構成とし、3 つの経路それぞれでデータベース・アクションへのアクセスを実施してみたいと思います
検証
※下記の IP アドレスなどを使用し、前提条件として、パブリック・サブネット、プライベート・サブネット間の https 通信は許可済みであることとします
- 踏台サーバのパブリック IP : 158.101.80.82
- ADB のプライベート・エンドポイント FQDN : ylyohjic.adb.ap-tokyo-1.oraclecloud.com
- ADB のプライベート・エンドポイント IP : 10.0.101.69
- データベース・アクションのアクセス URL : https://ylyohjic.adb.ap-tokyo-1.oraclecloudapps.com/ords/sql-developer
ケース1: コンピュート・インスタンス経由
運用上の理由などにより、踏台サーバを実行していることは良くあることかと思います
本ケースでは、踏台サーバを SSH ポート・フォワードの中継として利用し、プライベート・サブネットの ADB エンドポイントへアクセスを行います
- SSH コマンドをローカル PC 上で実行し、SSH トンネルを作成します
1ssh -i <ssh秘密鍵> -N -L 443:ylyohjic.adb.ap-tokyo-1.oraclecloudapps.com:443 -p 22 158.101.80.82 - ブラウザで、 https://localhost/ords/sql-developer にアクセスします
認証後、データベース・アクションが表示出来ます
ケース2: Bastion Service経由
このケースはケース1とほぼ同じで、コンピュート・インスタンスが Bastion Service に置き換わった構成となります
下図の様にセッションを作成し、セッション作成後に表示出来る SSH コマンドをローカル PC 上で実行すれば、ブラウザでアクセス可能になります
ケース3: Network Load Balancer経由
このケースは、ロード・バランサをフロント・エンドとし、バックエンド・サーバーとして ADB のデータベース・アクションを設定している構成となります
設定は、一般的なコンピュート・インスタンスを Web サーバとして設定する構成の Web サーバ部分を ADB とするイメージとなり、特に複雑な設定は必要といたしません
ADB のプライベート IP アドレスをバックエンドとして設定し、ヘルス・チェック・ポリシーも下図の様に設定を行うだけでアクセス可能になります
まとめ
以上のように、特に複雑な設定などを行わなくても、 Apache などの Web サーバと同じように設定を行うことで、プライベート・エンドポイントのデータベース・アクションへアクセスすることが可能となります
特に、ケース 3 においては、データベース・アクションから提供される証明書が利用出来ず、適切な暗号化通信を行えておりませんので、あくまでもデータベース・アクションへ接続が可能であるということはご認識いただければと思います
ケース1, 2に関しましては、 SSH トンネルを用いておりますので、データベース・アクションの証明書による暗号化通信は行えておりませんが、 SSH による暗号化は行えております
そのため、
- 踏台サーバが存在している場合はケース1を選択
- 踏台サーバが存在しておらず、最大3時間の利用で完了する場合はケース2を選択
のどちらかのケースが良いのでは無いでしょうか
ただし、このようなアクセス方法はオラクル社として推奨している方法ではございませんので、自己責任にて実施願います