Amazon RDS DB 인스턴스에 연결 - Amazon Relational Database Service

Amazon RDS DB 인스턴스에 연결

DB 인스턴스에 연결하려면 먼저 DB 인스턴스를 생성해야 합니다. 자세한 정보는 Amazon RDS DB 인스턴스 생성 섹션을 참조하세요. Amazon RDS가 DB 인스턴스를 프로비저닝한 후에는 해당 DB 엔진용 표준 클라이언트 애플리케이션 또는 유틸리티를 사용하여 DB 인스턴스에 연결할 수 있습니다. 연결 문자열에는 호스트 파라미터로 DB 인스턴스 엔드포인트의 DNS 주소와 포트 파라미터로 DB 인스턴스 엔드포인트의 포트 번호를 지정합니다.

Amazon RDS DB 인스턴스에 대한 연결 정보 찾기

DB 인스턴스의 연결 정보에는 엔드포인트, 포트 및 유효한 데이터베이스 사용자(예: 마스터 사용자)가 포함됩니다. 예를 들어 MySQL DB 인스턴스의 엔드포인트 값이 mydb.123456789012.us-east-1.rds.amazonaws.com이라고 가정합니다. 이 경우 포트 값은 3306이고 데이터베이스 사용자는 admin입니다. 이 정보를 바탕으로 연결 문자열에 다음 값을 지정합니다.

  • 호스트 또는 호스트 이름 또는 DNS 이름에 mydb.123456789012.us-east-1.rds.amazonaws.com을 지정합니다.

  • 포트에 대해 3306을 지정합니다.

  • 사용자에 admin을 지정합니다.

엔드포인트는 DB 인스턴스마다 고유하며 포트 및 사용자 값이 다를 수 있습니다. 다음 목록은 각 DB 엔진의 가장 일반적인 포트를 보여 줍니다.

  • MariaDB – 3306

  • Microsoft SQL Server – 1433

  • MySQL – 3306

  • Oracle – 1521

  • PostgreSQL – 5432

DB 인스턴스에 연결하려면 DB 엔진에 대해 임의의 클라이언트를 사용합니다. 예를 들어 mysql 유틸리티를 사용하여 MariaDB 또는 MySQL DB 인스턴스에 연결할 수 있습니다. Microsoft SQL Server Management Studio를 사용하여 SQL Server DB 인스턴스에 연결할 수 있습니다. Oracle SQL Developer를 사용하여 Oracle DB 인스턴스에 연결하거나 psql 명령줄 유틸리티를 사용하여 PostgreSQL DB 인스턴스에 연결할 수 있습니다.

DB 인스턴스에 대한 연결 정보를 찾으려면 AWS Management Console, AWS Command Line Interface(AWS CLI) describe-db-instances 명령 또는 Amazon RDS API DescribeDBInstances 작업을 사용하여 세부 정보를 나열하면 됩니다.

AWS Management Console에서 DB 인스턴스에 대한 연결 정보를 찾으려면

  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/rds/에서 Amazon RDS 콘솔을 엽니다.

  2. 탐색 창에서 [데이터베이스(Database)] 를 선택하여 DB 인스턴스 목록을 표시합니다.

  3. DB 인스턴스의 이름을 선택하여 세부 정보를 표시합니다.

  4. Connectivity & security(연결 및 보안) 탭에서 엔드포인트를 복사합니다. 또한 포트 번호를 적어 둡니다. DB 인스턴스에 연결하려면 엔드포인트와 포트 번호가 모두 필요합니다.

    
                            DB 인스턴스의 엔드포인트 및 포트
  5. 마스터 사용자 이름을 찾아야 하는 경우 [구성(Configuration)] 탭을 선택하고 [마스터 사용자 이름(Master username)] 값을 확인합니다.

AWS CLI를 사용하여 DB 인스턴스의 연결 정보를 찾으려면 describe-db-instances 명령을 호출합니다. 이 호출에서 DB 인스턴스 ID, 엔드포인트, 포트 및 마스터 사용자 이름을 쿼리합니다.

Linux, macOS 또는 Unix의 경우는 다음과 같습니다.

aws rds describe-db-instances \ --query "*[].[DBInstanceIdentifier,Endpoint.Address,Endpoint.Port,MasterUsername]"

Windows의 경우:

aws rds describe-db-instances ^ --query "*[].[DBInstanceIdentifier,Endpoint.Address,Endpoint.Port,MasterUsername]"

다음과 유사하게 출력되어야 합니다.

[ [ "mydb", "mydb.123456789012.us-east-1.rds.amazonaws.com", 3306, "admin" ], [ "myoracledb", "myoracledb.123456789012.us-east-1.rds.amazonaws.com", 1521, "dbadmin" ], [ "mypostgresqldb", "mypostgresqldb.123456789012.us-east-1.rds.amazonaws.com", 5432, "postgresadmin" ] ]

Amazon RDS API를 사용하여 DB 인스턴스의 연결 정보를 찾으려면 DescribeDBInstances 작업을 호출합니다. 출력에서 엔드포인트 주소, 엔드포인트 포트 및 마스터 사용자 이름의 값을 찾습니다.

데이터베이스 인증 옵션

