メニュー
Amazon Relational Database Service
ユーザーガイド (API Version 2014-10-31)

VPC の DB インスタンスにアクセスするシナリオ

Amazon RDS は、VPC の DB インスタンスにアクセスするための以下のシナリオをサポートします。

VPC 内の DB インスタンスに同じ VPC 内の EC2 インスタンスがアクセスする

VPC 内の RDS インスタンスの一般的な用途は、同じ VPC 内の EC2 インスタンスで実行されるアプリケーションサーバーとデータを共有することです。これは、AWS Elastic Beanstalk を使用して同じ VPC 内で EC2 インスタンスおよび DB インスタンスを作成する場合に作成されたユーザーシナリオです。

以下の図に、このシナリオを示しています。

 VPC と EC2 のセキュリティグループのシナリオ

同じ VPC 内の EC2 インスタンスと DB インスタンス間のアクセスを管理する方法として最も簡単なのは、次の方法です。

  • DB インスタンスが存在する VPC セキュリティグループを作成します。このセキュリティグループは、DB インスタンスへのアクセスを制限するのに使用できます。たとえば、DB インスタンスを作成したときに割り当てたポートと、開発またはそのほかの目的で DB インスタンスにアクセスするのに使用する IP アドレスを使用して TCP へのアクセスを許可する、セキュリティグループのカスタムルールを作成できます。

  • EC2 インスタンス (ウェブサーバーとクライアント) が属する VPC セキュリティグループを作成します。このセキュリティグループは、必要に応じて VPC のルーティングテーブルを介してインターネットから EC2 インスタンスへのアクセスを許可できます。たとえば、ポート 22 経由で EC2 インスタンスへの TCP アクセスを許可するルールをこのセキュリティグループに設定できます。

  • EC2 インスタンス用に作成したセキュリティグループからの接続を許可する DB インスタンスのセキュリティグループで、カスタムルールを作成します。これは、セキュリティグループのメンバーに DB インスタンスへのアクセスを許可します。

このシナリオのパブリックとプライベートの両方のサブネットを使用する VPC を作成する方法のチュートリアルについては、「チュートリアル: Amazon RDS DB インスタンスで使用する Amazon VPC の作成」を参照してください。

To create a rule in a VPC security group that allows connections from another security group, do the following:

  1. Sign in to the AWS マネジメントコンソール and open the Amazon VPC console at https://console.aws.amazon.com/vpc.

  2. In the navigation pane, choose Security Groups.

  3. Select or create a security group that you want to allow access to members of another security group. In the scenario above, this would be the security group you will use for your DB instances. Choose Add Rule.

  4. From Type, choose All ICMP. In the Source box, start typing the ID of the security group; this provides you with a list of security groups. Select the security group with members that you want to have access to the resources protected by this security group. In the scenario above, this would be the security group you will use for your EC2 instance.

  5. Repeat the steps for the TCP protocol by creating a rule with All TCP as the Type and your security group in the Source box. If you intend to use the UDP protocol, create a rule with All UDP as the Type and your security group in the Source box.

  6. Create a custom TCP rule that permits access via the port you used when you created your DB instance, such as port 3306 for MySQL. Enter your security group or an IP address you will use in the Source box.

  7. Choose Save when you are done.

 他のセキュリティグループのルールにセキュリティグループを追加する

VPC 内の DB インスタンスに別の VPC 内の EC2 インスタンスがアクセスする

DB インスタンスがアクセスに使用している EC2 インスタンスとは異なる VPC にある場合、その DB インスタンスにアクセスする方法はいくつかあります。DB インスタンスと EC2 インスタンスが別の VPC にあっても同じリージョンにある場合は、VPC ピア接続を使用できます。DB インスタンスと EC2 インスタンスが異なるリージョンにある場合は、アクセスしている DB インスタンスのパブリック IP を使用する必要があります。

以下の図に、このシナリオを示しています。

 VPC 内の DB インスタンスに別の VPC 内の EC2 インスタンスがアクセスする

VPC ピア接続は、プライベート IP アドレスを使用して 2 つの VPC 間でトラフィックをルーティングすることを可能にするネットワーク接続です。どちらの VPC のインスタンスも、同じネットワーク内に存在しているかのように、相互に通信できます。VPC ピア接続は、自分の VPC 間、または、1 つのリージョン内の他の AWS アカウントにある VPC との間に作成できます。VPC ピア接続の詳細については、『VPC ドキュメント』を参照してください。

