VPC 内の DB インスタンスの使用 - Amazon Relational Database Service

VPC 内の DB インスタンスの使用

DB インスタンスは仮想プライベートクラウド (VPC) 内にあります。VPC は、AWS クラウドの他の仮想ネットワークから論理的に切り離された仮想ネットワークです。Amazon VPC では、Amazon RDS DB インスタンスや Amazon EC2 インスタンスなど、AWS リソースを VPC で起動できます。VPC は、自分のアカウントに属するデフォルト VPC を使用するか、独自に作成することもできます。すべての VPC は、AWS アカウントに関連付けられます。

デフォルト VPC には、VPC 内でリソースを隔離するために使用できる 3 つのサブネットがあります。デフォルト VPC には、VPC 外から VPC 内のリソースへのアクセスを可能にするインターネットゲートウェイもあります。

VPC 内と VPC 外Amazon Aurora DB クラスターが関係するシナリオのリストについては、「VPC の DB インスタンスにアクセスするシナリオ」を参照してください。

以下のチュートリアルでは、一般的な Amazon RDS 状況で使用できる VPC の作成方法を学ぶことができます。

VPC 内の DB インスタンスの使用

次に、VPC の DB インスタンスの使用に関するヒントを紹介します。

  • VPC には少なくとも 2 つのサブネットが必要です。これらのサブネットは、DB インスタンスをデプロイする AWS リージョン 内の 2 つの異なるアベイラビリティーゾーンに存在している必要があります。サブネットは、VPC の IP アドレス範囲の指定可能なセグメントで、セキュリティや運用上のニーズに基づいて DB インスタンスをグループ化することができます。

    マルチ AZ 配置の場合、AWS リージョン 内の 2 つ以上のアベイラビリティーゾーンにサブネットを定義すると、Amazon RDS は必要に応じて別のアベイラビリティーゾーンに新しいスタンバイを作成できるようになります。シングル AZ 配置の場合も、どこかの時点でマルチ AZ 配置に変換する場合に備えてこのように定義してください。

    注記

    ローカルゾーンの DB サブネットグループは、サブネットを 1 つだけ持つことができます。

  • VPC の DB インスタンスをパブリックにアクセス可能にする場合は、VPC 属性の DNS hostnamesDNS resolution を有効にしてください。

  • ご利用の VPC では、DB サブネットグループを作成する必要があります。DB サブネットグループを作成するには、作成したサブネットを指定します。Amazon RDS は、サブネットとそのサブネットグループ内の IP アドレスを選択し、DB インスタンスに関連付けます。DB インスタンスは、そのサブネットを含むアベイラビリティーゾーンを使用します。

  • VPC には、DB インスタンスへのアクセスを許可する VPC セキュリティグループが必要です。

    詳細については、「VPC の DB インスタンスにアクセスするシナリオ」を参照してください。

  • 各サブネットの CIDR ブロックは、フェイルオーバーやコンピュートスケーリングの見積もりなどのメンテナンス作業中に Amazon RDS が使用する予備の IP アドレスに十分対応できる大きさが必要です。例えば、通常は 10.0.0.0/24 や 10.0.1.0/24 などの範囲で十分な大きさです。

  • VPC では、インスタンスのテナント属性が default または dedicated のいずれかに設定されます。デフォルト VPC では、インスタンスのテナント属性はすべて default に設定され、DB インスタンスのすべてのクラスがサポートされます。

    インスタンステナンシーを dedicated に設定した専有 VPC に DB インスタンスを保持する場合は、その DB インスタンスの DB インスタンスクラスは、Amazon EC2 で承認された 専有インスタンスタイプのいずれかである必要があります。例えば、r5.large Rc2 ハードウェア専有インスタンスは、db.r5.large DB インスタンスクラスに対応します。VPC のインスタンステナンシーについては、Amazon Elastic Compute Cloud ユーザーガイドの「ハードウェア専有インスタンス」を参照してください。

    ハードウェア専有インスタンスに対応するインスタンスタイプの詳細については、Amazon EC2 の料金ページで「Amazon EC2 のハードウェア専有インスタンス」を参照してください。

    注記

    インスタンスのテナンシー属性を DB インスタンス専有に設定しても、DB インスタンスが専有ホストで実行されることは保証されません。

  • オプショングループを DB インスタンスに割り当てると、その DB インスタンスの VPC に関連付けられます。このリンクは、別の VPC 内に DB インスタンスを復元しようとしても、その DB インスタンスに割り当てられているオプショングループは使用できないことを意味します。

  • 別の VPC 内に DB インスタンスを復元する場合は、デフォルトのオプショングループを DB インスタンスに割り当てるか、その VPC にリンクされているオプショングループを割り当てるか、新しいオプショングループを作成して DB インスタンスに割り当てる必要があります。Oracle TDE などの永続または固定オプションを使用する場合は、別の VPC 内に DB インスタンスを復元するときに、永続または固定オプションを含む新しいオプショングループを作成する必要があります。

