MariaDB 데이터베이스 엔진을 실행하는 DB 인스턴스에서 데이터베이스에 연결 - Amazon Relational Database Service

MariaDB 데이터베이스 엔진을 실행하는 DB 인스턴스에서 데이터베이스에 연결

Amazon RDS가 DB 인스턴스를 프로비저닝한 후에는 표준 MariaDB 클라이언트 애플리케이션 또는 유틸리티를 사용하여 인스턴스에 연결할 수 있습니다. 연결 문자열에서 DB 인스턴스 엔드포인트의 Domain Name System(DNS) 주소를 호스트 파라미터로 지정합니다. 또한 DB 인스턴스 엔드포인트의 포트 번호를 포트 파라미터로 지정합니다.

Amazon RDS for MariaDB DB 인스턴스는 MySQL 명령줄 클라이언트 같은 도구를 사용하여 연결할 수 있습니다. MySQL 명령줄 클라이언트 사용에 대한 자세한 내용은 MariaDB 문서의 mysql 명령줄 클라이언트를 참조하세요. 연결에 사용할 수 있는 GUI 기반 애플리케이션 중 하나는 Heidi입니다. 자세한 내용은 Heidi 다운로드 페이지를 참조하십시오. MySQL 설치(MySQL 명령줄 클라이언트 포함)에 대한 정보는 MySQL 설치 및 업그레이드를 참조하세요.

대부분의 Linux 배포에는 Oracle MySQL 클라이언트 대신 MariaDB 클라이언트가 포함됩니다. Amazon Linux 2를 포함한 대부분의 RPM 기반 Linux 배포판에 MySQL 명령줄 클라이언트를 설치하려면 다음 명령을 실행합니다.

yum install mariadb

대부분의 DEB 기반 Linux 배포판에 MySQL 명령줄 클라이언트를 설치하려면 다음 명령을 실행합니다.

apt-get install mariadb-client

MySQL 명령줄 클라이언트의 버전을 확인하려면 다음 명령을 실행합니다.

mysql --version

현재 클라이언트 버전에 대한 MySQL 문서를 보려면 다음 명령을 실행합니다.

man mysql

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

MariaDB DB 인스턴스에 연결할 때는 SSL 암호화를 사용할 수 있습니다. 자세한 정보는 MariaDB DB 인스턴스와 함께 SSL 사용 섹션을 참조하세요.

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

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

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

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

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

DB 인스턴스에 연결하려면 MariaDB DB 엔진에 대해 임의의 클라이언트를 사용합니다. 예를 들어 MySQL 명령줄 클라이언트 또는 MySQL 워크벤치를 사용할 수 있습니다.

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. MariaDB DB 인스턴스의 이름을 선택하여 세부 정보를 표시합니다.

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

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

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

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

aws rds describe-db-instances \ --filters "Name=engine,Values=mariadb" \ --query "*[].[DBInstanceIdentifier,Endpoint.Address,Endpoint.Port,MasterUsername]"

Windows의 경우:

aws rds describe-db-instances ^ --filters "Name=engine,Values=mariadb" ^ --query "*[].[DBInstanceIdentifier,Endpoint.Address,Endpoint.Port,MasterUsername]"

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

[ [ "mydb1", "mydb1.123456789012.us-east-1.rds.amazonaws.com", 3306, "admin" ], [ "mydb2", "mydb2.123456789012.us-east-1.rds.amazonaws.com", 3306, "admin" ] ]

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

MySQL 명령줄 클라이언트에서 연결(암호화되지 않음)

중요

클라이언트와 서버가 동일한 VPC에 있고 네트워크를 신뢰할 수 있는 경우에만 암호화되지 않은 MySQL 연결을 사용합니다. 암호화된 연결 사용에 대한 자세한 내용은 MySQL 명령줄 클라이언트에서 SSL을 사용하여 연결(암호화) 섹션을 참조하세요.

MySQL 명령줄 클라이언트를 사용하여 DB 인스턴스에 연결하려면 클라이언트 컴퓨터의 명령 프롬프트에서 다음 명령을 입력합니다. 이렇게 하면 MariaDB DB 인스턴스의 데이터베이스로 연결됩니다. <endpoint>는 DB 인스턴스의 DNS 이름(엔드포인트)으로 대체하고, <mymasteruser>는 사용된 마스터 사용자 이름으로 대체합니다. 암호를 묻는 메시지가 표시되면 사용한 마스터 암호를 제공합니다.