Amazon RDS는 데이터베이스 사용자를 인증하는 다음과 같은 방법을 지원합니다.

  • 암호 인증 – DB 인스턴스가 모든 사용자 계정 관리 작업을 수행합니다. 여러분은 사용자를 생성하고 SQL 문을 사용하여 암호를 지정합니다. 사용할 수 있는 SQL 문은 DB 엔진에 따라 다릅니다.

  • AWS Identity and Access Management(IAM)데이터베이스 인증 - DB 인스턴스에 연결할 때 암호를 사용할 필요가 없습니다. 대신에 인증 토큰을 사용합니다.

  • Kerberos 인증 – Kerberos 및 Microsoft Active Directory를 통해 데이터베이스 사용자의 외부 인증을 사용합니다. Kerberos는 티켓과 대칭 키 암호화를 사용하여 네트워크를 통해 암호를 전송할 필요가 없는 네트워크 인증 프로토콜입니다. Kerberos는 Active Directory에 내장되어 있으며 데이터베이스와 같은 네트워크 리소스에 대해 사용자를 인증하도록 설계되었습니다.

IAM 데이터베이스 인증 및 Kerberos 인증은 특정 DB 엔진 및 버전에만 사용할 수 있습니다.

자세한 내용은 Amazon RDS을 사용한 데이터베이스 인증 섹션을 참조하세요.

암호화된 연결

애플리케이션에서 SSL(Secure Socket Layer) 또는 TLS(전송 계층 보안)를 사용하여 DB 인스턴스에 대한 연결을 암호화할 수 있습니다. 각 DB 엔진에는 SSL/TLS를 구현하기 위한 고유한 프로세스가 있습니다. 자세한 내용은 SSL/TLS를 사용하여 DB instance 연결 암호화 섹션을 참조하세요.

VPC에서 DB 인스턴스에 액세스하는 시나리오

Amazon Virtual Private Cloud(Amazon VPC)를 사용하여 Amazon RDS DB 인스턴스와 같은 AWS 리소스를 Virtual Private Cloud(VPC)에서 시작할 수 있습니다. Amazon VPC를 사용하면 가상 네트워킹 환경을 완벽하게 제어할 수 있습니다. 자기만의 IP 주소 범위를 선택하고, 서브넷을 생성하고, 라우팅 및 액세스 제어 목록을 구성할 수 있습니다.

VPC 보안 그룹은 VPC 내부의 DB 인스턴스에 대한 액세스를 제어합니다. 각 VPC 보안 그룹 규칙을 설정하면 특정 소스가 해당 VPC 보안 그룹과 연결되어 있는 VPC의 DB 인스턴스에 액세스할 수 있습니다. 소스는 주소 범위(예: 203.0.113.0/24) 또는 다른 VPC 보안 그룹일 수 있습니다. VPC 보안 그룹을 소스로 지정하면 소스 VPC 보안 그룹을 사용하는 모든 인스턴스(일반적으로 애플리케이션 서버)에서 수신 트래픽이 허용됩니다.

DB 인스턴스에 연결하기 전에 사용 사례에 맞게 VPC를 구성합니다. 다음은 VPC에서 DB 인스턴스에 액세스하는 일반적인 시나리오입니다.

  • 동일한 VPC의 Amazon EC2 인스턴스가 VPC의 – DB 인스턴스에 액세스 VPC에서 DB 인스턴스의 일반적인 사용 사례는 동일한 VPC의 EC2 인스턴스에서 실행 중인 애플리케이션 서버와 데이터를 공유하는 것입니다. EC2 인스턴스는 DB 인스턴스와 상호 작용하는 애플리케이션을 통해 웹 서버를 실행할 수 있습니다.

  • 다른 VPC의 EC2 인스턴스가 VPC의 DB 인스턴스에 액세스 – 액세스하는 데 사용 중인 EC2 인스턴스와 다른 VPC에 DB 인스턴스가 있는 경우 VPC 피어링으로 DB 인스턴스에 액세스할 수 있습니다.

  • 클라이언트 애플리케이션이 인터넷을 통해 VPC의 DB 인스턴스에 액세스 – 클라이언트 애플리케이션에서 인터넷을 통해 VPC의 DB 인스턴스에 액세스하려면, 단일 퍼블릭 서브넷으로 VPC를 구성하고 인터넷을 통한 통신이 가능하도록 인터넷 게이트웨이를 구성합니다.

    VPC 외부에서 DB 인스턴스에 연결하려면 DB 인스턴스에 공개적으로 액세스할 수 있어야 합니다. 또한 DB 인스턴스 보안 그룹의 인바운드 규칙을 사용하여 액세스 권한을 부여해야 하며, 기타 요구 사항을 충족해야 합니다. 자세한 내용은 Amazon RDS DB 인스턴스에 연결할 수 없음 섹션을 참조하세요.

  • 프라이빗 네트워크에서 VPC의 DB 인스턴스에 액세스 - DB 인스턴스에 공개적으로 액세스할 수 없는 경우 AWS Site-to-Site VPN 연결 또는 AWS Direct Connect 연결을 사용하여 프라이빗 네트워크에서 액세스할 수 있습니다.

  • VPC에 있지 않은 EC2 인스턴스가 VPC의 DB 인스턴스에 액세스 – ClassiclLink를 사용하여, VPC에 있는 DB 인스턴스와 VPC에 있지 않은 EC2 인스턴스 간에 통신할 수 있습니다.

자세한 내용은 VPC에서 DB 인스턴스에 액세스하는 시나리오 섹션을 참조하세요.

특정 DB 엔진을 실행하는 DB 인스턴스에 연결

특정 DB 엔진을 실행하는 DB 인스턴스에 연결하는 방법에 대한 자세한 내용은 DB 엔진의 지침을 따르세요.

RDS Proxy와의 연결 관리

Amazon RDS Proxy를 사용하여 MySQL 및 PostgreSQL DB 인스턴스에 대한 연결을 관리할 수도 있습니다. RDS Proxy를 사용하면 애플리케이션이 데이터베이스 연결을 풀링하고 공유하여 확장성을 향상할 수 있습니다.