LoginSignup
8
2

More than 3 years have passed since last update.

Oracle Cloud:オンプレミスからVPNでLoad Balancer経由でPublic IPのインスタンスにアクセスしてみてみた

Last updated at Posted at 2019-02-24

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(動作保証)はされませんが、やってみてみます。

NW構成_Qiita用2.png

■Autonomous Transaction Processing Databases (ATP)作成と確認

●ATP作成

ATP画面で[Create ATransaction Processing Database]ボタンをクリックし、以下のような情報を入力して作成します。
02.png

●クライアント資格証明(Oracle Wallet)のダウンロード

データベース接続は暗号化されており、WALLETの資格証明を使用して接続します。
ADWでは、zip化された接続情報含めたファイルをダウンロードし、このzipを使用して接続します。

①作成したADWのページに移動し、「DB Connection」をクリック
03.png

②「Database Connection」画面で、「Download」をクリックし、WALLETの資格証明(Wallet_〜.zip)をダウンロード
06.png

●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つのアドレスへアクセスするように設定
01.png

●Security List 設定

Public IPのATPへアクセスできるようにEgress Rouleを設定
01.png

■ 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

01_IP変更.png

●Backend Sets Health確認

Backend Setが登録されATPと疎通できていることを確認

03.png

■オンプレミス側: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

8
2
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
8
2