DB サブネットグループの使用

サブネットは、VPC の IP アドレス範囲のセグメントで、セキュリティや運用上のニーズに基づいてリソースをグループ化するために指定します。DB サブネットグループは VPC に作成するサブネット (通常はプライベート) のコレクションで、DB インスタンス用に指定します。DB サブネットグループを使用することにより、AWS CLI または RDS API を使用して DB インスタンスを作成するときに、特定の VPC を指定することができます。コンソールを使用する場合は、使用する VPC とサブネットグループを選択できます。

各 DB サブネットグループには、特定の AWS リージョン 内の少なくとも 2 つのアベイラビリティーゾーンにサブネットが必要です。VPC に DB インスタンスを作成するときに、DB サブネットグループを選択する必要があります。DB サブネットグループから、Amazon RDS は DB インスタンスに関連付けるサブネットとそのサブネット内の IP アドレスを選択します。DB は、そのサブネットを含むアベイラビリティーゾーンを使用します。

マルチ AZ 配置のプライマリ DB インスタンスに障害が発生した場合、Amazon RDS は対応するスタンバイを昇格させ、その後、他のアベイラビリティーゾーンの 1 つのサブネットの IP アドレスを使用して、新しいスタンバイを作成できます。

DB サブネットグループのサブネットはパブリックまたはプライベートのいずれかです。サブネットは、ネットワークアクセス制御リスト (ネットワーク ACL) とルーティングテーブルに定義した設定に応じて、パブリックまたはプライベートになります。DB インスタンスをパブリックにアクセス可能にするには、その DB サブネットグループ内のすべてのサブネットがパブリックである必要があります。パブリックにアクセスできる DB インスタンスに関連付けられているサブネットがパブリックからプライベートに変更された場合、DB インスタンスの可用性に影響する可能性があります。

デュアルスタックモードをサポートする DB サブネットグループを作成するには、DB サブネットグループに追加する各サブネットに Internet Protocol version 6 (IPv6) CIDR ブロックが関連付けられていることを確認してください。詳細については、Amazon RDS IP アドレス指定Amazon VPC ユーザーガイドの「IPv6 に移行する」を参照してください。

注記

ローカルゾーンの DB サブネットグループは、サブネットを 1 つだけ持つことができます。

Amazon RDS は、VPC に DB インスタンスを作成すると、DB サブネットグループから選択した IP アドレスを使用して、DB インスタンスにネットワークインターフェイスを割り当てます。ただし、DB インスタンスに接続するときにはドメインネームシステム (DNS) 名を使用することを強くお勧めします。基になる IP アドレスはフェイルオーバー中に変わるため、ドメインネームシステム (DNS) 名を使用することを強くお勧めします。

注記

VPC で実行する DB インスタンスごとに、Amazon RDS による復旧アクション用として、DB サブネットグループのサブネットごとに最低 1 つのアドレスを確保してください。

共有サブネット

DB インスタンスは共有 VPC に作成できます。

共有 VPC を使用する際に留意すべき点がいくつかあります。

  • DB インスタンスを共有 VPC サブネットから非共有 VPC サブネットに、またはその逆に移動できます。

  • 共有 VPC の参加者は、DB インスタンスを作成できるように、VPC にセキュリティグループを作成する必要があります。

  • 共有 VPC の所有者と参加者は、SQL クエリを使用してデータベースにアクセスできます。ただし、リソースに対して任意の API 呼び出しを行うことができるのは、リソースの作成者だけです。

