Load BalancerはIP Adressが届けばBackend Set に登録できます。
NAT Gateway や Service Gateway を利用すればPrivate Subnet内にあるインスタンスからPublic IPのインスタンスへアクセスできるので、今回は Private Load Balancerを使用してオンプレミスからVPNを使用してPublic IPのインスタンスへアクセスしてみます。
#■構成概要
PublicサービスであるAutonomous Databaseへアクセスしてみてみます。
ただし、、Autonomous Databaseはホスト名でアクセスする必要があり、IP Addressを指定してのアクセスはIPアドレスが変動する可能性があるためCertify(動作保証)はされませんが、やってみてみます。
#■Autonomous Transaction Processing Databases (ATP)作成と確認
##●ATP作成
ATP画面で[Create ATransaction Processing Database]ボタンをクリックし、以下のような情報を入力して作成します。
##●クライアント資格証明(Oracle Wallet)のダウンロード
データベース接続は暗号化されており、WALLETの資格証明を使用して接続します。
ADWでは、zip化された接続情報含めたファイルをダウンロードし、このzipを使用して接続します。
①作成したADWのページに移動し、「DB Connection」をクリック
②「Database Connection」画面で、「Download」をクリックし、WALLETの資格証明(Wallet_〜.zip)をダウンロード
##●ATP hostname確認
DownloadしたWALLETの資格証明(Wallet_〜.zip)内にあるtnsnames.oraから、ATPのIPアドレスを確認します
①WALLETの資格証明(Wallet_〜.zip)解凍
[oracle@test-Inst01 ~]$ unzip Wallet_ATP001.zip
Archive: Wallet_ATP001.zip
inflating: cwallet.sso
inflating: tnsnames.ora
inflating: truststore.jks
inflating: ojdbc.properties
inflating: sqlnet.ora
inflating: ewallet.p12
inflating: keystore.jks
②tnsnames.ora確認
hostとCNにある名前を確認
[oracle@test-Inst01 ~]$ cat tnsnames.ora
・・・
atp001_high = (description= (address=(protocol=tcps)(port=1522)(host=adb.test.oraclecloud.com))(connect_data=(service_name=p36dah33ehxmnrf_atp001_high.atp.oraclecloud.com))(security=(ssl_server_cert_dn=
"CN=adwc.test.oraclecloud.com,OU=Oracle BMCS US,O=Oracle Corporation,L=Redwood City,ST=California,C=US")) )
・・・
##●ATP IP Address 確認
OCI上のホストでtnsnames.oraにある hostとCNにある名前から、3つのIP Addressを確認
この3つのアドレスをLoadBalancerのBuckend Setに登録します
[opc@oci-Inst01 ~]$ nslookup adb.test.oraclecloud.com
Server: 169.254.169.254
Address: 169.254.169.254#53
Non-authoritative answer:
adb.test.oraclecloud.com canonical name = adwc.test.oraclecloud.com.
Name: adwc.test.oraclecloud.com
Address: 100.100.100.101
Name: adwc.test.oraclecloud.com
Address: 100.100.100.102
Name: adwc.test.oraclecloud.com
Address: 100.100.100.103
##●NAT Gateway作成
Private Load BarancerがVCN内からATPへアクセスできるようNAT Gateway もしくはService Gatewayを作成
##●Routeing Table設定
VCN内から作成したNAT Gatewayを通してATPの3つのアドレスへアクセスするように設定
##●Security List 設定
Public IPのATPへアクセスできるようにEgress Rouleを設定
#■ Private Load Balancer作成
##●Private Load Balancer作成
Load Balancer画面で[Create Load Balancer]ボタンをクリックし、以下情報を入力して作成
・Listener Information
- Protocol:TCP
- PORT:1522
・Backend Set Information
- Private or Public IP Address: ATPの3つのIP Addressを登録
- Port:1522
##●Backend Sets Health確認
Backend Setが登録されATPと疎通できていることを確認
#■オンプレミス側:Client設定
オンプレミス側ClientにLoad Balancerを経由してATPにアクセスするため、Load BlancerのIP AddressをATPのホスト名でアクセスできるように設定
##●/etc/hosts設定
/etc/hostsへLoad BlancerのIP AddressをATPのホスト名へ設定
[oracle@test-Inst01 ~]$ cat /etc/hosts
10.0.0.8 adb.test.oraclecloud.com adwc.test.oraclecloud.com
##●ping接続確認
ATPのホスト名でLoad Blancerへ疎通できることを確認
[oracle@test-Inst01 ~]$ ping adwc.test.oraclecloud.com -c 3
PING adb.test.oraclecloud.com (10.0.0.8) 56(84) bytes of data.
64 bytes from adb.test.oraclecloud.com (10.0.0.8): icmp_seq=1 ttl=62 time=53.1 ms
64 bytes from adb.test.oraclecloud.com (10.0.0.8): icmp_seq=2 ttl=62 time=53.2 ms
64 bytes from adb.test.oraclecloud.com (10.0.0.8): icmp_seq=3 ttl=62 time=53.1 ms
--- adb.test.oraclecloud.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 53.166/53.185/53.212/0.189 ms
[oracle@test-Inst01 ~]$ ping adb.test.oraclecloud.com -c 3
PING adb.test.oraclecloud.com (10.0.0.8) 56(84) bytes of data.
64 bytes from adb.test.oraclecloud.com (10.0.0.8): icmp_seq=1 ttl=62 time=54.2 ms
64 bytes from adb.test.oraclecloud.com (10.0.0.8): icmp_seq=2 ttl=62 time=54.2 ms
64 bytes from adb.test.oraclecloud.com (10.0.0.8): icmp_seq=3 ttl=62 time=54.3 ms
--- adb.test.oraclecloud.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 54.251/54.284/54.329/0.193 ms
#■ATP接続テスト
OnPのClientにSQLclを設定してATPへ接続確認します
##●Internetに接続できないことを確認
[oracle@test-Inst01 ~]$ ping google.com
PING google.com (172.217.20.78) 56(84) bytes of data.
^C
--- google.com ping statistics ---
8 packets transmitted, 0 received, 100% packet loss, time 7151ms
##●ATP接続確認
[oracle@test-Inst01 ~]$ ~/oracle/sqlcl/bin/sql /nolog
SQLcl: 火 2 19 13:30:14 2019のリリース18.4 Production
Copyright (c) 1982, 2019, Oracle. All rights reserved.
SQL> set cloudconfig /home/opc/oracle/Wallet_ATP001.zip
操作は正常に完了しました。
操作は正常に完了しました。
Using temp directory:/tmp/oracle_cloud_config3565512044165054504
SQL> connect ADMIN@ATP001_HIGH
パスワード (**********?) ********************
接続しました.
SQL> select NAME from v$pdbs;
NAME
---------------------------------------------
TEST_ATP001