EC2 インスタンスとは別の VPC とリージョンにある DB インスタンスに接続する必要がある場合は、DB インスタンスのパブリック IP を使用します。DB インスタンスは、パブリックアクセスが許可されており、パブリックサブネット内にある必要があります。またサブネットにはインターネットゲートウェイが必要です。DB インスタンスの作成時に [VPC] オプションを [Create new VPC] に、[Publicly Accessible] オプションを [Yes] に設定すると、Amazon RDS では、DB インスタンスのパブリックサブネットは自動的に作成されます。

ClassicLink を使用することによって、VPC 内の Amazon RDS DB インスタンスと Amazon VPC 外の EC2 インスタンスの間で通信できます。Classic Link を使用すると、EC2 インスタンスのアプリケーションは、DB インスタンスの RDS エンドポイントを使用することによって、DB インスタンスに接続できます。ClassicLink は無料で利用できます。

以下の図に、このシナリオを示しています。

 VPC 内の DB インスタンスに VPC 外の EC2 インスタンスがアクセスする

この ClassicLink を使用すると、IP アドレス範囲を定義し、アクセスコントロールリスト (ACL) を用いてネットワークトラフィックを管理できる、論理的に分離されたデータベースに EC2 インスタンスを接続できます。VPC 内の DB インスタンスと通信するために、パブリック IP アドレスやトンネリングを使用する必要はありません。このような配置により、インスタンス間通信に対して高スループットで低レイテンシーの接続を提供します。

注記

DB インスタンスは、パブリックに対してオープンではない (つまり、パブリックにアクセスできるように設定できない) プライベートサブネットに存在している必要があります。

To enable ClassicLink between a DB instance in a VPC and an EC2 instance not in a VPC

  1. Sign in to the AWS マネジメントコンソール and open the Amazon VPC console at https://console.aws.amazon.com/vpc.

  2. In the navigation pane, choose Your VPCs.

  3. For VPC, choose the VPC used by the DB instance.

  4. For Actions menu, choose Enable ClassicLink. In the confirmation dialog box, choose Yes, Enable.

  5. On the EC2 console, select the EC2 instance you want to connect to the DB instance in the VPC.

  6. For Actions menu, choose ClassicLink, and then choose Link to VPC.

  7. On the Link to VPC page, choose the security group you want to use, and then choose Link to VPC.

インターネット経由でクライアントアプリケーションが VPC 内の DB インスタンスにアクセスする

クライアントアプリケーションからインターネットを通じて VPC 内の DB インスタンスにアクセスするには、1 つのパブリックサブネットを持つ VPC と、インターネットを介した通信を有効にするためのインターネットゲートウェイを構成する必要があります。

以下の図に、このシナリオを示しています。

 インターネット経由でクライアントアプリケーションが VPC 内の DB インスタンスにアクセスする

次の構成をお勧めします。

  • サイズ /16 (たとえば CIDR: 10.0.0.0/16) の VPC。このサイズでは 65,536 個のプライベート IP アドレスが提供されます。

  • サイズ /24 (たとえば CIDR: 10.0.0.0/24) のサブネット。このサイズでは 256 個のプライベート IP アドレスが提供されます。

  • インターネットと他の AWS 製品に VPC を接続するインターネットゲートウェイ。

  • サブネット範囲のプライベート IP アドレス (例: 10.0.0.6) と Elastic IP アドレス (例: 198.51.100.2) を持つインスタンス。前者はインスタンスが VPC 内の他のインスタンスと通信できるようにし、後者はインターネットからインスタンスにアクセスできるようにします。

  • サブネットのインスタンスが VPC 内の他のインスタンスと通信できるようにするルートテーブルエントリと、サブネットのインスタンスがインターネットで直接通信できるようにするルートテーブルエントリ。

詳細については、『VPC ドキュメント」のシナリオ 1 を参照してください。

VPC 外の DB インスタンスに VPC 内の EC2 インスタンスがアクセスする

VPC 内に EC2 インスタンスがあり、RDS DB インスタンスが VPC 内にない場合は、パブリックインターネットに接続できます。

