[OCI]Data Gatewayを使用してOracle Analytics Cloud ProfessionalエディションからMDS（MySQL DB System）に接続してみた

# はじめに

Oracle Analytics Cloud（OAC）にはEnterpriseとProfessionalの2つのエディションがあります。
プライベート・ネットワークにありパブリックIPアドレスを持たないデータソースにアクセスする場合、EnterpriseエディションではPrivate Access Channelという機能を利用して簡単に接続できますが、こちらの機能はProfessionalエディションでは利用できません。

今回は、Oracleから無償で提供されているData Gatewayを使用して、OAC ProfessionalエディションからプライベートIPアドレスのみを持つMDS（MySQL DB System）にアクセスする手順を検証してみました。

# 1.Data GatewayをインストールするComputeインスタンスの作成
Data GatewayをインストールするComputeインスタンスをパブリック・サブネット上に作成します。
今回はOracle Linux 7.9のインスタンスを作成しました。

# 2.Data Gatewayのインストールと起動

[こちら](https://www.oracle.com/middleware/technologies/oac-downloads.html)のページからData Gatewayのインストーラをダウンロードします。
（ファイルサイズは2GBほどあります。）

1.で作成したComputeインスタンス上のopcユーザのホームディレクトリにData GatewayのインストーラをSFTPでアップロードします。

Computetインスタンスにopcユーザでログインします。

```
[opc@data-gw ~]$ ls
DataGateway_6.4.0_Linux64.zip
[opc@data-gateway ~]$ 
```
zipファイルを解凍します。

```
[opc@data-gw ~]$ unzip DataGateway_6.4.0_Linux64.zip
Archive:  DataGateway_6.4.0_Linux64.zip
  inflating: DataGateway_6.4.0_Linux64.bin  
[opc@data-gw ~]$ ls
DataGateway_6.4.0_Linux64.bin  DataGateway_6.4.0_Linux64.zip
[opc@data-gw ~]$
```

サイレントインストール用のレスポンスファイル（/home/opcsilentInstall.response）を作成します。

```
[opc@data-gw ~]$ vi silentInstall.response
```
CREDENTIALS_PAGE_ADMIN_USERNAMEにData Gatewayの管理画面にアクセスする際の管理者ユーザ名を、CREDENTIALS_PAGE_PASSWORDに管理者ユーザのパスワードを指定します。

```txt:silentInstall.response
[ENGINE]
#DO NOT CHANGE THIS.
Response File Version=1.0.0.0.0

[GENERIC]
ORACLE_HOME=/home/opc/Oracle/Middleware/Oracle_Home
SELECT_RD_VERSION_RADIO_V1=false
CREDENTIALS_PAGE_ADMIN_USERNAME=dgw-admin
CREDENTIALS_PAGE_PASSWORD=Demo#1Demo#1
```

インベントリポインタファイル（/etc/oraInst.loc）を作成します。

```
[opc@data-gw ~]$ sudo vi /etc/oraInst.loc
```

```txt:/etc/oraInst.loc
inventory_loc=/home/opc/oraInventory
inst_group=opc
```
インストーラを実行します。

```
[opc@data-gw ~]$ ./DataGateway_6.4.0_Linux64.bin -silent -responseFile /home/opc/silentInstall.response
Launcher log file is /tmp/OraInstall2022-01-26_09-41-45AM/launcher2022-01-26_09-41-45AM.log.
Checking if CPU speed is above 300 MHz.   Actual 2545.216 MHz    Passed
Checking swap space: must be greater than 512 MB.   Actual 8191 MB    Passed
Preparing to launch the Oracle Universal Installer from /tmp/OraInstall2022-01-26_09-41-45AM
Log: /tmp/OraInstall2022-01-26_09-41-45AM/install2022-01-26_09-41-45AM.log
Copyright (c) 1999, 2019, Oracle and/or its affiliates. All rights reserved.
Reading response file..
Validations are enabled for this session.
Verifying data
Copying Files
Percent Complete : 10
Percent Complete : 20
Percent Complete : 30
Percent Complete : 40
Percent Complete : 50
Percent Complete : 60
Percent Complete : 70
Percent Complete : 80
Percent Complete : 90
Percent Complete : 100

The installation of bi_rdc_client 6.4.0.0.0 completed successfully.
Logs successfully copied to /home/opc/oraInventory/logs.
[opc@data-gw ~]$ 
```
インストールが完了しました。

# 3.Data Gatewayの起動
Data Gatewayのホームに移動します。

```
[opc@data-gw ~]$ cd /home/opc/Oracle/Middleware/Oracle_Home
```
Data Gatewayを起動します。

```
[opc@data-gw Oracle_Home]$ domain/bin/startJetty.sh
```
Data Gatewayのステータスを確認します。

```
[opc@data-gw Oracle_Home]$ domain/bin/status.sh
****************************************************************************
******************************** Data Gateway STATUS ********************************
Data Gateway Jetty Home: /home/opc/Oracle/Middleware/Oracle_Home/jetty
Data Gateway Domain Home: /home/opc/Oracle/Middleware/Oracle_Home/domain
Data Gateway Jetty HTTP Port: 8080
Data Gateway Status: UP
	URL: http://data-gw:8080/obiee/config.jsp 
****************************************************************************

[opc@data-gw Oracle_Home]$
```
Data GatewayがTCP8080ポートを使用していることが確認できました。

OSのファイアウォールでData Gatewayが使用するポート（TCP8080）を解放します。

```
[opc@data-gw Oracle_Home]$ sudo firewall-cmd --permanent --add-port=8080/tcp
success
[opc@data-gw Oracle_Home]$ sudo firewall-cmd --reload
success
[opc@data-gw Oracle_Home]$ sudo firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens3
  sources: 
  services: dhcpv6-client ssh
  ports: 8080/tcp
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
	
[opc@data-gw Oracle_Home]$ 
```

# 4.Data Gatewayの設定

ブラウザからData Gatewayの設定ページにアクセスします。
http://＜1.で作成したComputeインスタンスのパブリックIP＞:8080/obiee/config.jsp

![スクリーンショット 2022-01-26 18.56.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/c261c4fc-2bbd-3f10-040b-6e0ec5b6f003.png)

レスポンスファイルで指定した管理者ユーザ名とパスワードでログインします。

URLにAnalytics CloudインスタンスのURLを入力します。
![スクリーンショット 2022-01-26 19.03.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/8a8e9e1a-743a-800b-247d-6ee29ef3375c.png)
「Generate Key」をクリックするとキーが表示されるので、その内容をコピーしておきます。
![スクリーンショット 2022-01-26 19.06.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/64989a27-a0cf-ff11-b4a4-cb6fdce797c2.png)

Data Gatewayの設定ページを開いたままにして、Analytics Cloudインスタンスにブラウザからアクセスします。
![スクリーンショット 2022-01-26 19.19.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/346475d2-5b08-185e-12c9-714d25675bdc.png)

左上のメニューをクリックします。
![スクリーンショット 2022-01-26 19.16.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/dbd19934-2981-22f1-d433-367dcd8c9d04.png)
「コンソール」をクリックします。
![スクリーンショット 2022-01-26 19.17.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/a1a1333d-6a41-fd9b-ef89-d1f08a105206.png)
右下の「リモート・データ接続」をクリックします。
![スクリーンショット 2022-01-26 19.21.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/808b01db-1bc8-ea2b-1b9c-9fa4ffd9c8f9.png)
リモート・データ接続の画面が表示されます。
![スクリーンショット 2022-01-26 19.23.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/e709b2c7-b80d-4319-476e-dccb7d6946cb.png)
データ・ゲートウェイの有効化をオンにします。
![スクリーンショット 2022-01-26 19.25.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/d140b8f0-a5c8-f568-65c5-2cf7c2cd3e16.png)
「追加」をクリックします。
![スクリーンショット 2022-01-26 19.27.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/c5aef0bc-cdfd-c328-1bce-1f972814d408.png)
「公開キー」の欄に先ほどData Gatewayの設定画面でコピーしたキーをペーストします。
![スクリーンショット 2022-01-26 19.30.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/05b192b6-5a75-eb2f-523b-0183f4959f70.png)
「公開キー」の正しいキーを入力すると、名前、ID、ホストが自動的に入力されます。

「OK」をクリックします。
![スクリーンショット 2022-01-26 19.33.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/717e5a30-6cde-d12a-0750-aaf71b1aac28.png)
Data Gatewayが追加されました。

Data Gatewayの設定ページに戻ります。

「テスト」をクリックして、画面上部に「Successfully authenticated」と表示されたらOKです。
![スクリーンショット 2022-01-26 19.36.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/c6f860eb-bcbe-988f-049f-f640a24446b9.png)
「Save」をクリックします。
![スクリーンショット 2022-01-26 19.38.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/46116bee-08ed-f48a-586b-92730def6e9e.png)
「Enable」をオンにします。
![スクリーンショット 2022-01-26 19.40.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/94c63cbf-a3ef-06be-e06c-0544a2d71a5f.png)

# 5.Data Gatewayを経由したMDS（MySQL DB System）への接続

Analytics Cloudインスタンスのホーム画面に戻ります。
![スクリーンショット 2022-01-26 19.44.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/a1d30a83-5d46-b135-e518-7837198347ec.png)
「作成」をクリックします。
![スクリーンショット 2022-01-26 19.44.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/dab4b04d-ee82-1068-92ef-0de0b4f51088.png)
「接続」をクリックします。
![スクリーンショット 2022-01-26 19.45.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/2f8caae0-c1e0-b1dc-1c19-a7253bc9af41.png)
「MySQL」を選択します。
![スクリーンショット 2022-01-26 19.47.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/f1a30a99-ac42-6783-3cfd-08c4177db0bb.png)
MDSのエンドポイントに表示されている情報を元に接続先の情報を入力します。
今回使用するMDSのエンドポイントの情報はこのようになっています。
![スクリーンショット 2022-01-26 19.49.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/983c1228-d69b-0203-1da8-9b4e37784410.png)
接続先のMDSの情報を入力したら、「リモート・データ接続の使用」のチェックをオンにし、「保存」をクリックします。
![スクリーンショット 2022-01-26 19.52.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/027bd66a-6d27-ff39-6e72-81a99a4eaba0.png)
「データのへ接続」をクリックします。
![スクリーンショット 2022-01-26 19.55.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/13bc8152-2c8e-13bb-64b8-8a153c75f1ca.png)
先ほど作成した「MySQL」をクリックします。
![スクリーンショット 2022-01-26 19.56.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/47cb6b82-b84a-257e-8cab-a1b55cac33e9.png)
MDSに接続できました。
![スクリーンショット 2022-01-26 19.57.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/5aeb04d8-6b8a-6676-bb77-315c86cdbfe7.png)
testdbの左側のトグルをクリックします。
![スクリーンショット 2022-01-26 19.59.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/c5ebe408-4a28-d755-98e3-33bc005f2a0a.png)
testdb内のテーブル「dept」が確認できました。
![スクリーンショット 2022-01-26 20.00.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/c5f9390f-99d1-4d95-db02-34fbd6612e3e.png)
「dept」をダブルクリックすると「dept」の内容が表示され、データセットに追加することができました。

# まとめ
Data Gatewayを使用して、Oracle Analytics CloudのProfessionalエディションから、プライベートIPしか持たないMDS（MySQL DB System）に接続することができました。

# 参考情報
[リモート・データ・ゲートウェイのインストール](https://docs.oracle.com/ja/solutions/create-data-mart-multiple-databases-continuous-analytics/install-remote-data-gateway1.html#GUID-255947E4-C4AA-447F-86D1-D32FA8D6A0F0)
[Installing Oracle Analytics Cloud Remote Data Gateway Silently](https://www.ateam-oracle.com/post/installing-oracle-analytics-cloud-remote-data-gateway-silently)