スキップしてコンテンツを表示

Amazon RDS DB インスタンスの IP アドレスに関する問題をトラブルシューティングする方法を教えてください。

所要時間2分
0

Amazon Relational Database Service (Amazon RDS) が DB インスタンスに割り当てられた IP アドレスに関する問題をトラブルシューティングしたいです。

解決策

Amazon RDS が仮想プライベートクラウド (VPC) に DB インスタンスを作成する際、Amazon RDS は DB インスタンスにネットワークインターフェイスを割り当てます。Amazon RDS は、インスタンスの構成に基づいて、プライベート IP アドレス、パブリック IP アドレスのいずれかを割り当てます。

パブリックアクセス可能に設定したものの、Amazon RDS は DB インスタンスにパブリック IP アドレスを割り当てなかった場合

DB サブネットグループ内のサブネットがプライベートの場合、Amazon RDS は、DB インスタンスにパブリック IP アドレスを割り当てません。

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

  1. Amazon RDS コンソールを開きます。
  2. ナビゲーションペインで [サブネットグループ] を選択します。
  3. DB インスタンスが関連付けられているサブネットグループを選択します。
    注: VPC ID と関連するサブネット ID を参照することで、サブネットグループを確認できます。
  4. Amazon Virtual Private Cloud (Amazon VPC) コンソールを開きます。
  5. ナビゲーションペインで [インターネットゲートウェイ] を選択します。
  6. VPC がインターネットゲートウェイにアタッチされているかどうかを確認します。
    注: VPC がインターネットゲートウェイに接続されていない場合は、ゲートウェイを作成して VPC にアタッチします。
  7. ナビゲーションペインで [ルートテーブル] を選択します。
  8. VPC に関連付けられているルートテーブルを選択します。
  9. [サブネットの関連付け] タブを選択し、DB のサブネットグループ内のすべてのサブネットがルートテーブルにアタッチされているかどうかを確認します。
    注: サブネットがルートテーブルに関連付けられていない場合は、[サブネットの関連付けを編集] を選択します。ルートテーブルに関連付けるサブネットを選択します。
  10. [ルート] タブを選択します。DB のサブネットグループ内にあるすべてのサブネットにおいて、[宛先] フィールドが 0.0.0.0/0 であり、[ターゲット] フィールドにインターネットゲートウェイの ID があることを確認します。
    注: サブネットの [宛先] フィールドと [ターゲット] フィールドに複数の値がある場合は、ルートを変更し、上記の値が含まれるようにします。
  11. Amazon RDS コンソールを開きます。
  12. ナビゲーションペインで [データベース] を選択します。
  13. 該当する DB インスタンスを選択し、**[変更]**を選択します。
  14. [接続][その他の設定] セクションを展開し、[パブリックアクセス可能] を選択します。
  15. [続行] を選択します。
  16. [DB インスタンスの変更] を選択します。

注: パブリックサブネットとプライベートサブネットの組み合わせを含むサブネットグループは、フェイルオーバー後に接続の問題を引き起こす可能性があります。たとえば、マルチアベイラビリティーゾーン構成では、プライマリインスタンスがパブリックサブネットを使用し、セカンダリインスタンスがプライベートサブネットを使用する際に、接続の問題が発生する可能性があります。

Amazon RDS DB インスタンスの接続情報を特定する必要がある場合

注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI で発生したエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。

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

Amazon RDS コンソールで AWS CLI コマンド describe-db-instances を実行するか、DescribeDBInstances Amazon RDS API を実行すると、接続情報を確認できます。

または、次のいずれかのコマンドを実行しても確認できます。

dig example-rds-endpoint

または、

nslookup example-rds-endpoint

注: example-rds-endpoint を実際のエンドポイントに置き換えてください。

nslookup コマンドを実行して Amazon RDS エンドポイントを取得すると、次の例のような出力が表示されます。

プライベート IP アドレスに解決される、同じ VPC 内の Amazon Elastic Compute Cloud (Amazon EC2) インスタンスからの出力:

[ec2-user@ip-172-xx-xx-xx ~] nslookup myoracledb.abcd123.region.rds.amazonaws.com  
Server: 172.16.0.0
Address: 172.31.255.255#53
Non-authoritative answer: myoracledb.abcd123.region.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

パブリック IP アドレスに解決される、別の VPC 内の Amazon EC2 インスタンスからの出力:

[ec2-user@ip-172-xx-xx-xx ~] nslookup myoracledb.abcd123.region.rds.amazonaws.com  
Server: 192.0.2.0
Address: 192.0.2.255#53
Non-authoritative answer: myoracledb.abcd123.region.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 アドレスに一貫性がない場合

次のシナリオでは、Amazon RDS DB インスタンスの IP アドレスは変更される可能性があります。

  • DB インスタンスを停止して再起動した場合。
    注: DB インスタンスの再起動時には、IP アドレスは変わりません。
  • DB インスタンスの障害または DB インスタンスクラスの更新が原因で、Amazon RDS が基盤ホストを置換した場合。
  • Amazon RDS が DB インスタンスのハードウェアメンテナンスを行った場合。
  • DB インスタンスがマルチ AZ 環境にあり、フェイルオーバーが発生した場合。
  • DB インスタンスのオペレーティングシステム (OS) にソフトウェアパッチが適用された場合。
  • DB インスタンスの手動フェイルオーバーを開始するために、フェイルオーバーが伴う再起動を行った場合。
  • DB エンジンでメジャーバージョンまたはマイナーバージョンのアップグレードが行われた場合。
  • インスタンスのアベイラビリティーゾーンで障害が発生した場合。

注: インスタンスの IP アドレスは動的であるため、静的 IP アドレスや Elastic IP アドレスをインスタンスに割り当てることはできません。

コメントはありません

関連するコンテンツ