OCI:Private Endpointを設定したAutonomous DatabaseとOracle Analytics Cloud間のData Gatewayによる接続手順

#はじめに
この記事はOracle Cloud Infrastructure(OCI)のAutonomous Data Warehouse(ADW)とOracle Analytics Cloud(OAC)の接続手順です。

ADWのネットワークには、以下2つがあります。

- Public Endpoint
    - すべてのIPアドレスから接続可能
    - Network Access Control List(NetworkACL)によって、接続元を指定することも可能(任意)
- Private Endpoint
    - 指定したVirtual Cloud Network(VCN)のみ接続可能
    - VCNのNetwork Security Group(NSG)によって、アクセス制御を行う(必須)

Public EndpointでもNetworkACLによって特定のVCNやCIDR Blockからのアクセスに限定することができるので、OACとの接続もセキュアに行うことができます。
[Oracle Analytics CloudインスタンスのパブリックIPレンジとゲートウェイIP](https://docs.oracle.com/en/cloud/paas/analytics-cloud/acoci/manage-service-access-and-security.html#GUID-2CDD72A9-6445-491B-BDB9-DBE0ACAF87F3)

今回は、Private Endpointを設定したADWとOACをOACのData gatewayを利用して接続してみます。

#参照情報
- [Oracle Analytics Cloudでのデータの準備](https://docs.oracle.com/cd/E83857_01/paas/analytics-cloud/acabi/you-start-data-gateway.html#GUID-47C8EFE0-A652-49AA-BBB3-89080B622D47)
    - OACのData Gatewayを利用し、ADWにアクセスする手順が記載されています。
- [Graphics for Topologies and Diagrams](https://docs.cloud.oracle.com/en-us/iaas/Content/General/Reference/graphicsfordiagrams.htm)
    - OCIの構成図を書く際のアイコン集(2020年4月30日版)です。
    - 今回はこのアイコンを利用して構成図を書いてみます。

#構成図
![20200521172705_000.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641052/10632bc1-73b4-5195-101b-435b5f6075fd.jpeg)
分析ユーザーがインターネット経由でOACにアクセスし、Private EndpointのADWのデータを分析する構成です。

構築手順は以下です。

1. ネットワークの構築
1. SSHポート転送用のOracle Linuxの構築
1. OACのData Gateway用のWindowsの構築
1. 分析対象のデータを格納するADWの構築
1. OACの構築及びData Gateway経由でADWに接続設定

#1.ネットワークの構築

ネットワークはVCNウィザードを使って構築します。

コンソールのネットワーキングから「VCNウィザードの起動」をクリックすると以下の画面が表示されます。
![20200522111717_000.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641052/2649717f-6a8b-8f6f-dcbb-2643858e4946.jpeg)

インターネット接続性をもつVCNを選択し、「VCNウィザードの起動」をクリックします。
VCN名とVCNを構築するコンパートメントを設定し、そのほかの値はデフォルトのまま、次をクリックすると確認画面に遷移します。

![20200522112219_000.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641052/cb32677e-3883-90dd-8c06-bbcbf1110ef7.jpeg)

![20200522112241_000.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641052/cc989954-844d-3d20-15f0-50584ecb14d2.jpeg)

![20200522112255_000.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641052/be35554f-d6e7-eb49-f245-972530dd9542.jpeg)

![20200522112327_000.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641052/c96c0dde-11b3-761f-2ddb-90785b95532d.jpeg)

![20200522112342_000.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641052/5aef06a7-89f6-375c-cda9-1f8f1e91662a.jpeg)

![20200522112400_000.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641052/63fd4c68-de65-9ee4-455d-bd7b86b07471.jpeg)

上記設定で作成後、2つ追加設定をします。
1つ目はWindows ServerへRDP接続するためにプライベートサブネットのセキュリティリストにイングレスルールを追加します。

![20200522140948_000.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641052/f5b654f9-c2c2-1547-b3ab-8e99442d6f5b.jpeg)

プライベートサブネットのセキュリティリストのイングレスルールです。
![20200522141027_000.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641052/91572e65-578f-4167-4bc7-7b4dd9a864d8.jpeg)

2つ目はにADWで利用するNSGを作成します。
NSG名とイングレス・エグレスルールを設定します。

イングレス
![20200522173657_000.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641052/b8398397-7894-f11c-38ee-837934e7dff1.jpeg)

エグレス
![20200522132706_000.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641052/bb082c86-e56a-d881-5a65-d31c83083e34.jpeg)

ADWとOACは、後ほど作成するData Gateway用のWindows Server経由で接続するためプライベートサブネット内の1522の通信のみ許可しています。

#2.SSHポート転送用のOracle Linuxの構築
プライベートサブネットにWindows Serverを配備して、Data Gatewayを設定するため、SSH転送用のOracle Linux7.8を構築します。
コンソールのコンピュートにて、インスタンスを作成します。
パブリックサブネットに配置し、パブリックIPアドレスを割り当ててください。

#3.OACのData Gateway用のWindowsの構築
OACのData Gateway用のWindows Serverを構築します。
プライベートサブネットに配置してください。

配備後、Windows Serverにログインしてみます。
2.で作成したOracle Linuxにtertermで接続します。
接続後、SSHポート転送の設定を開きます。

- ローカルのポート：任意のポート番号(例：13389)
- リモート側ホスト：Windows ServerのプライベートIPアドレス
- ポート：3389

![20200522134502_000.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641052/7538df40-932a-b508-b231-0a032c8ade56.jpeg)

設定できたらこのようになります。
![20200522134521_000.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641052/1f45696e-7b6d-6e36-6a01-9b29f2dc1dff.jpeg)

teratermは接続した状態でそのままにし、Windows ServerにRDP接続します。
![20200522141255_000.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641052/7a77e548-ce3e-5672-1c3a-cee76ecaf698.jpeg)

接続すると、パスワードの入力を求められるので、コンソール上で取得できるパスワードを入力します。
インスタンスの詳細に初期パスワード情報があります。
![20200522141608_000.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641052/124bab90-3118-8eec-7047-45779f516b10.jpeg)
プライベートサブネットに配備したので、パブリックIPアドレス情報はありません。
初期パスワードを表示し、パスワードを入力します。
パスワード入力時は右下のキーボード設定がJapaneseになっていることを確認してください。
![20200522142039_000.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641052/0b19c62a-35b3-71f9-b676-e7a391ceb3fa.jpeg)

初回ログイン時は、パスワードの変更を求められますので、任意のパスワードに変更します。

ログイン後、Internet Explorer(IE)にて、[Oracle Data Gatewayダウンロード](https://www.oracle.com/middleware/technologies/oac-downloads.html)にアクセスします。
※IEから信頼済みサイト以外にアクセスするには、アクセスしたいサイトを信頼済みサイトに登録する必要がありますが、今回は、「IEセキュリティ強化の構造が有効になっています」を無効化します。無効化は、Server ManagerのLocal Serverにて、IE Enhanced security ConfigurationをOnからOffに変更します。
※プライベートサブネット上のWindows ServerはNAT Gateway経由でアクセスします。作成したネットワーク構成では何もせずにアクセスできます。

Windows版をダウンロードします。
![20200522150929_000.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641052/ba462be3-d4d2-9e43-7256-ced82c1adee0.jpeg)

zipファイルをダウンロード後、展開し、datagatewayを実行します。
![20200522151146_000.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641052/3c2d1b3d-85b3-4ce6-5812-11dd41d1d55d.jpeg)

実行すると、「WindowsによってPCが保護されました」がでますが、「More info」をクリックします。
![20200522151208_000.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641052/3f290384-d61f-3510-d9ca-e62d30258e0b.jpeg)

Run anywayをクリックすると、Data Gatewayの画面が表示されます。
![20200522151231_000.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641052/020f067a-4628-2e0a-f319-028fc35e0f7d.jpeg)

![20200522151508_000.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641052/826da3b0-f977-22cf-6928-1da44ffe2493.jpeg)

ここまでで、Windowsの構築は終わりです。

#4.分析対象のデータを格納するADWの構築
コンソール上でADWを構築します。
ADWは、Always Free枠は利用しないでください。
Always Freeの場合、ネットワーク・アクセスの選択で、仮想クラウド・ネットワークを選択できません。
![20200522152031_000.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641052/c135f673-dd02-206b-37a6-a57e2a99baab.jpeg)

仮想クラウドネットワークを選択すると、サブネットとNSGを選択できるので、プライベートサブネットとあらかじめ作成しておいたNSGを選択します。
![20200522152046_000.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641052/eb09e852-dae2-5412-1df3-71cd16c79163.jpeg)

作成したADWの詳細のネットワーク部分です。
![20200522152534_000.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641052/490aef9b-5671-e4fb-7908-8cebda7656b7.jpeg)

DB接続より、インスタンス・ウォレットをダウンロードします。
このとき、ADW作成時に設定したパスワードを入力します。
![20200522152619_000.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641052/a6b98afc-31f9-cd5e-184a-198e1ca52f4e.jpeg)

ADWは、プライベートサブネットに配備したWindows ServerにSQL Developerなどからアクセス可能です。
[Autonomous Database ハンズオンラボ（ADB HOL）](https://community.oracle.com/docs/DOC-1034727)を参照してください。

#5.OACの構築及びData Gateway経由でADWに接続設定
コンソールからOACのインスタンスを作成します。
インスタンス名とエディション、OCPU数を設定します。

インスタンスの状態がActiveになったら、インスタンス詳細画面の「URLを開く」をクリックします。
![20200522153733_000.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641052/cb9e4f27-1410-d500-8556-f0d40fae3877.jpeg)

OACのHome画面が表示されますので、インターネットブラウザのURLの「`https://oac-XXXXXXXXXXXXX.oraclecloud.com/`」をコピーします。
※ui/dv/?pageid=homeは不要です。
![20200522154232_000.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641052/23051e40-b676-7f53-0a59-1f249364871c.jpeg)

つぎに2.で構築したWindows Serverにアクセスし、Data Gatewayの設定をします。
Data GatewayのURLにOACのURLを入力します。
入力後、「Generate Key」をクリックします。
![20200522154909_000.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641052/f72bc7da-d162-6138-fdb7-57367685df25.jpeg)
Key Successfully generatedとなり、id,oybkucjey,hostnameが表示されたら「Copy to Clipboard」をクリックします。
※この時点で、TestをクリックしてもOAC側の設定がまだのため、Authentication failed withi error.401エラーとなります。

OACのHome画面でコピーしたKey情報を設定します。
左上のハンバーガーボタンをクリックし、Console⇒Remote Data connectivity画面を開きます。
![20200522155808_000.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641052/a252f1c3-3015-677b-d8aa-39eea1af3902.jpeg)

![20200522155949_000.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641052/8729c196-4ecd-35bd-c7e0-c8ebffbc3f04.jpeg)

Data Gatewayの「Add」をクリックし、Public KeyにコピーしたKey情報を貼り付け、OKをクリックします。
![20200522160143_000.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641052/06eda38d-0102-b6dc-3902-46c09828ce0c.jpeg)
※スクショはデータを消しているので何もないように見えますが、Name,ID,HostもPublic Keyをはりつけると自動で入力されます。

Enable Data Gatewayを有効化します。
![20200522160609_000.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641052/12e11e53-db9b-0cd7-6632-c88435ef552f.jpeg)

有効化した後、再度Windows Serverにアクセスし、Data Gatewayにて、Testをクリックします。
Successfully AuthenticatedとなればOKです。
Saveし、Enableにしてください。
![20200522162542_000.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641052/1224234b-a9d1-f34e-1f21-9fcb5fc796de.jpeg)

OACのHome画面の右上にある「Create」から接続設定を行います。
![20200522160845_000.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641052/a89b5ad5-e7d3-2043-665b-1b1ac026fe54.jpeg)

Connectionを選択し、「Oaracle Autonomous Data warehouse」をクリックします、
![20200522160943_000.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641052/240b8028-d17c-d7f2-0321-ade50618fdf6.jpeg)

Create Connection画面にて以下の設定を行います。

- Connection Name：任意
- Service Name：Client Credentialsにて、ADWのインスタンス・ウォレットを設定するとDB名_high,low,mediumの選択ができます。
- Client Credentials：ADWのインスタンス・ウォレット(zip)を選択します。
- Username：ADWのユーザー名です。デフォルトはadminです。
- Password：adminの場合は、ADW作成時にコンソールで設定したパスワードです。
- Use Remote Data Connectivity:チェック入れます。

![20200522171646_000.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641052/17471f7a-e1a5-178d-edd5-cabf90833146.jpeg)

Saveをクリックし、SuccessfullyとなればOKです。
Data画面のConnectionsに表示されます。
![20200522175935_000.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641052/6074c31f-dcdb-5427-9d74-373d0a78d461.jpeg)

作成したConnectionをクリックするとAdd Data Setの画面が表示されます。

![20200522180134_000.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641052/5c6f9d1f-7863-3f69-dd44-898b140edf81.jpeg)

Private Endpointを設定したADWとOAC間のData Gatewayによる接続手順でした。