Amazon RDS IP アドレス指定

IP アドレスは、VPC のリソースの相互通信とインターネット上のリソースとの通信を有効にします。Amazon RDS は、IPv4 と IPv6 の両方のアドレス指定プロトコルをサポートしています。デフォルトでは、Amazon RDS と Amazon VPC は IPv4 アドレス指定プロトコルを使用します。この動作をオフにすることはできません。VPC の作成時には、IPv4 CIDR ブロック (プライベート IPv4 アドレスの範囲) を指定する必要があります。必要に応じて、IPv6 CIDR ブロックを VPC とサブネットに割り当て、そのブロックからサブネットの DB インスタンスに IPv6 アドレスを割り当てることができます。

IPv6 プロトコルのサポートにより、サポートされる IP アドレスの数が増えます。IPv6 プロトコルを使用することで、インターネットの今後の成長に十分なアドレスを確保できます。新規および既存の RDS リソースは、VPC 内で IPv4 アドレスと IPv6 アドレスを使用できます。アプリケーションの異なる部分で使用される 2 つのプロトコル間のネットワークトラフィックの設定、保護、および変換を行うと、運用上のオーバーヘッドが発生する可能性があります。Amazon RDS リソースについては IPv6 プロトコルを標準化して、ネットワーク構成を簡素化できます。

IPv4 アドレス

VPC を作成するときには、その VPC の IPv4 アドレスの範囲を CIDR ブロックの形式で指定する必要があります (10.0.0.0/16 など)。DB サブネットグループは、DB インスタンスが使用できる、この CIDR ブロック内の IP アドレスの範囲を定義します。これらの IP アドレスはプライベートまたはパブリックです。

プライベート IPv4 アドレスは、インターネットから到達できない IP アドレスです。DB インスタンスと同じ VPC 内の他のリソース (Amazon EC2 インスタンスなど) との通信には、プライベート IPv4 アドレスを使用できます。各 DB インスタンスには、VPC 内の通信用のプライベート IP アドレスがあります。

パブリック IP アドレスは、インターネットから到達可能な IPv4 アドレスです。DB インスタンスとインターネット上のリソース (SQL クライアントなど) との通信には、パブリックアドレスを使用できます。DB インスタンス にパブリック IP アドレスが割り当てられるかどうかは、ユーザーが制御します。

一般的な Amazon RDS 状況で使用できるプライベート IPv4 アドレスのみで VPC を作成する方法のチュートリアルについては、「チュートリアル: DB インスタンスで使用する VPC を作成する (IPv4 専用)」を参照してください。

IPv6 アドレス

オプションで IPv6 CIDR ブロックを VPC およびサブネットと関連付けて、そのブロックから VPC 内のリソースに IPv6 アドレスを割り当てることができます。各 IPv6 アドレスは、グローバルに一意です。

VPC の IPv6 CIDR ブロックは、Amazon の IPv6 アドレスのプールから自動的に割り当てられます。範囲を自分で選択することはできません。

IPv6 アドレスに接続するときには、以下の条件が満たされていることを確認してください。

  • クライアントは、クライアントから IPv6 経由でのデータベーストラフィックが許可されるように構成されています。

  • DB インスタンスによって使用される RDS セキュリティグループは、クライアントからデータベースへの IPv6 経由のトラフィックが許可されるように、正しく構成されています。

  • クライアントのオペレーティングシステムスタックは IPv6 アドレス上のトラフィックを許可し、オペレーティングシステムドライバーとライブラリは、正しいデフォルトの DB インスタンスエンドポイント (IPv4 または IPv6) を選択するように構成されています。

IPv6 の詳細については、Amazon VPC ユーザーガイドの「IP アドレス指定」を参照してください。

デュアルスタックモード

