

# Amazon RDS DB インスタンスの作成
<a name="USER_CreateDBInstance"></a>

Amazon RDS の基本構成要素は、データベースの作成先の DB インスタンスです。DB インスタンスの作成時に、エンジン固有の特性を選択します。また、データベースサーバーが実行されている AWS インスタンスのストレージ容量、CPU、メモリなどを選択します。

**Topics**
+ [DB インスタンスの前提条件](#USER_CreateDBInstance.Prerequisites)
+ [DB インスタンスの作成](#USER_CreateDBInstance.Creating)
+ [DB インスタンスの設定](USER_CreateDBInstance.Settings.md)

## DB インスタンスの前提条件
<a name="USER_CreateDBInstance.Prerequisites"></a>

**重要**  
Amazon RDS DB インスタンスを作成したり、DB インスタンスに接続したりする前に、「[Amazon RDS 環境のセットアップ](CHAP_SettingUp.md)」のタスクを完了します。

RDS DB インスタンスを作成するための前提条件を次に示します。

**Topics**
+ [DB インスタンスのネットワークを設定する](#USER_CreateDBInstance.Prerequisites.VPC)
+ [追加の前提条件](#USER_CreateDBInstance.Prerequisites.Additional)

### DB インスタンスのネットワークを設定する
<a name="USER_CreateDBInstance.Prerequisites.VPC"></a>

Amazon RDS DB インスタンスは、Amazon VPC サービスに基づく仮想プライベートクラウド (VPC) でのみ作成できます。また、少なくとも 2 つのアベイラビリティーゾーンを持つ AWS リージョン である必要があります。DB インスタンスに選択する DB サブネットグループは、少なくとも 2 つのアベイラビリティーゾーンを対象とする必要があります。この設定により、DB インスタンスを作成する時に マルチ AZ の配置を設定したり、将来的に簡単に移行することができます。

新しい DB インスタンスと同じ VPC 内の Amazon EC2 インスタンス間の接続を設定するには、DB インスタンスの作成中に設定します。同じ VPC 内の EC2 インスタンス以外のリソースから DB インスタンスに接続するには、ネットワーク接続を手動で設定できます。

**Topics**
+ [EC2 インスタンスとの自動ネットワーク接続を設定する](#USER_CreateDBInstance.Prerequisites.VPC.Automatic)
+ [ネットワークを手動で設定する](#USER_CreateDBInstance.Prerequisites.VPC.Manual)

#### EC2 インスタンスとの自動ネットワーク接続を設定する
<a name="USER_CreateDBInstance.Prerequisites.VPC.Automatic"></a>

RDS DB インスタンスを作成する場合は、AWS マネジメントコンソール を使用して Amazon EC2 インスタンスと新しい DB インスタンス間の接続をセットアップできます。これを行うと、RDS では VPC とネットワークの設定を自動で行います。EC2 インスタンスが DB インスタンスにアクセスできるように、EC2 インスタンスと同じ VPC 内に DB インスタンスを作成します。

EC2 インスタンスと DB インスタンスを接続するための要件は次のとおりです。
+ DB インスタンスを作成する前に、AWS リージョン に EC2 インスタンスが存在する必要があります。

  AWS リージョン に EC2 インスタンスが存在しない場合、コンソールには EC2 インスタンス作成用のリンクが表示されます。
+ DB インスタンスを作成するユーザーには、次の操作を実行する権限が必要です。
  + `ec2:AssociateRouteTable` 
  + `ec2:AuthorizeSecurityGroupEgress` 
  + `ec2:AuthorizeSecurityGroupIngress` 
  + `ec2:CreateRouteTable` 
  + `ec2:CreateSubnet` 
  + `ec2:CreateSecurityGroup` 
  + `ec2:DescribeInstances` 
  + `ec2:DescribeNetworkInterfaces` 
  + `ec2:DescribeRouteTables` 
  + `ec2:DescribeSecurityGroups` 
  + `ec2:DescribeSubnets` 
  + `ec2:ModifyNetworkInterfaceAttribute` 
  + `ec2:RevokeSecurityGroupEgress` 

このオプションを使用すると、プライベート DB インスタンスが作成されます。DB インスタンスでは、プライベートサブネットのみを持つ DB サブネットグループを使用して、VPC 内のリソースへのアクセスを制限します。

EC2 インスタンスを DB インスタンスに接続するには、**[Create database]** (データベースの作成) ページの **[Connectivity]** (接続) セクションで、**[Connect to an EC2 compute resource]** (EC2 コンピューティングリソースに接続する) を選択します。

![EC2 インスタンスに接続する](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/ec2-set-up-connection-create.png)


**[Connect to an EC2 compute resource]** (EC2 コンピューティングリソースに接続する) を選択すると、RDS では次のオプションを自動的に設定します。**[Don't connect to an EC2 compute resource]** (EC2 コンピューティングリソースに接続しない) を選択して EC2 インスタンスとの接続をセットアップしない限り、これらの設定は変更できません。


****  

| コンソールオプション | 自動ログ記録 | 
| --- | --- | 
| **ネットワークの種類** | RDS はネットワークタイプを **IPv4** に設定します。EC2 インスタンスと DB インスタンス間の接続をセットアップする場合、デュアルスタックモードは現在サポートされていません。 | 
| **仮想プライベートクラウド (VPC)**。 | RDS は EC2 インスタンスに関連付けられている VPC に設定します。 | 
| **DB サブネットグループ** | RDS では、EC2 インスタンスと同じアベイラビリティーゾーンにプライベートサブネットを持つ DB サブネットグループが必要です。この要件を満たす DB サブネットグループが存在する場合、RDS は既存の DB サブネットグループを使用します。デフォルトでは、このオプションは [Automatic setup] (自動セットアップ) に設定されています。**[Automatic setup]** (自動セットアップ) を選択したとき、この要件を満たす DB サブネットグループがない場合、次のアクションが実行されます。RDS は 3 つのアベイラビリティーゾーンで 3 つの使用可能なプライベートサブネットを使用します。アベイラビリティーゾーンのうちの 1 つは EC2 インスタンスと同じです。プライベートサブネットがアベイラビリティーゾーンで使用できない場合、RDS はアベイラビリティーゾーンにプライベートサブネットを作成します。次に、RDS は DB サブネットグループを作成します。<br />プライベートサブネットが使用可能な場合、RDS はサブネットに関連付けられているルートテーブルを使用して、作成したサブネットをこのルートテーブルに追加します。プライベートサブネットが使用できない場合、RDS はインターネットゲートウェイにアクセスできないルートテーブルを作成し、作成したサブネットをルートテーブルに追加します。<br />RDS では、既存の DB サブネットグループを使用することもできます。既存の DB サブネットグループを使用する場合は、**[Choose existing]** (既存を選択) を選択します。 | 
| **パブリックアクセス** | RDS では **[No]** (いいえ) を選択して、DB インスタンスがパブリックアクセス可能にならないようにします。<br />セキュリティ上の理由から、データベースは非公開にし、インターネットからアクセスできないようにするのがベストプラクティスです。 | 
| **VPC セキュリティグループ (ファイアウォール)** | RDS では DB インスタンスに関連付けられている新しいセキュリティグループを作成します。セキュリティグループの名前は `rds-ec2-{{n}}` で、`{{n}}` は数字です。このセキュリティグループには、EC2 VPC セキュリティグループ (ファイアウォール) をソースとするインバウンドルールが含まれています。DB インスタンスに関連付けられているこのセキュリティグループにより、EC2 インスタンスが DB インスタンスにアクセスできるようになります。<br />また、RDS では EC2 インスタンス関連付けられている新しいセキュリティグループを作成します。セキュリティグループの名前は `ec2-rds-{{n}}` で、`{{n}}` は数字です。このセキュリティグループには、DB インスタンスの VPC セキュリティグループをソースとするアウトバウンドルールが含まれています。このセキュリティグループにより、EC2 インスタンスは DB インスタンスにトラフィックを送信できます。<br />**[Create new]** (新規作成) を選択して、新しいセキュリティグループの名前を入力すると、別のセキュリティグループを新規に追加できます。<br />既存のセキュリティグループを追加するには、**[Choose existing]** (既存を選択) を選択し、追加するセキュリティグループを選択します。 | 
| **アベイラビリティーゾーン (AZ** | **[Availability & durability]** (可用性と耐久性) (シングル AZ 配置) で、**[Single DB instance]** (シングル DB インスタンス) を選択した場合、RDS は EC2 インスタンスのアベイラビリティーゾーンを選択します。<br />**[Availability & durability]** (可用性と耐久性) (マルチ AZ DB インスタンス配置) で、**[Multi-AZ DB instance]** (マルチ AZ DB インスタンス) を選択した場合、RDS は、デプロイの 1 つの DB インスタンスに対して、EC2 インスタンスのアベイラビリティーゾーンを選択します。RDS は他の DB インスタンスに対し、異なるアベイラビリティーゾーンをランダムに選択します。プライマリ DB インスタンスまたはスタンバイレプリカのいずれかが、EC2 インスタンスと同じアベイラビリティーゾーンに作成されます。**[Multi-AZ DB instance]** (マルチ AZ DB インスタンス) を選択する場合、DB インスタンスと EC2 インスタンスが異なるアベイラビリティーゾーンにある場合は、アベイラビリティーゾーン間のコストが発生する可能性があります。 | 

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

DB インスタンスの作成後にこれらの設定を変更すると、EC2 インスタンスと DB インスタンス間の接続に影響する可能性があります。

#### ネットワークを手動で設定する
<a name="USER_CreateDBInstance.Prerequisites.VPC.Manual"></a>

同じ VPC 内の EC2 インスタンス以外のリソースから DB インスタンスに接続するには、ネットワーク接続を手動で設定できます。AWS マネジメントコンソール を使用して DB インスタンスを作成する場合は、お客様に代わって Amazon RDS に VPC を自動的に作成させることができます。または、既存の VPC を使用するか、 DB インスタンス用に新しい VPC を作成することができます。どの方法を使用する場合でも、VPC を RDS DB インスタンスで使用するには、少なくとも 2 つのアベイラビリティーゾーンのそれぞれに 1 つ以上のサブネットが必要です。

デフォルトでは、Amazon RDS は DB インスタンスとアベイラビリティーゾーンを自動的に作成します。特定のアベイラビリティーゾーンを選択するには、**[Availability & durability]** (可用性と耐久性) 設定を **[Single DB instance]** (単一の DB インスタンス) に変更します。これにより、**アベイラビリティーゾーン**の設定が表示され、VPC 内のアベイラビリティーゾーンの中から選択できます。ただし、マルチ AZ 配置を選択した場合、RDS はプライマリまたはライター DB インスタンスのアベイラビリティーゾーンを自動的に選択し、**アベイラビリティーゾーン**設定は表示されません。

場合によっては、デフォルト VPC を持っていない、または VPC を作成していない場合もあります。このような場合は、コンソールを使用して DB インスタンスを作成するときに、Amazon RDS に VPC を自動的に作成させることができます。それ以外の場合は以下の作業を行います。
+ DB インスタンスをデプロイする AWS リージョン で、少なくとも 2 つのアベイラビリティーゾーンのそれぞれに 1 つ以上のサブネットを持つ VPC を作成します。詳細については、「[VPC 内の DB インスタンスの使用](USER_VPC.WorkingWithRDSInstanceinaVPC.md#Overview.RDSVPC.Create)」および「[チュートリアル: DB インスタンスで使用する VPC を作成する (IPv4 専用)](CHAP_Tutorials.WebServerDB.CreateVPC.md)」を参照してください。
+ DB インスタンスへの接続を許可する VPC セキュリティグループを指定します。詳細については、「[セキュリティグループを作成して VPC 内の DB インスタンスへのアクセスを提供する](CHAP_SettingUp.md#CHAP_SettingUp.SecurityGroup)」および「[セキュリティグループによるアクセス制御](Overview.RDSSecurityGroups.md)」を参照してください。
+ DB インスタンスが使用できる VPC 内の最低 2 つのサブネットを定義する RDS DB サブネットグループを指定します。詳細については、「[DB サブネットグループの使用](USER_VPC.WorkingWithRDSInstanceinaVPC.md#USER_VPC.Subnets)」を参照してください。

DB インスタンスと同じ VPC にないリソースに接続する場合は、「[VPC の DB インスタンスにアクセスするシナリオ](USER_VPC.Scenarios.md)」の該当するシナリオを参照してください。

### 追加の前提条件
<a name="USER_CreateDBInstance.Prerequisites.Additional"></a>

DB インスタンスを作成する前に、以下の追加の前提条件を考慮してください。
+ AWS Identity and Access Management (IAM) 認証情報を使用して AWS に接続している場合は、AWS アカウントに特定の IAM ポリシーが必要です。これにより、Amazon RDS オペレーションを実行するために必要なアクセス権限が付与されます。詳細については、「[Amazon RDS での Identity and Access Management](UsingWithRDS.IAM.md)」を参照してください。

  IAM を使用して RDS コンソールにアクセスする場合は、IAM ユーザーの認証情報を使用して AWS マネジメントコンソール にサインインします。次に、Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) に移動します。
+ DB インスタンスの設定パラメータを調整するには、必要なパラメータ設定を持つ DB パラメータグループを指定します。DB パラメータグループの作成と変更の詳細については、「[Amazon RDS のパラメータグループ](USER_WorkingWithParamGroups.md)」を参照してください。
**重要**  
Amazon RDS for Db2 の BYOL モデルを使用している場合は、DB インスタンスを作成する前に、まず、IBM Site ID と IBM Customer ID を含むカスタムパラメータグループを作成する必要があります。詳細については、「[Db2 の Bring-Your-Own-License (BYOL)](db2-licensing.md#db2-licensing-options-byol)」を参照してください。
+ DB インスタンス用に指定する TCP/IP ポート番号を確認します。会社のファイアウォールによっては、RDS DB インスタンスのデフォルトポートへの接続がブロックされます。会社のファイアウォールがデフォルトのポートをブロックする場合は、お客様の DB インスタンス用に別のポートを選択します。Amazon RDS DB エンジンのデフォルトポートは次のとおりです。    
<a name="dbengineports"></a>[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.html)

  RDS for SQL Server の場合、ポート `1234, 1434, 3260, 3343, 3389, 47001,` および `49152-49156` は予約済みであり、DB インスタンスの作成時には使用できません。

## DB インスタンスの作成
<a name="USER_CreateDBInstance.Creating"></a>

AWS マネジメントコンソール、AWS CLI または RDS API を使用して、Amazon RDS DB インスタンスを作成することができます。

**注記**  
RDS for Db2 では、RDS for Db2 DB インスタンスを作成する前に、ライセンスモデルに必要な項目を設定することをお勧めします。詳細については、「[Amazon RDS for Db2 のライセンスオプション](db2-licensing.md)」を参照してください。

### コンソール
<a name="USER_CreateDBInstance.CON"></a>

AWS マネジメントコンソール で [**Easy Create (簡易作成)**] を有効または無効にして、DB インスタンス を作成できます。[**Easy create**] を有効にして、DB エンジンタイプ、DB インスタンスサイズ、および DB インスタンス識別子のみを指定します。[**Easy create**] では、他の設定オプションにデフォルト設定を使用します。[**Easy create**] が有効になっていない場合は、データベースの作成時に、可用性、セキュリティ、バックアップ、メンテナンスなどの設定オプションを追加指定します。

**注記**  
次の手順では、[**Standard Create (スタンダード作成)**] が有効になっており、[**Easy Create (簡易作成)**] は有効になっていません。この手順では、Microsoft SQL Server を例として使用します。  
[**Easy Create (簡易作成)**] を使用し、各エンジンのサンプル DB インスタンスを作成して接続する例については、[Amazon RDS のスタート方法](CHAP_GettingStarted.md) を参照してください。

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

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

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

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

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

1. **[エンジンタイプ]** として、IBM Db2、MariaDB、Microsoft SQL Server、MySQL、Oracle、または PostgreSQL を選択します。

   ここでは [**Microsoft SQL Server**] が示されています。  
![エンジンの選択](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/create-instance-sqlserver.png)

1. **[データベース管理タイプ]** では、Oracle または SQL Server を使用している場合は、**[Amazon RDS]** または **[Amazon RDS Custom]** を選択します。

   **[Amazon RDS]** がここに表示されています。RDS Custom については、「[Amazon RDS Custom](rds-custom.md)」を参照してください。

1. **[エディション]** では、Db2、Oracle、または SQL Server を使用している場合は、使用する DB エンジンのエディションを選択します。

   MySQL にはエディションのためのオプションが 1 つしかなく、MariaDB と PostgreSQL にはオプションがまったくありません。

1. [**バージョン**] で、エンジンのバージョンを選択します。

1. [**テンプレート**] で、ユースケースに合うテンプレートを選択します。[**本番稼働用**] を選択した場合、次のステップでは以下が既に選択されています。
   + [**マルチ AZ**] フェイルオーバーオプション
   + **プロビジョンド IOPS SSD (io1)**ストレージオプション
   + [**Enable deletion protection (削除保護の有効化)**] オプション

   本稼働環境では、これらの機能を使用することをお勧めします。
**注記**  
テンプレートの選択内容は、エディションごとに異なります。

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

   1. (オプション)**マスターユーザーネーム**の値を変更します。

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

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

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

1. (オプション) この DB インスタンスのコンピューティングリソースへの接続を設定します。

   DB インスタンスの作成中に、Amazon EC2 インスタンスと新しい DB インスタンス間の接続を設定できます。詳細については、「[EC2 インスタンスとの自動ネットワーク接続を設定する](#USER_CreateDBInstance.Prerequisites.VPC.Automatic)」を参照してください。

1. **[VPC セキュリティグループ (ファイアウォール)]** の **[接続]** セクションで **[新規作成]** を選択した場合、ローカルコンピュータの IP アドレスにデータベースへのアクセスを許可するインバウンドルールを使用して VPC セキュリティグループが作成されます。

1. 残りのセクションで、DB インスタンス設定を指定します。各設定の詳細については、「[DB インスタンスの設定](USER_CreateDBInstance.Settings.md)」を参照してください。

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

   自動生成されたパスワードを使用することを選択した場合は、[**データベース**] ページに [**認証情報の詳細の表示**] ボタンが表示されます。

   DB インスタンスのマスターユーザー名およびパスワードを表示するには、[**認証情報の詳細の表示**] を選択します。

   マスターユーザーとして DB インスタンスに接続するには、表示されているユーザー名およびパスワードを使用します。
**重要**  
マスターユーザーのパスワードを再度表示することはできません。記録していない場合は、変更する必要がある場合があります。DB インスタンスが有効になった後にマスターユーザーのパスワードを変更する必要がある場合は、そのように DB インスタンスを変更します。DB インスタンスの変更の詳細については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。

1. [**Databases (データベース)**] で、新しい DB インスタンスの名前を選択します。

   RDS コンソールに、新規の DB インスタンスの詳細が表示されます。DB インスタンスが作成されて使用できるようになるまで、DB インスタンスのステータスは [**作成中**] となります。ステータスが [**Available**] に変わると、DB インスタンスに接続できます。DB インスタンスクラスと割り当てられたストレージによっては、新しいインスタンスを使用できるようになるまで数分かかることがあります。  
![My DB インスタンスの詳細](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/SQLSvr-Launch05.png)

### AWS CLI
<a name="USER_CreateDBInstance.CLI"></a>



**注記**  
AWS Marketplace 経由の Db2 ライセンスを使用する場合は、まず AWS Marketplace のサブスクリプションを購入して、AWS マネジメントコンソール を使用して IBM に登録する必要があります。詳細については、「[Db2 Marketplace サブスクリプションの購入と IBM での登録](db2-licensing.md#db2-marketplace-subscribing-registering)」を参照してください。

AWS CLIを使用して DB インスタンスを作成するには、以下のパラメータを指定して [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) コマンドを呼び出します。
+ `--db-instance-identifier`
+ `--db-instance-class`
+ `--vpc-security-group-ids`
+ `--db-subnet-group`
+ `--engine`
+ `--master-username`
+ `--master-user-password`-または-`--manage-master-user-password`
+ `--allocated-storage`
+ `--backup-retention-period`

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

この例では、Microsoft SQL Server を使用しています。

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

```
 1. aws rds create-db-instance \
 2.     --engine {{sqlserver-se}} \
 3.     --db-instance-identifier {{mymsftsqlserver}} \
 4.     --allocated-storage {{250}} \
 5.     --db-instance-class {{db.t3.large}} \
 6.     --vpc-security-group-ids {{mysecuritygroup}} \
 7.     --db-subnet-group {{mydbsubnetgroup}} \
 8.     --master-username {{masterawsuser}} \
 9.     --manage-master-user-password \
10.     --backup-retention-period {{3}}
```
Windows の場合:  

```
 1. aws rds create-db-instance ^
 2.     --engine {{sqlserver-se}} ^
 3.     --db-instance-identifier {{mydbinstance}} ^
 4.     --allocated-storage {{250}} ^
 5.     --db-instance-class {{db.t3.large}} ^
 6.     --vpc-security-group-ids {{mysecuritygroup}} ^
 7.     --db-subnet-group {{mydbsubnetgroup}} ^
 8.     --master-username {{masterawsuser}} ^ 
 9.     --manage-master-user-password ^
10.     --backup-retention-period {{3}}
```
このコマンドでは、次のような出力が生成されます。  

```
1. DBINSTANCE  mydbinstance  db.t3.large  sqlserver-se  250  sa  creating  3  ****  n  10.50.2789
2. SECGROUP  default  active
3. PARAMGRP  default.sqlserver-se-14  in-sync
```

### RDS API
<a name="USER_CreateDBInstance.API"></a>

**注記**  
AWS Marketplace 経由の Db2 ライセンスを使用する場合は、まず AWS Marketplace のサブスクリプションを購入して、AWS マネジメントコンソール を使用して IBM に登録する必要があります。詳細については、「[Db2 Marketplace サブスクリプションの購入と IBM での登録](db2-licensing.md#db2-marketplace-subscribing-registering)」を参照してください。

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

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