

# RDS for Oracle CDB の設定
<a name="oracle-cdb.configuring"></a>

CDB の設定は、非 CDB の設定と似ています。

**Topics**
+ [RDS for Oracle CDB インスタンスの作成](#Oracle.Concepts.single-tenant.creation)
+ [RDS for Oracle CDB での PDB への接続](#Oracle.Concepts.connecting.pdb)

## RDS for Oracle CDB インスタンスの作成
<a name="Oracle.Concepts.single-tenant.creation"></a>

RDS for Oracle では、CDB インスタンスの作成は非 CDB の作成とほとんど同じです。その違いは、DB インスタンスを作成するときに Oracle マルチテナントアーキテクチャを選択し、アーキテクチャ設定 (マルチテナントまたはシングルテナント) を選択することです。マルチテナント設定で CDB を作成するときにタグを作成すると、RDS はそのタグを初期テナントデータベースに伝達します。CDB を作成するには、AWS マネジメントコンソール、AWS CLI、または RDS API を使用します。

### コンソール
<a name="Oracle.Concepts.single-tenant.creation.console"></a>

**CDB インスタンスを作成するには**

1. AWS マネジメントコンソール にサインインし、Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

1. Amazon RDS コンソールの右上で、CDB インスタンスを作成する AWS リージョン を選択します。

1. ナビゲーションペインで、[**データベース**] を選択します。

1. [**データベースの作成**] を選択します。

1. [**Choose a database creation method (データベース作成方法を選択)**] で [**Standard Create (スタンダード作成)**] を選択します。

1. [**エンジンのオプション**] で [**Oracle**] を選択します。

1. **[データベース管理のタイプ]** で、**[Amazon RDS]** を選択します。

1. **[アーキテクチャ設定]** では、**[Oracle マルチテナントアーキテクチャ]** を選択します。

1. **[アーキテクチャ設定]** で、次のいずれかを実行します。
   + **[マルチテナント設定]** を選択し、次のステップに進みます。
   + **[シングルテナント設定]** を選択し、ステップ 11 に進みます。

1. (マルチテナント設定) **[テナントデータベース設定]** で、次の変更を行います。
   + **[テナントデータベース名]** には、データベースの名前を入力します。PDB 名は CDB 名 (デフォルトは `RDSCDB`) と異なるものである必要があります。
   + **[テナントデータベースのマスターユーザー名]** には、PDB のマスターユーザー名を入力します。テナントデータベースマスターユーザー名を使用して CDB 自体にログインすることはできません。
   + **[認証情報管理]** では、次のいずれかの認証情報管理オプションを選択します。
     + ** で管理AWS Secrets Manager**

       マネージドパスワードは、インスタンス用ではなく、初期テナントデータベース用です。**[暗号化キーを選択]** で、Secrets Manager によって作成される KMS キーと自分で作成したキーのいずれかを選択します。
**注記**  
認証情報を管理するための最も安全な手法として、AWS Secrets Manager をお勧めします。別途 料金がかかります。詳細については、「[Amazon RDS および AWS Secrets Manager によるパスワード管理](rds-secrets-manager.md)」を参照してください。
     + **セルフマネージド**

       パスワードを指定するには、**[パスワードの自動生成]** チェックボックスが選択されている場合はクリアします。**[マスターパスワード]** と **[マスターパスワードを確認]** に同じパスワードを入力します。
   + **[テナントデータベースの文字セット]** では、PDB の文字セットを選択します。テナントデータベース文字セットとは異なる PDB 文字セットを選択できます。

     デフォルトの PDB 文字セットは **AL32UTF8** です。デフォルト以外の PDB 文字セットを選択すると、CDB の作成が遅くなる可能性があります。
**注記**  
作成オペレーションで複数のテナントデータベースを指定することはできません。CDB の作成時に PDB が 1 つあります。PDB は、別のオペレーションで既存の CDB に追加できます。

1. (シングルテナント設定) [DB インスタンスの設定](USER_CreateDBInstance.Settings.md) に記載されているオプションに基づいて、必要な設定を選択します。

   1. [**設定**] セクションで、[**認証情報の設定**] を開きます。次に、以下の操作を実行します。

     1. **[マスターユーザー名]** には、PDB のローカルユーザーの名前を入力します。マスターユーザー名を使用して CDB ルートにログインすることはできません。

     1. **[認証情報管理]** では、次のいずれかの認証情報管理オプションを選択します。
        + ** で管理AWS Secrets Manager**

          **[暗号化キーを選択]** で、Secrets Manager によって作成される KMS キーと自分で作成したキーのいずれかを選択します。
**注記**  
認証情報を管理するための最も安全な手法として、AWS Secrets Manager をお勧めします。別途 料金がかかります。詳細については、「[Amazon RDS および AWS Secrets Manager によるパスワード管理](rds-secrets-manager.md)」を参照してください。
        + **セルフマネージド**

          パスワードを指定するには、**[パスワードの自動生成]** チェックボックスが選択されている場合はクリアします。**[マスターパスワード]** と **[マスターパスワードを確認]** に同じパスワードを入力します。

1. 残りのセクションで、DB インスタンス設定を指定します。各設定の詳細については、「[DB インスタンスの設定](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.Settings.html)」を参照してください。

1. **[データベースの作成]** を選択します。

### AWS CLI
<a name="Oracle.Concepts.single-tenant.creation.cli"></a>

マルチテナント設定で CDB を作成するには、以下のパラメータを指定して [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) コマンドを使用します。
+ `--db-instance-identifier`
+ `--db-instance-class`
+ `--engine { oracle-ee-cdb | oracle-se2-cdb }`
+ `--master-username`
+ `--master-user-password`-または-`--manage-master-user-password`
+ `--multi-tenant`(シングルテナント設定の場合は、`multi-tenant` も `--no-multi-tenant` も指定しないでください)
+ `--allocated-storage`
+ `--backup-retention-period`

各設定の詳細については、「[DB インスタンスの設定](USER_CreateDBInstance.Settings.md)」を参照してください。

次の例では、マルチテナント設定で *my-cdb-inst* という名前の RDS for Oracle DB インスタンスを作成します。`--no-multi-tenant` を指定するか `--multi-tenant` を指定しなかった場合、デフォルトの CDB 設定はシングルテナントです。エンジンは、`oracle-ee-cdb`: `oracle-ee` および `--multi-tenant` を指定するとエラーで失敗するコマンドです。初期テナントデータベースの名前は *mypdb* です。

**Example**  
Linux、macOS、Unix の場合:  

```
 1. aws rds create-db-instance \
 2.     --engine oracle-ee-cdb \
 3.     --db-instance-identifier my-cdb-inst \
 4.     --multi-tenant \
 5.     --db-name mypdb \
 6.     --allocated-storage 250 \
 7.     --db-instance-class db.t3.large \
 8.     --master-username pdb_admin \
 9.     --manage-master-user-password \
10.     --backup-retention-period 3
```
Windows の場合:  

```
 1. aws rds create-db-instance ^
 2.     --engine oracle-ee-cdb ^
 3.     --db-instance-identifier my-cdb-inst ^
 4.     --multi-tenant ^
 5.     --db-name mypdb ^
 6.     --allocated-storage 250 ^
 7.     --db-instance-class db.t3.large ^
 8.     --master-username pdb_admin ^
 9.     --manage-master-user-password \ ^
10.     --backup-retention-period 3
```
セキュリティ上のベストプラクティスとして、ここに示されているプロンプト以外のパスワードを指定してください。
このコマンドでは、次のような出力が生成されます。データベース名、文字セット、各国語文字セット、マスターユーザー、マスターユーザーシークレットは出力に含まれません。この情報は CLI コマンド `describe-tenant-databases` を使用して表示できます。  

```
 1. {
 2.     "DBInstance": {
 3.         "DBInstanceIdentifier": "my-cdb-inst",
 4.         "DBInstanceClass": "db.t3.large",
 5.         "MultiTenant": true,
 6.         "Engine": "oracle-ee-cdb",
 7.         "DBResourceId": "db-ABCDEFGJIJKLMNOPQRSTUVWXYZ",
 8.         "DBInstanceStatus": "creating",
 9.         "AllocatedStorage": 250,
10.         "PreferredBackupWindow": "04:59-05:29",
11.         "BackupRetentionPeriod": 3,
12.         "DBSecurityGroups": [],
13.         "VpcSecurityGroups": [
14.             {
15.                 "VpcSecurityGroupId": "sg-0a1bcd2e",
16.                 "Status": "active"
17.             }
18.         ],
19.         "DBParameterGroups": [
20.             {
21.                 "DBParameterGroupName": "default.oracle-ee-cdb-19",
22.                 "ParameterApplyStatus": "in-sync"
23.             }
24.         ],
25.         "DBSubnetGroup": {
26.             "DBSubnetGroupName": "default",
27.             "DBSubnetGroupDescription": "default",
28.             "VpcId": "vpc-1234567a",
29.             "SubnetGroupStatus": "Complete",
30.             ...
```

### RDS API
<a name="Oracle.Concepts.single-tenant.creation.api"></a>

Amazon RDS API を使用して DB インスタンスを作成するには、[CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) オペレーションを呼び出します。

各設定の詳細については、「[DB インスタンスの設定](USER_CreateDBInstance.Settings.md)」を参照してください。

## RDS for Oracle CDB での PDB への接続
<a name="Oracle.Concepts.connecting.pdb"></a>

SQL\$1Plus などのユーティリティを使用して PDB に接続できます。SQL\$1Plus のスタンドアロンバージョンを含む Oracle Instant Client をダウンロードするには、[Oracle Instant Client Downloads](https://www.oracle.com/database/technologies/instant-client/downloads.html) を参照してください。

SQL\$1Plus を PDB に接続するには以下の情報が必要です。
+ PDB 名
+ データベースユーザー名とパスワード
+ DB インスタンスのエンドポイント
+ ポート番号

前述の情報を見つける方法については、「[RDS for Oracle DB インスタンスのエンドポイントを見つける](USER_Endpoint.md)」を参照してください。

**Example SQL\$1Plus を使用して PDB に接続するには**  
次の例では、*master\$1user\$1name* をマスターユーザーに置き換えてください。また、エンドポイントを DB インスタンスに置き換えて、ポート番号および Oracle SID を含めます。SID 値は DB インスタンスの作成時に指定した PDB の名前であり、DB インスタンス識別子ではありません。  
Linux、macOS、Unix の場合:  

```
1. sqlplus 'master_user_name@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=endpoint)(PORT=port))(CONNECT_DATA=(SID=pdb_name)))'
```
Windows の場合:  

```
1. sqlplus master_user_name@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=endpoint)(PORT=port))(CONNECT_DATA=(SID=pdb_name)))
```
次のような出力が表示されます。  

```
SQL*Plus: Release 19.0.0.0.0 Production on Mon Aug 21 09:42:20 2021
```
ユーザーのパスワードを入力すると、SQL プロンプトが表示されます。  

```
SQL>
```

**注記**  
`sqlplus username/password@LONGER-THAN-63-CHARS-RDS-ENDPOINT-HERE:1521/database-identifier` のような短い形式の接続文字列 (Easy connect または EZCONNECT) は、最大文字数制限に達する可能性があるため、接続には使用しないでください。