【基本】AWSでRDS(Oralce)に接続する手順

# 概要
AWSを使ってOracleのRDSを作ったので接続してみました。

# 前提事項
・RDSの作成で行うパラメータ設定は、基本的にはすべてデフォルトで行っています。
・接続方法はEC2インスタンスの踏み台サーバにOracle Clientをインストールして、sqlplusを使ってRDSへ接続します。

# 早速接続してみる
### EC2にOracle Clientツールを入れる
公式サイトからパッケージをダウンロードをします。
※注意点としては、sqlplusパッケージのみでは動かないのでbasicパッケージも併せてダウンロードをしましょう。

```
[root@ip-10-0-1-168 ~]# wget https://download.oracle.com/otn_software/linux/instantclient/1912000/oracle-instantclient19.12-basic-19.12.0.0.0-1.x86_64.rpm
--2021-07-31 01:10:37--  https://download.oracle.com/otn_software/linux/instantclient/1912000/oracle-instantclient19.12-basic-19.12.0.0.0-1.x86_64.rpm
Resolving download.oracle.com (download.oracle.com)... 23.45.56.109
Connecting to download.oracle.com (download.oracle.com)|23.45.56.109|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 54501080 (52M) [application/x-redhat-package-manager]
Saving to: ‘oracle-instantclient19.12-basic-19.12.0.0.0-1.x86_64.rpm’

100%[======================================>] 54,501,080   136MB/s   in 0.4s   

2021-07-31 01:10:37 (136 MB/s) - ‘oracle-instantclient19.12-basic-19.12.0.0.0-1.x86_64.rpm’ saved [54501080/54501080]

[root@ip-10-0-1-168 ~]# wget https://download.oracle.com/otn_software/linux/instantclient/1912000/oracle-instantclient19.12-sqlplus-19.12.0.0.0-1.x86_64.rpm
--2021-07-31 01:10:54--  https://download.oracle.com/otn_software/linux/instantclient/1912000/oracle-instantclient19.12-sqlplus-19.12.0.0.0-1.x86_64.rpm
Resolving download.oracle.com (download.oracle.com)... 23.45.56.109
Connecting to download.oracle.com (download.oracle.com)|23.45.56.109|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 703176 (687K) [application/x-redhat-package-manager]
Saving to: ‘oracle-instantclient19.12-sqlplus-19.12.0.0.0-1.x86_64.rpm’

100%[======================================>] 703,176     --.-K/s   in 0.02s   

2021-07-31 01:10:54 (38.5 MB/s) - ‘oracle-instantclient19.12-sqlplus-19.12.0.0.0-1.x86_64.rpm’ saved [703176/703176]

[root@ip-10-0-1-168 ~]# ll
total 53912
-rw-r--r-- 1 root root 54501080 Jul 23 16:43 oracle-instantclient19.12-basic-19.12.0.0.0-1.x86_64.rpm
-rw-r--r-- 1 root root   703176 Jul 23 16:43 oracle-instantclient19.12-sqlplus-19.12.0.0.0-1.x86_64.rpm
[root@ip-10-0-1-168 ~]# 
```

RPMパッケージをyumでインストール

```
[root@ip-10-0-1-168 ~]# yum localinstall oracle-instantclient19.12-basic-19.12.0.0.0-1.x86_64.rpm

Installed:
  oracle-instantclient19.12-basic.x86_64 0:19.12.0.0.0-1                        

Complete!

[root@ip-10-0-1-168 ~]# yum localinstall oracle-instantclient19.12-sqlplus-19.12.0.0.0-1.x86_64.rpm

Installed:
  oracle-instantclient19.12-sqlplus.x86_64 0:19.12.0.0.0-1                      

Complete!
```

### 環境変数を設定する
環境変数を設定してあげないとsqlplusをフルパスで毎回起動しないといけなくなるので必ず設定する。

```
[root@ip-10-0-1-168 ~]# echo "export LD_LIBRARY_PATH=/usr/lib/oracle/19.12/client64/lib:$LD_LIBRARY_PATH" >> ~/.bash_profile
[root@ip-10-0-1-168 ~]# echo "export PATH=/usr/lib/oracle/19.12/client64/bin:$PATH" >> ~/.bash_profile 
```

### 接続する

```
[root@ip-10-0-1-168 ~]# sqlplus 'admin@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=database-1.c5jqncbegdvz.ap-northeast-1.rds.amazonaws.com)(PORT=1521))(CONNECT_DATA=(SID=TESTDB)))'

SQL*Plus: Release 19.0.0.0.0 - Production on Sat Jul 31 01:35:14 2021
Version 19.12.0.0.0

Copyright (c) 1982, 2021, Oracle.  All rights reserved.

Enter password: 

Connected to:
Oracle Database 19c Standard Edition 2 Release 19.0.0.0.0 - Production
Version 19.11.0.0.0

SQL> 

SQL> select instance_name from v$instance;

INSTANCE_NAME
----------------
TESTDB

SQL> 
```

コマンドの意味をひとつずつ解説すると

admin：DBに接続するマスターユーザー名
PROTOCOL：TCPプロトコルです。
HOST：RDSのエンドポイントであるDNS名を記載しましょう。
PORT：Oracle接続ポート番号（1521）
SID：接続するDBインスタンス名


# 参考
[SQL *Plus を使用した DB インスタンスへの接続](https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/USER_ConnectToOracleInstance.html)
[Linux x86-64（64ビット）用のOracle InstantClientのダウンロード](https://www.oracle.com/jp/database/technologies/instant-client/linux-x86-64-downloads.html)