DB インスタンスが IPv4 と IPv6 の両方のアドレス指定プロトコルで通信できるときには、デュアルスタックモードで実行しています。したがって、リソースは DB インスタンスと IPv4、IPv6、またはその両方で通信できます。RDS は、プライベートデュアルスタックモード DB インスタンスの IPv6 エンドポイントについてインターネットゲートウェイアクセスを無効にします。IPv6 エンドポイントがプライベートであり、VPC 内からのみアクセスできるようにします。

一般的な Amazon RDS 状況で使用できる IPv4 と IPv6 の両方のアドレスを持つ VPC を作成する方法のチュートリアルについては、「チュートリアル: DB インスタンス用の VPC を作成する (デュアルスタックモード)」を参照してください。

デュアルスタックモードと DB サブネットグループ

デュアルスタックモードを使用するには、DB インスタンスに関連付ける DB サブネットグループ内の各サブネットに IPv6 CIDR ブロックが関連付けられていることを確認してください。新しい DB サブネットグループを作成するか、既存の DB サブネットグループを変更して、この要件を満たすことができます。DB インスタンスがデュアルスタックモードになった後も、クライアントは通常どおり接続できます。クライアントセキュリティファイアウォールと RDS DB インスタンスのセキュリティグループが、IPv6 経由のトラフィックを許可するように正しく設定されていることを確認します。接続するために、クライアントは DB インスタンスのエンドポイントを使用します。クライアントアプリケーションは、データベースへの接続時に優先するプロトコルを指定できます。デュアルスタックモードでは、DB インスタンスは、クライアントの優先ネットワークプロトコル (IPv4 または IPv6) を検出し、そのプロトコルを使用して接続します。

サブネットの削除または CIDR の関連付け解除により、DB サブネットグループがデュアルスタックモードをサポートしなくなった場合、DB サブネットグループに関連付けられている DB インスタンスに対して互換性のないネットワーク状態が発生するリスクがあります。また、新しいデュアルスタックモードの DB インスタンスの作成時に DB サブネットグループを使用することはできません。

AWS Management Console を使用して DB サブネットグループがデュアルスタックモードをサポートしているかどうかを判断するには、DB サブネットグループの詳細ページで [Network type] (ネットワークタイプ) を確認します。DB サブネットグループが AWS CLI を使用してデュアルスタックモードをサポートしているかどうかを判断するには、describe-db-subnet-groups コマンドを実行して、出力の SupportedNetworkTypes を確認します。

リードレプリカは独立した DB インスタンスとして扱われ、プライマリ DB インスタンスとは異なるネットワークタイプを持つことができます。リードレプリカのプライマリ DB インスタンスのネットワークタイプを変更しても、リードレプリカは影響を受けません。DB インスタンスを復元するときには、サポートされている任意のネットワークタイプに復元できます。

デュアルスタックモードの DB インスタンスの操作

DB インスタンスを作成または変更する場合は、デュアルスタックモードを指定して、リソースが DB インスタンスと IPv4、IPv6、またはその両方で通信することを許可できます。

AWS Management Console を使用して DB インスタンスを変更するときには、[Network type] (ネットワークタイプ) セクションでデュアルスタックモードを指定できます。次の画像は、コンソールの [Network type] (ネットワークの種類) セクションを示しています。

[デュアルスタックモード] が選択されているコンソールの [ネットワークタイプ] セクション。

AWS CLI を使用して DB インスタンスを作成または変更するときには、--network-type オプションを DUAL に設定して、デュアルスタックモードを使用します。RDS API を使用して DB インスタンスを作成または変更するときには、NetworkType パラメータを DUAL に設定して、デュアルスタックモードを使用します。DB インスタンスのネットワークタイプを変更すると、ダウンタイムが発生する可能性があります。指定された DB エンジンバージョンまたは DB サブネットグループでデュアルスタックモードがサポートされていない場合は、NetworkTypeNotSupported エラーが返されます。

DB インスタンスの作成の詳細については、「Amazon RDS DB インスタンスの作成」を参照してください。DB インスタンスの変更の詳細については、「Amazon RDS DB インスタンスを変更する」を参照してください。

コンソールを使用して DB インスタンスがデュアルスタックモードであるかどうかを判断するには、DB インスタンス[Connectivity & security] (接続性とセキュリティ) タブの [Network type] (ネットワークの種類) を確認します。