mysql -h <endpoint> -P 3306 -u <mymasteruser> -p

사용자에 대한 암호를 입력하면 다음과 유사한 출력이 나타납니다.

Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 31 Server version: 10.5.8-MariaDB-log Source distribution Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]>

MySQL 명령줄 클라이언트에서 SSL을 사용하여 연결(암호화)

Amazon RDS는 DB 인스턴스가 생성될 때 인스턴스의 SSL 인증서를 만듭니다. SSL 인증서 확인을 활성화하는 경우에는 SSL 인증서에 스푸핑 공격으로부터 보호해주는 SSL 인증서를 위한 일반 이름(CN)으로 DB 인스턴스 엔드포인트가 포함됩니다. 다음 단계에 따라 SSL을 사용하여 DB 인스턴스에 연결합니다.

MySQL 명령줄 클라이언트를 사용하여 SSL을 통해 DB 인스턴스에 연결하는 방법

  1. 모든 AWS 리전에 적용되는 루트 인증서를 다운로드할 수 있습니다.

    인증서 다운로드에 대한 자세한 내용은 SSL/TLS를 사용하여 DB 인스턴스에 대한 연결 암호화 단원을 참조하십시오.

  2. mysql 유틸리티에서 SSL이 포함된 DB 인스턴스에 연결하려면 명령 프롬프트에 다음 명령을 입력합니다. -h 파라미터에는 DB 인스턴스의 DNS 이름으로 대체합니다. --ssl-ca 파라미터에는 해당하는 SSL 인증서 파일 이름으로 대체합니다.

    mysql -h mariadb-instance1.123456789012.us-east-1.rds.amazonaws.com --ssl-ca=global-bundle.pem -p
  3. SSL 연결이 SSL 인증서의 엔드포인트와 비교하여 DB 인스턴스 엔드포인트를 검증할 수 있도록 --ssl-verify-server-cert 파라미터를 추가합니다. 예:

    mysql -h mariadb-instance1.123456789012.us-east-1.rds.amazonaws.com --ssl-ca=global-bundle.pem --ssl-verify-server-cert -p
  4. 입력 프롬프트가 표시되면 마스터 사용자 암호를 입력합니다.

다음과 유사한 출력 화면이 표시되어야 합니다.

Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 31 Server version: 10.5.8-MariaDB-log Source distribution Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]>

MariaDB DB 인스턴스에 대한 연결 문제 해결

새로운 DB 인스턴스의 연결 오류가 발생하는 두 가지 공통 원인은 다음과 같습니다.

  • 보안 그룹을 사용하여 DB 인스턴스를 생성하였지만 이 보안 그룹이 MariaDB 애플리케이션 또는 유틸리티를 실행 중인 디바이스나 Amazon EC2 인스턴스에서 연결을 승인하지 않은 경우. DB 인스턴스가 Amazon VPC 내부에서 만들어진 경우에는 이 인스턴스의 VPC 보안 그룹이 연결 권한을 부여해야 합니다. 자세한 내용은 Amazon Virtual Private Cloud VPC 및 Amazon RDS 섹션을 참조하세요.

    보안 그룹에서 인바운드 규칙을 추가하거나 편집할 수 있습니다. 소스에서 내 IP를 선택합니다. 이렇게 하면 브라우저에서 감지된 IP 주소에서 DB 인스턴스에 액세스할 수 있습니다.

    DB 인스턴스가 VPC 외부에서 생성된 경우 이 인스턴스의 DB 보안 그룹에서 연결 권한을 부여해야 합니다.

  • 포트 3306을 사용해 DB 인스턴스를 만들었는데 기업 방화벽 규칙에 따라 기업 네트워크의 디바이스에서 해당 포트에 연결하는 것이 차단된 경우. 이 오류를 수정하려면 인스턴스를 다른 포트로 다시 만들어야 합니다.

연결 문제에 대한 자세한 내용은 Amazon RDS DB 인스턴스에 연결할 수 없음 단원을 참조하십시오.