Amazon RDS 프록시를 사용하여 Amazon RDS for MySQL DB 인스턴스 또는 Aurora MySQL-Compatible DB 클러스터에 연결하려면 어떻게 해야 하나요?

3분 분량
0

Amazon RDS 프록시를 사용하여 MySQL DB 인스턴스용 Amazon Relational Database Service(RDS)에 연결하고 싶습니다. 또는 Amazon RDS 프록시를 사용하여 Amazon Aurora MySQL Compatible-Edition DB 클러스터에 연결하려고 합니다.

해결 방법

시작하기 전에 Amazon RDS 프록시는 데이터베이스와 동일한 Virtual Private Cloud(VPC)에 있어야 합니다. 데이터베이스에 공개적으로 액세스할 수 있도록 설정할 수 있지만 프록시에는 공개적으로 액세스할 수 없습니다.

1.     AWS Secrets Manager에서 데이터베이스 보안 인증을 생성합니다.
참고: 보안 암호를 생성할 때 데이터베이스와 동일한 사용자 이름과 암호를 사용하세요.

2.    (선택 사항) AWS Identity and Access Management(IAM) 정책과 IAM 역할을 생성합니다.
참고: Amazon RDS 프록시는 3단계에서 IAM 역할을 자동으로 생성합니다. 2단계에 따라 고유한 IAM 역할을 생성합니다.

3.     Amazon RDS 프록시를 생성합니다.

4.    프록시 엔드포인트에 연결할 수 있는지 확인하려면 다음 명령을 실행합니다.

nc -zv <proxy_endpoint> 3306

출력 예시:

nc -z test-proxy.proxy-xxxxxxxxxxxxx.eu-west-1.rds.amazonaws.com 3306Connection to test-proxy.proxy-xxxxxxxxxxxxx.eu-west-1.rds.amazonaws.com 3306 port [tcp/mysql] succeeded!

참고: Amazon RDS 프록시와 동일한 VPC에 있는 Amazon Elastic Compute Cloud(Amazon EC2) 머신에서만 앞의 명령을 실행하세요. 로컬 머신에서는 이 명령이 실행되지 않습니다.

5.    Amazon RDS 프록시를 사용하여 RDS DB 인스턴스에 연결하려면 다음 명령을 실행합니다.

mysql -h <proxy_end_point> -u username -p

출력 예시:

mysql -h test-proxy.proxy-xxxxxxxxxxxxx.eu-west-1.rds.amazonaws.com -u admin -pEnter password: Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2946664484
Server version: 5.7.28-log
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>

또는 SSL/TLS 연결과 함께 Amazon RDS 프록시를 사용하여 DB 인스턴스에 연결합니다.

1.    (선택 사항) Amazon RDS 프록시를 생성할 때 전송 계층 보안 필요를 켭니다. 기존 Amazon RDS 프록시를 수정할 수도 있습니다.
참고: 파라미터를 필수로 변경하면 연결에서 SSL/TLS를 사용해야 합니다. Amazon RDS 프록시는 일반 텍스트 연결을 거부합니다. 파라미터를 변경하지 않으면 Amazon RDS 프록시는 SSL/TLS 유무에 관계없이 DB 인스턴스에 연결할 수 있습니다.

2.    Amazon Trust Services에서 Amazon Root CA 1 트러스트 스토어 .pem 파일을 다운로드합니다.

wget https://www.amazontrust.com/repository/AmazonRootCA1.pem

3.    SSL을 사용하여 DB 인스턴스에 연결합니다.

mysql -h test-proxy.proxy-xxxxxxxxxxxxx.eu-west-1.rds.amazonaws.com -u admin --ssl-mode=REQUIRED --ssl-ca=AmazonRootCA1.pem -p

또는 다음 명령을 실행하여 SSL/TLS를 사용해 DB 인스턴스에 연결할 수 있습니다.

mysql -h test-proxy.proxy-xxxxxxxxxxxxx.eu-west-1.rds.amazonaws.com -u admin --ssl-mode=VERIFY_IDENTITY --ssl-ca=AmazonRootCA1.pem -p

참고: Amazon RDS 프록시는 와일드카드 인증서를 사용합니다. MySQL 클라이언트를 사용하여 SSL/TLS VERIFY_IDENTITY 모드로 연결하는 경우 MySQL 8.0 호환 mysql 명령을 사용해야 합니다.

연결하면 DB 인스턴스는 다음 출력을 반환합니다.

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 12659040
Server version: 5.7.28-log
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

관련 정보

Amazon RDS 프록시 문제 해결

Amazon RDS 프록시 사용