Amazon Relational Database Service
사용 설명서 (API 버전 2014-10-31)

명령줄: AWS CLI 및 mysql 클라이언트에서 DB 인스턴스 에 연결

아래 설명과 같이 AWS CLI 및 mysql 명령줄 도구를 사용하여 Amazon RDS DB 인스턴스에 연결할 수 있습니다.

IAM 인증 토크 생성

다음은 AWS CLI를 사용하여 서명이 되어 있는 인증 토큰을 생성하는 방법을 설명한 예제입니다.

aws rds generate-db-auth-token \ --hostname rdsmysql.cdgmuqiadpid.us-west-2.rds.amazonaws.com \ --port 3306 \ --region us-west-2 \ --username jane_doe

위의 예제에서 각 파라미터는 다음과 같습니다.

  • --hostname – 액세스할 DB 인스턴스 의 호스트 이름입니다.

  • --port – DB 인스턴스에 연결할 때 사용할 포트 이름입니다.

  • --region – DB 인스턴스 가 실행되는 AWS 리전입니다.

  • --username – 액세스할 데이터베이스 계정입니다.

토큰에서 가장 앞의 일부 문자는 다음과 같은 모습입니다.

rdsmysql.cdgmuqiadpid.us-west-2.rds.amazonaws.com:3306/?Action=connect&DBUser=jane_doe&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Expires=900...

DB 인스턴스 에 연결

일반적인 연결 형식은 다음과 같습니다.

mysql --host=hostName --port=portNumber --ssl-ca=[full path]rds-combined-ca-bundle.pem --enable-cleartext-plugin --user=userName --password=authToken

파라미터는 다음과 같습니다.

  • --host – 액세스할 DB 인스턴스 의 호스트 이름입니다.

  • --port – DB 인스턴스에 연결할 때 사용할 포트 이름입니다.

  • --ssl-ca – 퍼블릭 키를 포함하는 SSL 인증서 파일입니다. 자세한 내용은 SSL을 사용하여 DB 인스턴스에 대한 연결 암호화 단원을 참조하십시오.

  • --enable-cleartext-plugin – 현재 연결에서 AWSAuthenticationPlugin을 사용하도록 지정하는 값입니다.

  • --user – 액세스할 데이터베이스 계정입니다.

  • --password – 서명이 되어 있는 IAM 인증 토큰입니다.

인증 토큰은 수백 자의 문자로 구성됩니다. 그렇기 때문에 명령줄에서는 다루지 불편할 수도 있습니다. 이러한 문제를 해결하기 위해 토큰을 환경 변수로 저장한 후 연결할 때 이 변수를 사용하는 것도 한 가지 방법입니다. 다음은 이러한 문제 해결 방법을 설명한 예제입니다.

RDSHOST="rdsmysql.cdgmuqiadpid.us-west-2.rds.amazonaws.com" TOKEN="$(aws rds generate-db-auth-token --hostname $RDSHOST --port 3306 --region us-west-2 --username jane_doe )" mysql --host=$RDSHOST --port=3306 --ssl-ca=/sample_dir/rds-combined-ca-bundle.pem --enable-cleartext-plugin --user=jane_doe --password=$TOKEN

AWSAuthenticationPlugin을 사용하여 연결할 때는 SSL을 통해 보안을 유지합니다. 이러한 보안 여부를 확인하려면 mysql> 명령 프롬프트에 다음과 같이 입력합니다.

show status like 'Ssl%';

그러면 출력 시 다음과 같이 자세하게 표시됩니다.

+---------------+-------------+ | Variable_name | Value | +---------------+-------------+ | ... | ... | Ssl_cipher | AES256-SHA | | ... | ... | Ssl_version | TLSv1.1 | | ... | ... +-----------------------------+