IPv4 専用 DB インスタンスをデュアルスタックモードを使用するように変更する

IPv4 専用 DB インスタンスをデュアルスタックモードを使用するように変更できます。このためには、DB インスタンスのネットワークの種類を変更します。変更によってダウンタイムが発生する可能性があります。

メンテナンスウィンドウ中に Amazon RDS インスタンスのネットワークタイプを変更することをお勧めします。現在、新しいインスタンスのネットワークタイプをデュアルスタックモードに設定することはサポートされていません。ネットワークタイプは、modify-db-instance コマンドを使用して手動で設定できます。

DB インスタンスをデュアルスタックモードを使用するように変更する前に、その DB サブネットグループがデュアルスタックモードをサポートしていることを確認してください。DB インスタンスに関連付けられた DB サブネットグループがデュアルスタックモードをサポートしていない場合は、DB インスタンスを変更するときに、それをサポートする別の DB サブネットグループを指定します。DB インスタンスの DB サブネットグループを変更すると、ダウンタイムが発生する可能性があります。

DB インスタンスをデュアルスタックモードを使用するように変更する前に DB インスタンスの DB サブネットグループを変更する場合は、変更の前後に DB サブネットグループが DB インスタンスに対して有効であることを確認してください。

RDS for PostgreSQL、RDS for MySQL、RDS for Oracle、RDS for MariaDB のシングル AZ インスタンスの場合、ネットワークをデュアルスタックに変更するには、--network-type パラメータに値 DUAL のみを設定して modify-db-instance コマンドを実行することをお勧めします。同じ API コールで --network-type パラメータと一緒に他のパラメータを追加すると、ダウンタイムが発生する可能性があります。複数のパラメータを変更する場合は、他のパラメータを使用して別の modify-db-instance リクエストを送信する前に、ネットワークタイプの変更が正常に完了していることを確認してください。

RDS for PostgreSQL、RDS for MySQL、RDS for Oracle、RDS for MariaDB のマルチ AZ インスタンスのネットワークタイプを変更する場合、--network-type パラメータのみを使用するか、modify-db-instance コマンドで複数のパラメータを組み合わせると、短いダウンタイムが発生し、フェイルオーバーがトリガーされます。

RDS for SQL Server シングル AZ インスタンスまたはマルチ AZ インスタンスでネットワークタイプを変更する場合、--network-type パラメータのみを使用するか、modify-db-instance コマンドで複数のパラメータを組み合わせると、ダウンタイムが発生します。ネットワークタイプを変更すると、SQL Server マルチ AZ インスタンスでフェイルオーバーが発生します。

変更後に DB インスタンスに接続できない場合は、選択したネットワーク (IPv4 または IPv6) でデータベースへのトラフィックを許可するように、クライアントとデータベースのセキュリティファイアウォールとルートテーブルが正確に設定されていることを確認してください。IPv6 アドレスを使用して接続するには、オペレーティングシステムのパラメータ、ライブラリ、またはドライバーを変更しなければならない場合もあります。

デュアルスタックモードを使用するように DB インスタンスを変更すると、シングル AZ 配置からマルチ AZ 配置、またはマルチ AZ 配置からシングル AZ 配置への変更を保留することはできません。

