Amazon RDS DB 인스턴스에 할당된 IP 주소에 대해 알아야 할 사항은 무엇입니까?

4분 분량
0

Amazon Relational Database Service(Amazon RDS) 인스턴스에 할당된 IP 주소 관련 정보를 찾고 있습니다.

해결 방법

Amazon RDS가 Virtual Private Cloud(VPC)에서 DB 인스턴스를 생성하면 DB 서브넷 그룹의 IP 주소를 사용하여 DB 인스턴스에 네트워크 인터페이스가 할당됩니다. 사용자의 인스턴스 구성에 따라 인스턴스에 두 가지 유형의 IP 주소가 할당됩니다.

  • 프라이빗 IP 주소: VPC 내에서 DB 인스턴스를 시작하면 DB 인스턴스에는 VPC 내부 트래픽에 대한 프라이빗 IP 주소가 포함됩니다. 이 IP 주소는 인터넷에서 액세스할 수 없습니다. 이 IP 주소는 동일한 VPC 내부의 리소스에서 인스턴스에 연결하는 데 사용됩니다. 기본적으로 모든 Amazon RDS DB 인스턴스에는 프라이빗 IP 주소가 있습니다. 이 IP 주소는 DB 서브넷 그룹에서 정의한 범위에서 할당됩니다.
  • 퍼블릭 IP 주소: 퍼블릭 IP 주소는 인터넷에서 액세스할 수 있습니다. 이 IP 주소는 VPC 외부의 리소스 또는 인터넷에서 인스턴스에 연결하는 데 사용됩니다. 퍼블릭 IP 주소는 인스턴스에 대해 [공개적으로 액세스 가능] 구성 설정을 선택한 경우에만 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 서브넷 그룹에 속한 모든 서브넷의 [대상] 필드에 0.0.0.0/0이 있고 [대상] 필드에 인터넷 게이트웨이 ID가 있는지 확인합니다.
    서브넷이 [대상] 및 [대상] 필드에 서로 다른 값을 갖는 경우, 이전 값을 포함하도록 경로를 편집합니다. 자세한 내용은 라우팅 테이블에 경로 추가 및 제거를 참조하세요.
  11. Amazon RDS 콘솔을 엽니다.
  12. 탐색 창에서 [데이터베이스]를 선택합니다.
  13. 수정할 DB 인스턴스를 선택한 다음 [수정]을 선택합니다.
  14. [연결]에서 [추가 구성] 섹션을 확장한 다음 [공개적으로 액세스 가능]을 선택합니다.
  15. [계속]을 선택합니다.
  16. [DB 인스턴스 수정]을 선택합니다.

참고: 서브넷 그룹에 퍼블릭 및 프라이빗 서브넷의 조합이 포함되어 있지 않아야 합니다. 이러한 조합으로 인하여 기본 인스턴스가 퍼블릭 서브넷에서 실행되는 동안 보조 인스턴스는 다중 AZ 구성의 프라이빗 서브넷에서 실행되는 등의 상황이 발생할 수 있습니다. 이러한 상황으로 인해 장애 조치 후 연결 문제가 발생합니다.

Amazon RDS DB 인스턴스의 프라이빗 및 퍼블릭 IP 주소를 찾고 싶습니다.

Amazon RDS에서 IP 주소는 동적이지만 엔드포인트는 정적입니다. 따라서 엔드포인트를 사용하여 인스턴스에 연결하는 것이 모범 사례입니다. 모든 Amazon RDS 인스턴스에는 엔드포인트가 있습니다. 인스턴스의 엔드포인트(DNS 이름이라고도 부름)를 찾기 위해 다음을 수행합니다.

  1. Amazon RDS 콘솔을 엽니다.
  2. 탐색 창에서 [데이터베이스]를 선택합니다.
  3. IP 주소를 찾으려는 데이터베이스 인스턴스를 선택합니다.
  4. [연결 및 보안] 탭을 선택합니다.

엔드포인트 및 포트 섹션에서 엔드포인트 정보를 확인할 수 있습니다.

동일한 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 주소나 탄력적 IP 주소를 할당할 수 없습니다. RDS DB 인스턴스에 할당된 IP 주소는 다음 조건 중 하나 이상에 따라 변경됩니다.

  • 인스턴스가 중지되었다가 다시 시작됩니다.
    참고: 인스턴스 재부팅 시 IP 주소는 변경되지 않습니다.
  • 인스턴스 장애 및 DB 인스턴스 클래스 업데이트 등의 상황으로 기본 호스트가 교체됩니다.
  • 인스턴스에서 하드웨어 유지 관리가 발생했습니다.
  • 인스턴스가 다중 AZ 환경에 있고 장애 조치가 발생했습니다.
  • DB 인스턴스의 운영 체제가 소프트웨어 패치 작업을 거칩니다.
  • DB 인스턴스의 수동 장애 조치는 장애 조치가 포함된 재부팅을 사용하여 시작됩니다.
  • DB 엔진이 주 또는 부 버전 업그레이드를 거칩니다.
  • 인스턴스의 가용 영역이 중단되었습니다.

관련 정보

VPC에서 DB 인스턴스를 사용한 작업

AWS 공식
AWS 공식업데이트됨 2년 전