Amazon RDS DB インスタンスに割り当てられた IP アドレスについて、何を知る必要がありますか。

所要時間2分
0

Amazon Relational Database Service (Amazon RDS) インスタンスに割り当てられた IP アドレスに関する情報を探しています。

解決方法

Amazon RDS が Virtual Private Cloud (VPC) に DB インスタンスを作成すると、DB サブネットグループの IP アドレスを使用して DB インスタンスにネットワークインターフェイスが割り当てられます。インスタンスの設定に基づいて、2 種類の異なる IP アドレスがインスタンスに割り当てられます。

  • **プライベート IP アドレス:**VPC 内で DB インスタンスを起動すると、DB インスタンスには VPC 内のトラフィック用のプライベート IP アドレスが割り当てられます。この IP アドレスはインターネットからはアクセスできません。この IP アドレスは、同じ VPC 内のリソースからインスタンスに接続するために使用されます。デフォルトでは、すべての Amazon RDS DB インスタンスにはプライベート IP アドレスがあります。この IP アドレスは、DB サブネットグループで定義した範囲から割り当てられます。
  • **パブリック IP アドレス:**パブリック IP アドレスはインターネットからアクセスできます。この IP アドレスは、VPC 外のリソースまたはインターネットからインスタンスに接続するために使用されます。パブリック IP アドレスは、インスタンスに対して、[Public Accsible] の設定が選択されている場合にのみ、DB インスタンスに割り当てられます。

RDS インスタンスの [パブリックアクセス可能] 設定を選択しましたが、パブリック IP アドレスがインスタンスに割り当てられていません

通常、これは DB サブネットグループ内のサブネットがプライベートサブネットである場合に発生します。

問題を解決するには、次を実行します。

  1. Amazon RDS コンソールを開きます。
  2. ナビゲーションペインで、[サブネットグループ] を選択します。
  3. DB インスタンスが関連付けられているサブネットグループを選択します。
    関連付けられているサブネットの VPC ID とサブネット ID を含むサブネットグループを表示できます。
  4. Amazon VPC コンソールを開きます。
  5. ナビゲーションペインで、[インターネットゲートウェイ] を選択します。
  6. VPC がインターネットゲートウェイに添付されているかどうかを確認します。
    VPC がインターネットゲートウェイに添付されていない場合は、インターネットゲートウェイを作成して VPC に添付します。
  7. ナビゲーションペインで [ルートテーブル] を選択します。
  8. VPC に関連付けられているルートテーブルを選択します。
  9. [サブネットの関連付け] タブを選択します。次に、 DB サブネットグループ内のすべてのサブネットがルートテーブルに添付されていることを確認します。
    サブネットがルートテーブルに関連付けられていない場合は、[サブネットの関連付けを編集] を選択します。次に、ルートテーブルに関連付けるサブネットを選択します。詳細については、「サブネットをルートテーブルに関連付ける」を参照してください。
  10. [ルート] タブを選択します。次に、DB サブネットグループ内のすべてのサブネットの [Destination] フィールドに 0.0.0.0/0、[Target] フィールドにインターネットゲートウェイ ID があることを確認します。
    サブネットの [Destination] フィールドと [Target] フィールドの値が異なる場合は、ルートを編集して上記の値を含めます。詳細については、ルートテーブルでルートを追加および削除するをご参照ください。
  11. Amazon RDS コンソールを開きます。
  12. ナビゲーションペインで、[データベース] を選択します。
  13. 変更する DB インスタンスを選択し、[Modify] (変更) を選択します。
  14. [Connectivity] (接続) で、[Additional configuration] (追加の構成) セクションを展開し、[Publicly accessible] (パブリックアクセス可能) を選択します。
  15. [Continue] (続行) を選択します。
  16. [Modify DB Instance] (DB インスタンスを変更) を選択します。

**注:**サブネットグループに、パブリックサブネットとプライベートサブネットの組み合わせが含まれていないことを確認してください。この組み合わせにより、プライマリーインスタンスがパブリックサブネットで実行され、セカンダリインスタンスがマルチ AZ 構成のプライベートサブネットで実行されるなどの状況が発生する可能性があります。このような状況では、フェイルオーバー後に接続の問題が発生します。