IPv4 専用の DB インスタンスをデュアルスタックモードを使用するように変更するには
  1. DB サブネットグループをデュアルスタックモードをサポートするように変更するか、デュアルスタックモードをサポートする DB サブネットグループを作成します。

    1. IPv6 CIDR ブロックと VPC の関連付け

      詳細については、「Amazon VPC ユーザーガイド」の「IPv6 CIDR ブロックを VPC に追加する」を参照してください。

    2. IPv6 CIDR ブロックを DB サブネットグループ内のすべてのサブネットにアタッチします。

      詳細については、「Amazon VPC ユーザーガイド」の「IPv6 CIDR ブロックをサブネットに追加する」を参照してください。

    3. DB サブネットグループがデュアルスタックモードをサポートしていることを確認します。

      AWS Management Console を使用している場合は、DB サブネットグループを選択し、[Supported network types] (サポートされているネットワークタイプ) の値が [Dual, IPv4] (デュアル、IPv4) であることを確認します。

      AWS CLI を使用している場合は、describe-db-subnet-groups コマンドを実行して、DB インスタンスの SupportedNetworkType の値が Dual, IPv4 であることを確認します。

  2. DB インスタンスに関連付けられたセキュリティグループを、データベースへの IPv6 接続を許可するように変更するか、IPv6 接続を許可する新しいセキュリティグループを作成します。

    手順については、Amazon VPC ユーザーガイドの「セキュリティグループのルール」を参照してください。

  3. DB インスタンスを変更して、デュアルスタックモードをサポートします。そのためには、ネットワークの種類デュアルスタックモードに設定します。

    コンソールを使用している場合、以下の設定が正しいことを確認します。

    • [Network type] (ネットワークタイプ) – [Dual-stack mode] (デュアルスタックモード)

      [デュアルスタックモード] が選択されているコンソールの [ネットワークタイプ] セクション。
    • [DB Subnet group] (DB サブネットグループ) — 前のステップで設定した DB サブネットグループ

    • [Security group] (セキュリティグループ) - 前のステップで設定したセキュリティ

    AWS CLI を使用している場合、以下の設定が正しいことを確認します。

    • --network-typedual

    • --db-subnet-group-name - 前のステップで設定した DB サブネットグループ

    • --vpc-security-group-ids - 前のステップで設定した VPC セキュリティグループ

    例:

    aws rds modify-db-instance --db-instance-identifier my-instance --network-type "DUAL"
  4. DB インスタンスがデュアルスタックモードをサポートしていることを確認します。

    コンソールを使用している場合、DB インスタンス[Connectivity & security] (接続とセキュリティ) (設定) タブを選択します。そのタブで、ネットワークの種類値がデュアルスタックモードであることを確認してください。

    AWS CLI を使用している場合は、describe-db-instances コマンドを実行して、DB インスタンスの NetworkType の値が dual であることを確認します。

    DB インスタンスエンドポイントで dig コマンドを実行して、関連付けられている IPv6 アドレスを特定します。

    dig db-instance-endpoint AAAA

    DB インスタンスに接続するには、IPv6 アドレスではなく DB インスタンスエンドポイントを使用します。

リージョンとバージョンの可用性

機能の利用可能性とサポートは、各データベースエンジンの特定のバージョン、および AWS リージョン によって異なります。デュアルスタックモードを利用できるバージョンとリージョンの詳細については、「Amazon RDS のデュアルスタックモードでサポートされているリージョンと DB エンジン」を参照してください。

デュアルスタックネットワーク DB インスタンスの制限

デュアルスタックネットワーク DB インスタンスには、次の制限が適用されます。

  • DB インスタンスは、IPv6 プロトコルを排他的に使用することはできません。IPv4 を排他的に使用するか、IPv4 と IPv6 プロトコル を使用することができます (デュアルスタックモード)。

  • Amazon RDS は、ネイティブ IPv6 サブネットをサポートしていません。

  • デュアルスタックモードを使用する DB インスタンスはプライベートでなければなりません。パブリックにアクセス可能にすることはできません。

  • デュアルスタックモードは、db.m3 および db.r3 DB インスタンスクラスをサポートしません。

  • RDS for SQL Server の場合、Always On AG アベイラビリティーグループリスナーエンドポイントを使用するデュアルスタックモード DB インスタンスは、IPv4 アドレスのみを示します。

  • デュアルスタックモード DB インスタンスでは RDS Proxy を使用できません。

  • AWS Outposts DB インスタンスではデュアルスタックモードを使用できません。

  • ローカルゾーンでは、DB インスタンスでデュアルスタックモードを使用することはできません。

VPC 内の DB インスタンスをインターネットから隠す

Amazon RDS の一般的なシナリオの 1 つでは、一般向けウェブアプリケーションを使用する Amazon EC2 インスタンスと、パブリックアクセスが不可能なデータベースを使用する DB インスタンスがある VPC を想定しています。例えば、パブリックサブネットとプライベートサブネットを持つ VPC を作成できます。ウェブサーバーとして機能する EC2 インスタンスをパブリックサブネットにデプロイできます。DB インスタンスは、プライベートサブネットにデプロイされます。このような配置では、ウェブサーバーだけが DB インスタンスにアクセスできます。このシナリオの説明については、「VPC 内の DB インスタンスに同じ VPC 内の Amazon EC2 インスタンスからアクセスする」を参照してください。

