1. はじめに
- オンプレのOracleをAWSにマイグレする仕事があり、検証環境を作ることにした。10年以上Oracleに触れていなかったため、超基本的な環境構築について復習しつつまとめる。
2. やったこと
- RDS for Oracle をなるべく最小構成で作成する。
- クライアント(sqlplus)から接続、操作ができるようにする。
3. 構成図
4. 手順
4.1 VPCなどの準備
- 構成図のVPC(パブリック/プライベートサブネット2つずつ)を作成する。
- プライベートサブネット2つを含むRDS DBサブネットグループを作成する。
4.2 RDS for Oracleの作成
- なるべく低コストな設定でRDS for Oracleを作成する。ただし系切替の試験をしたいため、スタンバイインスタンスは有りにする。
- 設定項目は以下の通り。
- データベース作成方法: 標準作成
- エンジンのオプション: Oracle
- データベース管理タイプ: Amazon RDS
- エディション: Oracle Standard Edition Two
- ライセンス: License Included
- エンジンバージョン: Oracle 19.0.0.0.ru-2024-10.rur-2024-10.r1 (2024/12時点最新)
- テンプレート: 開発/テスト
- 認証情報管理: セルフマネージド
- DBインスタンスクラス: db.t3.small (最も小さいインスタンスに変更)
- ストレージタイプ: gp3
- ストレージ割り当て: 20GiB (デフォルトの200GiBから変更)
- マルチAZ配置: スタンバイインスタンスを作成する (ここだけ低コスト設定ではない)
- コンピューティングリソース: EC2コンピューティングリソースに接続しない(後で個別設定)
- ネットワークタイプ: IPv4
- VPC: 作成したVPC
- DBサブネットグループ: 作成したDBサブネットグループ
- パブリックアクセス: なし
- VPCセキュリティグループ: 同一VPCからの管理ポート(1521/tcp)の許可
- AZ: 指定なし(DBサブネットグループのどちらかのAZで起動)
- Performance Insights: チェックを外す
- 拡張モニタリング: チェックを外す
4.3 クライアント環境の作成
- Amazon Linux 2023 のインスタンスを起動し、必要なパッケージをインストールする。Oracle社のLinux用の資材ダウンロードサイトはこちら。※Oracle Linux 9 / RHEL9 用と書いてはあるが、、
# 資材をダウンロード
[ec2-user@ip-10-0-0-130 ~]$ wget https://download.oracle.com/otn_software/linux/instantclient/1919000/oracle-instantclient19.19-basic-19.19.0.0.0-1.el9.x86_64.rpm
[ec2-user@ip-10-0-0-130 ~]$ wget https://download.oracle.com/otn_software/linux/instantclient/1919000/oracle-instantclient19.19-sqlplus-19.19.0.0.0-1.el9.x86_64.rpm
# インストール (依存関係があり、3つをこの順番でインストールする必要あり)
[ec2-user@ip-10-0-0-130 ~]$ sudo dnf install -y libnsl
[ec2-user@ip-10-0-0-130 ~]$ sudo rpm -ivph oracle-instantclient19.19-basic-19.19.0.0.0-1.el9.x86_64.rpm
[ec2-user@ip-10-0-0-130 ~]$ sudo rpm -ivph oracle-instantclient19.19-basic-19.19.0.0.0-1.el9.x86_64.rpm
# 接続確認
# ORCLはデフォルトのデータベース名
[ec2-user@ip-10-0-0-130 ~]$ sqlplus admin/[password]@//[RDSエンドポイント]:1521/ORCL
SQL*Plus: Release 19.0.0.0.0 - Production on Wed Dec 25 05:18:10 2024
Version 19.19.0.0.0
Copyright (c) 1982, 2022, Oracle. All rights reserved.
Last Successful login time: Mon Dec 23 2024 08:59:30 +00:00
Connected to:
Oracle Database 19c Standard Edition 2 Release 19.0.0.0.0 - Production
Version 19.25.0.0.0
SQL>
4.4 クライアントからの基本的な操作
# テーブル作成
SQL> CREATE TABLE animals (
2 id NUMBER,
3 name VARCHAR2(50)
4 );
Table created.
# データ追加
SQL> INSERT INTO animals VALUES(1, 'cat');
1 row created.
SQL> INSERT INTO animals VALUES(2, 'dog');
1 row created.
SQL> COMMIT;
Commit complete.
# データ確認
SQL> SELECT * FROM animals;
ID NAME
---------- --------------------------------------------------
1 cat
2 dog
5. 参考URL
- Oracle Databaseにログインし、テーブル作成してみた
- RDS for Oracle のハンズオン (Immersion Day) をやってみて気づきを整理してみた
- SQL *Plus を使用した DB インスタンスへの接続
6. 所感
- 本当に久しぶりにOracleを触ってすごく新鮮な気持ちになった。後続の検証を頑張りたい。