表題の通り Private Subnet に作成した DBCS に、Public Subnet の NLB経由 で接続してみるやで。
彡(゚)(゚)
1. 接続トポロジー/検証環境
接続トポロジーは以下の通りです。
PC -> (Internet) -> NLB(Public Subnet) ┬-> RAC #1(Private Subnet)
└-> RAC #2(Private Subnet)
検証環境は下記記事の構成を使います。
検証によく使う Oracle Cloud Infrastructure(OCI) の 環境構成
(VCN, Seculity List, 各種Gateway, Route Table, Subnet, Compute)まとめ
https://qiita.com/ora_gonsuke777/items/08e4781af8c4f7e114ff
2. DBCS(EEHP, RAC) の作成
詳細は省略します。DBCS RAC(EEEP) を Private Subnet に作成します。
3. NLB(Network Load Balancer) の作成
LB名は任意、Visibility Type は Public、Public IP は Ephemeral、VCN と Subnet は予め作成しておいたものを選択します。
Listener名は任意、プロトコルはTCP、ポートは1521を指定します。
Backends名は任意、この時点で Backend Servers は指定せず、Health Check のポートは TCP/1521 に変更します。
作成が終わりましたが、この時点では Backend Server が無いので追加で設定します。
Backend Sets の画面に遷移して Add Backends ボタンを押します。
RAC DBノード #1 の 物理IP を指定して追加します。
上手く行くと Backends の Health が OK になります。
4. PC から NLB経由 で DBCS に接続
まず Pluggable Database の画面に遷移して、PDB のサービス名を確認します。
PC から NLB経由 で DBCS に接続します。今回は SQL Developer を使用彡(゚)(゚)
ホスト名:NLB の Public IP Address
ポート :1521
サービス名:上記で確認した PDB のサービス名
上手くいきました。
5. 注意事項
Backend Sets の IP に RAC DBノード の 物理IP を指定しているので、Oracle MAA には沿っていません。
今回の要件で Oracle MAA準拠するには Compute に CMAN(Connection Manager) を構成して、
NLB の Backends に CMAN を2台以上配置して NLB⇒CMAN経由でDBに接続するのがエエかと思います(未検証)
彡(゚)(゚)
5.6 Oracle Connection Managerのアーキテクチャの理解
https://docs.oracle.com/cd/F19136_01/netag/understanding-oracle-net-architecture.html#GUID-AAEEC927-9A69-4012-AC2C-8423274F94C6(※CMANの参考記事) How to create a database link from Oracle Autonomous Database to a private on-premise DB
https://qiita.com/RexZheng/items/92fb55686fff9811bfbe
6. まとめ
注意事項があるとは云え NLB構成による Public接続化 はお手軽です。
セキュリティに留意して、ご活用下さいね彡(^)(^)