VPC 内で DB インスタンスを起動すると、DB インスタンスには VPC 内のトラフィック用のプライベート IP アドレスが割り当てられます。このプライベート IP アドレスにはパブリックアクセスができません。パブリックアクセスオプションを使用すると、DB インスタンスがプライベート IP アドレスだけでなく、パブリック IP アドレスも保持するかどうかを指定できます。DB インスタンスがパブリックアクセスに指定されている場合、その DNS エンドポイントは VPC 内からプライベート IP アドレスに解決されます。VPC の外部からパブリック IP アドレスに解決されます。DB インスタンスへのアクセスは、最終的に使用されるセキュリティグループによって制御されます。DB インスタンスに割り当てられたセキュリティグループに、それを許可するインバウンドルールが含まれていない場合、そのパブリックアクセスは許可されません。また、内部ゲートウェイ DB インスタンスをパブリックにアクセス可能にするには、その DB サブネットグループのサブネットにインターネットゲートウェイが必要です。詳細については、「Amazon RDS DB インスタンスに接続できない」を参照してください。

パブリックアクセスオプションを変更することによって、DB インスタンスのパブリックアクセシビリティをオンまたはオフにすることができます。次の図は、[追加の接続設定] セクションの [パブリックアクセス] オプションを示しています。このオプションを設定するには、[接続] セクションの [追加の接続設定] セクションを開きます。

[追加の接続設定] セクションのデータベース [パブリックアクセス] オプションを [いいえ] に設定します。

DB インスタンスを変更して [パブリックアクセス] オプションを設定する方法については、「Amazon RDS DB インスタンスを変更する」を参照してください。

VPC に DB インスタンスを作成する

次の手順で VPC 内に DB インスタンスを作成できます。デフォルトの VPC を使用する場合は、ステップ 2 から始めて、既に作成されている VPC と DB サブネットグループを使用することができます。VPC を追加で作成する場合は、VPC を新規に作成できます。

注記

VPC の DB インスタンスへのパブリックアクセスを可能にするには、VPC 属性の DNS hostnamesDNS resolution を有効化して、VPC に関する DNS 情報を更新する必要があります。VPC インスタンスの DNS 情報の更新については、「VPC の DNS サポートを更新する」を参照してください。

VPC 内に DB インスタンスを作成するには、以下のステップを実行します。

ステップ 1: VPC を作成する

最低 2 つのアベイラビリティーゾーンの中にサブネットを持つ VPC を作成します。これらのサブネットは、DB サブネットグループを作成するときに使用します。デフォルト VPC がある場合、AWS リージョン 内の各アベイラビリティーゾーンに、自動的にサブネットが作成されます。

詳細については、「プライベートサブネットおよびパブリックサブネットを持つ VPC を作成する」または Amazon VPC ユーザーガイドの「VPC を作成する」を参照してください。

ステップ 2: DB サブネットグループを作成する

DB サブネットグループは VPC 用に作成するサブネット (通常はプライベート) のコレクションで、DB インスタンスに指定します。DB サブネットグループを使用すると、AWS CLI または RDS API を使用して DB インスタンスを作成するときに、特定の VPC を指定できます。コンソールを使用する場合は、使用する VPC とサブネットを選択できます。各 DB サブネットグループには、AWS リージョン 内の少なくとも 2 つのアベイラビリティーゾーンに少なくとも 1 つのサブネットが必要です。ベストプラクティスとして、各 DB サブネットグループには、AWS リージョン 内のアベイラビリティーゾーンごとに少なくとも 1 つのサブネットが必要です。

マルチ AZ 配置の場合、AWS リージョン のすべてのアベイラビリティーゾーンのサブネットを定義すると、Amazon RDS で必要に応じて別のアベイラビリティーゾーンに新しいスタンバイレプリカを作成できます。将来、マルチ AZ 配置に変換される可能性があるため、シングル AZ 配置でもこのベストプラクティスに従うことができます。