Amazon RDS DB インスタンスのプライベート IP アドレスとパブリック IP アドレスを検索したい

Amazon RDS では、IP アドレスは動的ですが、エンドポイントは静的です。したがって、エンドポイントを使用してインスタンスに接続するのがベストプラクティスです。すべての Amazon RDS インスタンスにはエンドポイントがあります。インスタンスのエンドポイント (DNS 名とも呼ばれる) を見つけるには、次の手順を実行します。

  1. Amazon RDS コンソールを開きます。
  2. ナビゲーションペインで、[データベース] を選択します。
  3. IP アドレスを検索するデータベースインスタンスを選択します。
  4. [Connectivity & security] (接続とセキュリティ) タブを選択します。

エンドポイント情報は、[エンドポイントとポート] セクションで確認できます。

同じ VPC 内のリソースから DB インスタンスに接続しようとすると、RDS エンドポイントは自動的にプライベート IP アドレスに解決されます。VPC またはインターネットの外部から DB インスタンスに接続すると、エンドポイントはパブリック IP アドレスに解決されます。

以下のいずれかのコマンドを実行して、RDS インスタンスの IP アドレスを確認することもできます。

nslookup example-rds-endpoint
  • または -
dig example-rds-endpoint

RDS DB インスタンスに対して nslookup コマンドを実行すると、次のような出力が表示される場合があります。

  • 同じ VPC 内の Amazon Elastic Compute Cloud(Amazon EC2)インスタンスからの出力は、プライベート IP アドレスに解決されます。
[ec2-user@ip-172-xx-xx-xx ~]$ nslookup myoracledb.xxxxx.us-east-1.rds.amazonaws.com
Server: xxx.xxx.xxx.xxx
Address: xxx.xxx.xxx.xxx#53
Non-authoritative answer: myoracledb.xxxxx.us-east-1.rds.amazonaws.com canonical name = ec2-3-232-189-42.compute-1.amazonaws.com.
Name: ec2-3-232-189-42.compute-1.amazonaws.com
Address: 172.31.8.27
  • 別の VPC 内の Amazon EC2 インスタンスからの出力は、パブリック IP アドレスに解決されます。
[ec2-user@ip-172-xx-xx-xx ~]$ nslookup myoracledb.xxxxx.us-east-1.rds.amazonaws.com
Server: xxx.xxx.xxx.xxx
Address: xxx.xxx.xxx.xxx#53
Non-authoritative answer: myoracledb.xxxxx.us-east-1.rds.amazonaws.com canonical name = ec2-3-232-189-42.compute-1.amazonaws.com.
Name: ec2-3-232-189-42.compute-1.amazonaws.com
Address: 3.232.189.42

DB インスタンスの IP アドレスに一貫性がない

インスタンスの IP アドレスは動的であるため、静的 IP アドレスや Elastic IP アドレスをインスタンスに割り当てることはできません。RDS DB インスタンスに割り当てられた IP アドレスは、次の 1 つ以上の条件で変化します。

  • インスタンスが停止され、再度起動されます。
    **注:**インスタンスを再起動しても、IP アドレスは変更されません。
  • インスタンスの障害や DB インスタンスクラスの更新などの状況により、基盤となるホストが置き換えられます。
  • インスタンスでハードウェアメンテナンスが実施されました。
  • インスタンスがマルチ AZ 環境にあり、フェイルオーバーが発生しました。
  • DB インスタンスのオペレーティングシステムにはソフトウェアパッチが当てられます。
  • DB インスタンスの手動フェイルオーバーは、フェイルオーバーを伴う再起動を使用して開始されます。
  • DB エンジンは、メジャーバージョンまたはマイナーバージョンのアップグレードを受けます。
  • インスタンスのアベイラビリティーゾーンで停止が発生しています。

関連情報

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

AWS公式
AWS公式更新しました 2年前
コメントはありません