以下の図に、このシナリオを示しています。

 VPC 外の DB インスタンスに VPC 内の EC2 インスタンスがアクセスする

注記

ClassicLink は、「VPC 内の DB インスタンスに VPC 外の EC2 インスタンスがアクセスする」で説明されているように、このシナリオではご利用いただけません。

パブリックインターネット経由で DB インスタンスと EC2 インスタンスに接続するには、次のようにします。

  • EC2 インスタンスが VPC のパブリックサブネット内にあることを確認します。

  • RDS DB インスタンスがパブリックとしてマークされていることを確認します。

  • ネットワーク ACL のメモはここにあります。ネットワーク ACL はサブネット全体に対するファイアウォールに似ています。したがって、そのサブネット内のすべてのインスタンスにネットワーク ACL ルールが適用されます。デフォルトでは、特にセキュリティの追加レイヤーとしてルールを追加しない限り、ネットワーク ACL はすべてのトラフィックを許可するので、通常は心配する必要はありません。一方でセキュリティグループは個々のインスタンスに関連付けられており、セキュリティグループのルールを配慮する必要があります。

  • RDS DB インスタンスの DB セキュリティグループに、必要な進入ルールを追加します。

    進入ルールでは、ネットワークポートと CIDR/IP の範囲を指定します。たとえば、MySQL RDS DB インスタンスに接続するポート 3306 と、CIDR/IP 範囲が 203.0.113.25/32 となるルールを追加します。詳細については、「IP 範囲からのネットワークアクセスを DB セキュリティグループに許可する」を参照してください。

注記

既存の DB インスタンスを VPC に移行することに関心をお持ちの場合は、AWS マネジメントコンソール を使用して簡単に移行できます。 詳細については. 「VPC 外の DB インスタンスを VPC に移行する」を参照してください。

VPC 外の DB インスタンスに VPC 外 EC2 インスタンスがアクセスする

DB インスタンスまたは EC2 インスタンスのアプリケーションのどちらも VPC 内に存在しない場合は、エンドポイントとポートを使用して DB インスタンスにアクセスできます。

以下の図に、このシナリオを示しています。

 VPC 外の DB インスタンスに VPC 外 EC2 インスタンスがアクセスする

インスタンスの作成時に指定したポートからのアクセスを許可するインスタンスの DB セキュリティグループを作成する必要があります。たとえば、Oracle DB インスタンスにアクセスする sqlplus を使用したの接続文字列と同様の接続文字列を使用します。

Copy
PROMPT>sqlplus 'mydbusr@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=<endpoint>) (PORT=<port number>))(CONNECT_DATA=(SID=<database name>)))'

詳細については、次のドキュメントを参照してください。

注記

既存の DB インスタンスを VPC に移行することに関心をお持ちの場合は、AWS マネジメントコンソール を使用して簡単に移行できます。 詳細については. 「VPC 外の DB インスタンスを VPC に移行する」を参照してください。

インターネット経由でクライアントアプリケーションが VPC 外の DB インスタンスにアクセスする

新しい Amazon RDS 顧客は、VPC 内の DB インスタンスのみを作成できます。ただし、クライアントアプリケーションからインターネットを経由して VPC 外の既存の Amazon RDS DB インスタンスに接続する必要がある可能性があります。

以下の図に、このシナリオを示しています。

 インターネット経由でクライアントアプリケーションが VPC 内に存在しない DB インスタンスにアクセスする

このシナリオでは、RDS DB インスタンスの DB セキュリティグループに、クライアントアプリケーションが接続するのに必要な進入ルールが含まれていることを確認します。進入ルールでは、ネットワークポートと CIDR/IP の範囲を指定します。たとえば、MySQL RDS DB インスタンスに接続するポート 3306 と、CIDR/IP 範囲が 203.0.113.25/32 となるルールを追加します。詳細については、「IP 範囲からのネットワークアクセスを DB セキュリティグループに許可する」を参照してください。

警告

ファイアウォールの内側にある DB インスタンスにアクセスする場合は、ネットワーク管理者と相談して、使用する IP アドレスを決定してください。

注記

既存の DB インスタンスを VPC に移行することに関心をお持ちの場合は、AWS マネジメントコンソール を使用して簡単に移行できます。 詳細については. 「VPC 外の DB インスタンスを VPC に移行する」を参照してください。