DB インスタンスをパブリックにアクセス可能にするには、DB サブネットグループのサブネットにインターネットゲートウェイが必要です。サブネット用のインターネットゲートウェイの詳細については、Amazon VPC ユーザーガイドの「インターネットゲートウェイを使用してサブネットをインターネットに接続する」を参照してください。

注記

ローカルゾーンの DB サブネットグループは、サブネットを 1 つだけ持つことができます。

VPC に DB インスタンスを作成するときに、DB サブネットグループを選択できます。Amazon RDS は、サブネットとそのサブネット内の IP アドレスを選択し、DB インスタンスに関連付けます。DB サブネットグループが存在しない場合、DB インスタンスを作成すると、Amazon RDS DB によってデフォルトのサブネットグループが作成されます。Amazon RDS では、Elastic Network Interface が作成され、その IP アドレスで DB インスタンスに関連付けられます。DB インスタンスは、そのサブネットを含むアベイラビリティーゾーンを使用します。

マルチ AZ 配置の場合、AWS リージョン 内の 2 つ以上のアベイラビリティーゾーンにサブネットを定義すると、Amazon RDS は必要に応じて別のアベイラビリティーゾーンに新しいスタンバイを作成できるようになります。シングル AZ 配置の場合も、どこかの時点でマルチ AZ 配置に変換する場合に備えてこのように定義する必要があります。

このステップでは、DB サブネットグループを作成し、このグループに VPC 用に作成したサブネットを追加します。

DB サブネットグループを作成する方法
  1. Amazon RDS コンソール (https://console.aws.amazon.com/rds/) を開きます。

  2. [Navigation] ペインで、[Subnet groups] を選択します。

  3. [Create DB Subnet Group] を選択します。

  4. [Name] には、DB サブネットグループの名前を入力します。

  5. [Description] に、DB サブネットグループの説明を入力します。

  6. [VPC] では、デフォルトの VPC または作成した VPC を選択します。

  7. [サブネットの追加] セクションで、サブネットを含むアベイラビリティーゾーンを [アベイラビリティーゾーン] から選択し、サブネットを [サブネット] から選択します。

    DB サブネットグループを作成します。
    注記

    ローカルゾーンを有効にしている場合は、[DB サブネットグループの作成] ページでアベイラビリティーゾーングループを選択できます。この場合、[アベイラビリティーゾーングループ]、[アベイラビリティーゾーン]、[サブネット] の順に選択します。

  8. [作成] を選択します。

    RDS コンソールの DB サブネットグループリストに新しい DB サブネットグループが表示されます。DB サブネットグループを選択すると、ウィンドウ下部の詳細ペインに、そのグループに関連付けられたすべてのサブネットなどの詳細を表示することができます。

ステップ 3: VPC セキュリティグループを作成する

DB インスタンスを作成する前に、DB インスタンスに関連付ける VPC セキュリティグループを作成する必要があります。VPC セキュリティグループを作成しない場合、DB インスタンスを作成するときにデフォルトのセキュリティグループを使用します。DB インスタンスのセキュリティグループを作成する方法については、「プライベート DB インスタンスの VPC セキュリティグループを作成する」を参照するか、Amazon VPC ユーザーガイドの「セキュリティグループを使用してリソースへのトラフィックを制御する」を参照してください。

ステップ 4: VPC に DB インスタンスを作成する

このステップでは、DB インスタンスを作成し、前のステップで作成した VPC 名、DB サブネットグループ、および VPC セキュリティグループを使用します。

注記

VPC の DB インスタンスをパブリックにアクセス可能にする場合は、VPC 属性の DNS hostnamesDNS resolution を有効にする必要があります。詳細については、Amazon VPC ユーザーガイドの「DNS attributes for your VPC」(VPC の DNS 属性) を参照してください。

DB インスタンスの作成方法の詳細については、「Amazon RDS DB インスタンスの作成」を参照してください。

[Connectivity] (接続) セクションにプロンプトが表示されたら、VPC の名前、DB サブネットグループ、および VPC セキュリティグループを入力します。