

# EC2 インスタンスと DB インスタンスを自動的に接続する
<a name="ec2-rds-connect"></a>

RDS コンソールを使用して、Amazon Elastic Compute Cloud (Amazon EC2) インスタンスと DB インスタンスとの接続を簡単に設定できます。多くの場合、DB インスタンスはプライベートサブネットにあり、EC2 インスタンスは VPC 内のパブリックサブネットにあります。EC2 インスタンスの SQL クライアントを使用して、DB インスタンス に接続できます。EC2 インスタンスは、プライベート DB インスタンス にアクセスするウェブサーバーやアプリケーションを実行することもできます。EC2 インスタンスとマルチ AZ DB クラスター間の接続をセットアップする方法については、「[EC2 インスタンスとマルチ AZ DB クラスターを自動的に接続する](multiaz-ec2-rds-connect.md)」を参照してください。

![\[DB インスタンス と EC2 インスタンスを自動接続します。\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/auto-connect-rds-ec2.png)


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

**Topics**
+ [EC2 インスタンスとの自動接続の概要](#ec2-rds-connect-overview)
+ [EC2 インスタンスと RDS データベースを自動的に接続する](#ec2-rds-connect-connecting)
+ [接続中のコンピューティングリソースを表示する](#ec2-rds-connect-viewing)
+ [特定の DB エンジンを実行している DB インスタンスに接続する](#ec2-rds-Connect-DBEngine)

## EC2 インスタンスとの自動接続の概要
<a name="ec2-rds-connect-overview"></a>

EC2 インスタンスと RDS データベース間の接続を設定すると、Amazon RDS は EC2 インスタンスと RDS データベース の VPC セキュリティグループを自動的に設定します。

EC2 インスタンスと RDS データベース を接続するための要件は次のとおりです。
+ EC2 インスタンスは RDS データベース と同じ VPC に存在する必要があります。

  同じ VPC に EC2 インスタンスが存在しない場合、コンソールには EC2 インスタンス作成用のリンクが表示されます。
+ 接続を設定するユーザーには、以下の Amazon EC2 オペレーションを実行するアクセス許可が必要です。
  + `ec2:AuthorizeSecurityGroupEgress` 
  + `ec2:AuthorizeSecurityGroupIngress` 
  + `ec2:CreateSecurityGroup` 
  + `ec2:DescribeInstances` 
  + `ec2:DescribeNetworkInterfaces` 
  + `ec2:DescribeSecurityGroups` 
  + `ec2:ModifyNetworkInterfaceAttribute` 
  + `ec2:RevokeSecurityGroupEgress` 

DB インスタンスと EC2 インスタンスが異なるアベイラビリティーゾーンにある場合、アベイラビリティーゾーン間のコストが発生する可能性があります。

EC2 インスタンスへの接続を設定すると、次の表で示されているように、Amazon RDS は、RDS データベースと EC2 インスタンスに関連付けられているセキュリティグループの現在の設定に基づいて動作します。


****  

| 現在の RDS セキュリティグループの設定 | 現在の EC2 セキュリティグループの設定 | RDS アクション | 
| --- | --- | --- | 
|  RDS データベース に関連付けられたセキュリティグループには、パターン `rds-ec2-n` (`n` は数字) に一致する名前のセキュリティグループが 1 つまたは複数あります。パターンに一致するセキュリティグループは変更されていません。このセキュリティグループには、EC2 インスタンスの VPC セキュリティグループをソースとするインバウンドルールが 1 つのみ存在します。  |  パターン `ec2-rds-n` (`n` は数字) に一致する名前の EC2 インスタンスに関連付けられたセキュリティグループが 1 つまたは複数存在します。パターンに一致するセキュリティグループは変更されていません。このセキュリティグループには、RDS データベース の VPC セキュリティグループをソースとするアウトバウンドルールが 1 つのみ存在します。  |  RDS は何のアクションも実行しません。 EC2 インスタンスと RDS データベース との接続は、既に自動で設定されています。EC2 インスタンスと RDS データベースの間には既に接続が存在するため、セキュリティグループは変更されません。  | 
|  次の条件のいずれかが適用されます。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/ec2-rds-connect.html)  |  次の条件のいずれかが適用されます。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/ec2-rds-connect.html)  |  [RDS action: create new security groups](#rds-action-create-new-security-groups)  | 
|  RDS データベース に関連付けられたセキュリティグループには、パターン `rds-ec2-n` に一致する名前のセキュリティグループが 1 つまたは複数あります。パターンに一致するセキュリティグループは変更されていません。このセキュリティグループには、EC2 インスタンスの VPC セキュリティグループをソースとするインバウンドルールが 1 つのみ存在します。  |  EC2 インスタンスに関連付けられた、パターン `ec2-rds-n` に一致する名前のセキュリティグループが 1 つまたは複数存在します。ただし、Amazon RDS は、これらのセキュリティグループのいずれも、RDS データベースとの接続には使用できません。Amazon RDS は、RDS データベース の VPC セキュリティグループをソースとするアウトバウンドルールが 1 つもないセキュリティグループを使用できません。また、Amazon RDS は、変更されたセキュリティグループを使用できません。  |  [RDS action: create new security groups](#rds-action-create-new-security-groups)  | 
|  RDS データベース に関連付けられたセキュリティグループには、パターン `rds-ec2-n` に一致する名前のセキュリティグループが 1 つまたは複数あります。パターンに一致するセキュリティグループは変更されていません。このセキュリティグループには、EC2 インスタンスの VPC セキュリティグループをソースとするインバウンドルールが 1 つのみ存在します。  |  接続に有効な EC2 セキュリティグループは存在しますが、EC2 インスタンスに関連付けられていません。このセキュリティグループには、パターン `ec2-rds-n` に一致する名前が付いています。これは変更されていません。また、これには RDS データベース の VPC セキュリティグループをソースとするアウトバウンドルールが 1 つのみ存在します。  |  [RDS action: associate EC2 security group](#rds-action-associate-ec2-security-group)  | 
|  次の条件のいずれかが適用されます。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/ec2-rds-connect.html)  |  EC2 インスタンスに関連付けられた、パターン `ec2-rds-n` に一致する名前のセキュリティグループが 1 つまたは複数存在します。パターンに一致するセキュリティグループは変更されていません。このセキュリティグループには、RDS データベース の VPC セキュリティグループをソースとするアウトバウンドルールが 1 つのみ存在します。  |  [RDS action: create new security groups](#rds-action-create-new-security-groups)  | 

**RDS アクション: 新しいセキュリティグループを作成する**  
Amazon RDS は以下のアクションを実行します。
+ パターン `rds-ec2-n` に一致する新しいセキュリティグループを作成します。このセキュリティグループには、EC2 インスタンスの VPC セキュリティグループをソースとするインバウンドルールが存在します。このセキュリティグループでは、RDS データベース に関連付けられており、EC2 インスタンスが RDS データベースへのアクセスを許可します。
+ パターン `ec2-rds-n` に一致する新しいセキュリティグループを作成します。このセキュリティグループには、RDS データベースの VPC セキュリティグループをターゲットとするアウトバウンドルールが存在します。このセキュリティグループには EC2 インスタンスに関連付けられ、EC2 インスタンスが RDS データベース にトラフィックの送信を許可します。

**RDS アクション: EC2 セキュリティグループを関連付ける**  
Amazon RDS は、有効な既存の EC2 セキュリティグループを EC2 インスタンスに関連付けます。このセキュリティグループにより、EC2 インスタンスは RDS データベース にトラフィックの送信を許可します。

## EC2 インスタンスと RDS データベースを自動的に接続する
<a name="ec2-rds-connect-connecting"></a>

EC2 インスタンスと RDS データベース との接続を設定する前に、「[EC2 インスタンスとの自動接続の概要](#ec2-rds-connect-overview)」で説明されている要件を満たしていることを確認してください。

接続の設定後にこれらのセキュリティグループを変更すると、EC2 インスタンスと RDS データベース との接続に影響する可能性があります。

**注記**  
AWS マネジメントコンソール を使用することでのみ、EC2 インスタンスと RDS データベース との接続を自動で設定できます。AWS CLI または RDS API を使用して自動で接続を設定することはできません。

**EC2 インスタンスと RDS データベース を自動的に接続するには**

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

1. ナビゲーションペインで、**[Databases]** (データベース) を選択し、RDS データベース のリンクを選択します。

1. **[アクション]** から **[EC2 接続の設定]** を選択します。

   **[Set up EC2 connection]** (EC2 接続の設定) ページが表示されます。

1. **[Set up EC2 connection]** (EC2 接続の設定) ページで、[EC2 instance] (EC2 インスタンス) を選択します。  
![\[EC2 接続の設定ページ。\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/auto-connect-rds-ec2-set-up.png)

   同じ VPC に EC2 インスタンスが存在しない場合は、**[Create EC2 instance]** (EC2 インスタンスの作成) を選択します。この場合、新しい EC2 インスタンスが RDS データベース と同じ VPC にあることを確認してください。

1. [**続行**] をクリックしてください。

   **[Review and confirm]** (確認と確定) ページが表示されます。  
![\[EC2 接続の確認と確定ページ。\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/auto-connect-rds-ec2-confirm.png)

1. **[Review and confirm]** (確認と確定) ページで、EC2 インスタンスとの接続を設定するために RDS が行う変更を確認します。

   変更が正しければ、**[確認とセットアップ]** を選択します。

   変更内容が正しくない場合は、**[Previous]** (前へ) または **[Cancel]** (キャンセル) を選択します。

## 接続中のコンピューティングリソースを表示する
<a name="ec2-rds-connect-viewing"></a>

AWS マネジメントコンソール を使用して、RDS データベースに接続されているコンピューティングリソースを表示できます。表示されるリソースには、自動的に設定されたコンピューティングリソース接続が含まれます。コンピューティングリソースとの接続は、次の方法で自動的に設定できます。
+ データベースを作成するときに、コンピューティングリソースを選択できます。

  詳細については、「[Amazon RDS DB インスタンスの作成](USER_CreateDBInstance.md)」および「[Amazon RDS 用のマルチ AZ DB クラスターの作成](create-multi-az-db-cluster.md)」を参照してください。
+ 既存のデータベースとコンピューティングリソース間の接続を設定できます。

  詳細については、「[EC2 インスタンスと RDS データベースを自動的に接続する](#ec2-rds-connect-connecting)」を参照してください。

コンピューティングリソースリストには、手動でデータベースに接続されたものは含まれていません。例えば、データベースに関連付けられた VPC セキュリティグループにルールを追加することで、コンピューティングリソースがデータベースに手動でアクセスできるようになります。

コンピューティングリソースをリスト化するには、次の条件を満たしている必要があります。
+ コンピューティングリソースに関連付けられているセキュリティグループの名前がパターン `ec2-rds-n` (`n` は数字) と一致する。
+ コンピューティングリソースに関連付けられたセキュリティグループには、ポート範囲が RDS データベースが使用するポートに設定されたアウトバウンドルールがあります。
+ コンピューティングリソースに関連付けられたセキュリティグループには、ソースが RDS データベース に関連付けられたセキュリティグループに設定されたアウトバウンドルールがある。
+ RDS データベースに関連付けられたセキュリティグループの名前が、パターン `rds-ec2-n` (`n` は数字) に一致する。
+ RDS データベースに関連付けられたセキュリティグループには、ポート範囲が RDS データベースが使用するポートに設定されたインバウンドルールがあります。
+ RDS データベース に関連付けられたセキュリティグループには、ソースがコンピューティングリソースに関連付けられたセキュリティグループに設定されたインバウンドルールがある。

**RDS データベースに接続されているコンピューティングリソースを表示するには**

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

1. ナビゲーションペインで、**[Databases]** (データベース) を選択し、RDS データベース の名前を選択します。

1. **[Connectivity & security]** (接続とセキュリティ) タブの **[Connected compute resources]** (接続されたコンピューティングリソース) にコンピューティングリソースが表示されます。  
![\[接続中のコンピューティングリソース。\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/ec2-connected-compute-resources.png)

## 特定の DB エンジンを実行している DB インスタンスに接続する
<a name="ec2-rds-Connect-DBEngine"></a>

特定の DB エンジンを実行している DB インスタンスへの接続については、DB エンジンの指示に従ってください。
+ [MariaDB DB インスタンスへの接続](USER_ConnectToMariaDBInstance.md)
+ [SQL Server DB インスタンスへの接続](USER_ConnectToMicrosoftSQLServerInstance.md)
+ [MySQL DB インスタンスへの接続](USER_ConnectToInstance.md)
+ [Oracle DB インスタンスへの接続](USER_ConnectToOracleInstance.md)
+ [PostgreSQL データベースエンジンを実行する DB インスタンスへの接続](USER_ConnectToPostgreSQLInstance.md)