VPC 외부에서 Amazon Aurora DB 클러스터에 연결하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2021년 1월 28일

Amazon Aurora DB 클러스터가 있는데 VPC 외부에서 해당 클러스터에 연결하고 싶습니다. 또한 외부 연결에서 Aurora DB 클러스터를 보호하고 싶습니다. 어떻게 해야 하나요?

간략한 설명

VPC 외부에서 Amazon Aurora DB 클러스터에 직접 연결하려면 클러스터의 인스턴스가 다음 요구 사항을 충족해야 합니다.

  • DB 인스턴스에 퍼블릭 IP 주소가 있어야 합니다.
  • DB 인스턴스는 공개적으로 액세스할 수 있는 서브넷에서 실행되고 있어야 합니다.

VPC 외부에서 연결할 수 있도록 DB 인스턴스를 구성할 뿐만 아니라 이전에 SSL(Secure Sockets Layer)라고 하는 TLS(Transport Layer Security)를 사용하여 연결을 보호할 수도 있습니다.

해결 방법

DB 인스턴스에서 [공개적으로 액세스 가능(Publicly Accessible)] 설정을 [Yes]로 지정

Amazon Relational Database Service(Amazon RDS) DB 인스턴스에서 [공개적으로 액세스 가능(Publicly Accessible)] 설정은 DB 인스턴스에 대한 퍼블릭 IP 주소 할당을 제어합니다.

  • 이 값을 [No]로 설정하면 DB 인스턴스에 퍼블릭 IP 주소가 없는 것입니다.
  • 이 값을 [Yes]로 설정하면 DB 인스턴스에 퍼블릭 IP 주소와 프라이빗 IP 주소가 모두 포함됩니다.

DB 인스턴스에서 [공개적으로 액세스 가능(Publicly Accessible)] 설정을 [Yes]로 변경하려면 다음 단계를 수행합니다.

  1. Amazon RDS 콘솔을 엽니다.
  2. 탐색 창에서 [데이터베이스(Databases)]를 선택하고 DB 인스턴스를 선택합니다.
  3. [수정(Modify)]을 선택합니다.
  4. [연결(Connectivity)]에서 [추가 구성(Additional configuration)] 섹션을 확장한 다음 [공개적으로 액세스 가능(Publicly accessible)]을 선택합니다.
  5. [계속(Continue)]을 선택합니다.
  6. [DB 인스턴스 수정(Modify DB Instance)]을 선택합니다.

참고: [즉시 적용(Apply Immediately)]을 선택하지 않아도 됩니다. [즉시 적용(Apply Immediately)]이 어떻게 가동 중단 시간에 영향을 미치는지 자세히 알아보려면 즉시 적용 파라미터 사용을 참조하십시오.

퍼블릭 서브넷에서 DB 인스턴스 실행

퍼블릭 서브넷은 인터넷 게이트웨이(일반적으로 기본 경로 0.0.0.0/0)에 대한 경로가 있는 라우팅 테이블과 연결된 서브넷입니다. 이 경로를 통해 서브넷의 DB 인스턴스가 VPC 외부의 리소스와 통신할 수 있습니다.

Amazon Aurora DB 인스턴스의 경우 특정 서브넷을 선택할 수 없습니다. 대신 인스턴스를 생성할 때 DB 서브넷 그룹을 선택합니다.

DB 서브넷 그룹은 VPC에 속하는 서브넷 모음입니다. 기본 호스트를 생성할 때 Amazon RDS는 DB 서브넷 그룹에서 서브넷을 임의로 선택합니다. 일반적으로 VPC에는 퍼블릭 서브넷과 프라이빗 서브넷이 모두 있습니다. DB 서브넷 그룹에 퍼블릭 서브넷과 프라이빗 서브넷이 모두 포함되어 있는 경우 퍼블릭 서브넷이나 프라이빗 서브넷에서 기본 호스트를 시작할 수 있습니다. 기본 호스트가 프라이빗 서브넷에서 시작된 경우에는 VPC 외부에서 DB 인스턴스에 연결할 수 없습니다.

대신 유사한 네트워크 구성의 서브넷이 있는 DB 서브넷 그룹을 생성합니다. 예를 들어 퍼블릭 서브넷의 경우 DB 서브넷 그룹을, 프라이빗 서브넷의 경우 두 번째 DB 서브넷 그룹을 예로 들 수 있습니다. 자세한 내용은 서브넷 그룹에서 DB 인스턴스를 사용한 작업을 참조하세요.

다음 단계에 따라 DB 인스턴스에서 사용하는 서브넷에 인터넷에 액세스할 수 있는지 확인합니다.

  1. VPC에 인터넷 게이트웨이가 연결되어 있는지 확인합니다.
  2. DB 서브넷 그룹의 모든 서브넷이 인터넷 게이트웨이와 함께 라우팅 테이블을 사용하는지 확인합니다.
    • 서브넷이 VPC의 기본 라우팅 테이블을 사용하는 경우 인터넷 게이트웨이에 대한 경로를 추가합니다(대상은 0.0.0.0/0).
    • 필요한 경우 인터넷 게이트웨이에 대한 경로가 포함된 사용자 지정 라우팅 테이블을 만들어 서브넷에 연결합니다.
  3. 보안 그룹의 인바운드 규칙에 DB 인스턴스에 연결하려는 소스 퍼블릭 IP 주소를 추가합니다.
  4. 규칙 [유형(Type)]에서 엔진 유형에 따라 [MySQL/Aurora] 또는 [PostgreSQL]을 선택합니다.
  5. [소스(Source)]에 CIDR 범위를 수동으로 입력하거나 [My IP]를 선택하여 동일한 워크스테이션에서 DB 인스턴스에 연결합니다.

VPC 외부의 연결로부터 DB 클러스터 보호

인터넷을 통해 데이터 전송이 이루어지기 때문에 TLS를 사용하여 VPC 외부에서 오는 연결을 암호화할 수 있습니다. 최고 수준의 보안을 사용하고 있는지 확인하려면 ssl-ca 파라미터를 사용하여 CA 인증서를 전달한 다음 호스트 이름 유효성 검사를 사용하도록 설정합니다. 사용 중인 Aurora 버전에 따라 TLS 연결에 다음 예제 명령을 사용합니다.

Aurora MySQL 5.6 이상:

mysql -h test-aurora-56.cluster-xxxxxxxxxxxx.us-east-1.rds.amazonaws.com -u master_user --ssl-ca=rds-combined-ca-bundle.pem --ssl-verify-server-cert

Aurora MySQL 5.7 이상:

mysql -h test-aurora-57.cluster-xxxxxxxxxxxx.us-east-1.rds.amazonaws.com -u master_user --ssl-ca=rds-combined-ca-bundle.pem --ssl-mode=VERIFY_IDENTITY

Aurora PostgreSQL:

psql -h test-aurora-pg.cluster-xxxxxxxxxxxx.us-east-1.rds.amazonaws.com -p 5432 "dbname=postgres user=master_user sslrootcert=rds-combined-ca-bundle.pem sslmode=verify-full"

참고: DB 클러스터에 TLS를 적용할 수도 있습니다. Aurora MySQL의 경우 데이터베이스 사용자 수준에서 TLS를 적용해야 합니다. Aurora PostgreSQL의 경우 rds.force_ssl 파라미터를 1로 설정합니다.


이 문서가 도움이 되었나요?


결제 또는 기술 지원이 필요합니까?