시작하기 리소스 센터 / 10분 자습서 / ...
공유 데이터베이스 연결 설정
Amazon RDS Proxy는 Amazon Relational Database Service(RDS)의 완전관리형 및 고가용성 데이터베이스 프록시로, 애플리케이션의 확장성, 데이터베이스 장애에 대한 복원력, 보안을 강화합니다.
AWS Lambda를 사용하는 현대적 서버리스 아키텍처를 기반으로 구축된 애플리케이션을 비롯하여 많은 애플리케이션이 데이터베이스 서버에 다수의 개방형 연결을 설정할 수 있으며 빠른 속도로 데이터베이스 연결을 열고 닫을 수 있으므로 데이터베이스 메모리와 컴퓨팅 리소스를 소진하게 됩니다. Amazon RDS Proxy를 사용하면 애플리케이션이 데이터베이스와 설정된 연결을 풀링 및 공유할 수 있어 데이터베이스 효율성과 애플리케이션 확장성이 향상됩니다. RDS Proxy를 사용하면 Aurora 및 RDS 데이터베이스의 장애 조치 시간을 최대 66% 단축하고, AWS Secrets Manager 및 AWS Identity and Access Management(IAM)와의 통합을 통해 데이터베이스 자격 증명, 인증 및 액세스를 관리할 수 있습니다.
Amazon RDS Proxy는 대부분의 애플리케이션에서 코드 변경 없이 사용할 수 있으며, 추가 인프라를 프로비저닝하거나 관리할 필요가 없습니다. 요금제는 간단하고 예측 가능하며, 프록시가 활성화된 데이터베이스 인스턴스의 VPC당 비용을 지불하면 됩니다. Amazon RDS Proxy는 Amazon RDS for MySQL 및 Amazon Aurora with MySQL compatibility를 지원합니다.
이 자습서에서는 Amazon RDS Proxy를 생성하고 기존 Amazon RDS MySQL 데이터베이스에 연결하는 방법에 대해 알아봅니다. Amazon EC2 인스턴스의 MySQL 클라이언트를 사용하여 RDS Proxy를 통해 RDS MySQL 데이터베이스에 연결할 수 있습니다. 이러한 개념은 Amazon RDS를 사용하는 서버리스 아키텍처에도 적용될 수 있습니다.
사전 조건
Amazon RDS Proxy를 사용하려면 다음과 같은 일련의 네트워킹 리소스를 갖추어야 합니다.
- Amazon Virtual Private Cloud(VPC)
- 서로 다른 가용 영역에 걸쳐 2개 이상의 서브넷
- 동일한 VPC 내에 Amazon RDS 데이터베이스와 Amazon EC2 인스턴스
- 인터넷 게이트웨이
기존 RDS MySQL 데이터베이스 인스턴스에 성공적으로 연결했다면 필요한 네트워크 리소스가 이미 설정되어 있습니다. 이 자습서를 사용하려면 동일한 VPC 내에 EC2 인스턴스와 RDS MySQL 인스턴스가 설정된 계정이 있어야 합니다. 이러한 인스턴스가 설정되어 있지 않은 경우, RDS 및 EC2 지침을 따라 기본 VPC에 인스턴스를 프로비저닝할 수 있습니다.
자습서 소개 | |
---|---|
시간 | 10분 |
요금 | 1 USD 미만 |
사용 사례 | 데이터베이스 |
제품 | Amazon RDS, AWS Secrets Manager |
대상 | 데이터베이스 관리자, 개발자 |
레벨 | 중급자용 |
최종 업데이트 날짜 | 2020년 3월 16일 |
1단계: 보안 그룹 및 데이터베이스 연결 확인
이 단계에서는 보안 그룹의 인바운드 및 아웃바운드 규칙을 확인한 다음 현재 EC2 인스턴스에서 기존 RDS 데이터베이스 인스턴스로의 연결을 확인합니다.
1.1 – Amazon VPC 대시보드를 열고 AWS 계정 자격 증명을 사용해 로그인합니다. AWS 계정이 없는 경우 시작하려면 새로운 AWS 계정을 생성하십시오.
1.6 – RDS 콘솔로 이동하여 데이터베이스를 선택한 다음 기존 RDS MySQL DB 인스턴스를 선택합니다. 연결 및 보안 탭에서 인스턴스 엔드포인트를 메모해 둡니다.
1.7 – EC2 콘솔로 이동하여 실행 인스턴스를 선택한 다음 RDS DB 인스턴스에 대한 연결을 테스트할 EC2 인스턴스를 선택합니다. 연결을 선택합니다.
2단계: AWS Secrets Manager에 데이터베이스 자격 증명 저장
이 단계에서는 AWS Secrets Manager에 데이터베이스 자격 증명을 저장합니다. 프록시가 액세스하는 각 데이터베이스 사용자 계정에는 해당하는 보안 정보가 AWS Secrets Manager에 있어야 합니다. Amazon RDS Proxy는 이러한 보안 정보를 사용하여 데이터베이스에 대한 연결 풀을 유지 관리합니다.
2.1 – AWS Management Console의 Secrets Manager 섹션으로 이동하여 새 보안 정보 저장을 선택합니다.
2.2 – 보안 정보 유형 선택 상자에서 RDS 데이터베이스 자격 증명을 선택합니다. 그런 다음 데이터베이스를 생성할 때 사용한 사용자 이름과 암호를 입력합니다.
2.5 – AWS Secrets Manager에서는 보안 정보에 대한 자동 보안 정보 교체를 구성할 수 있습니다. 애플리케이션의 보안을 향상할 수 있는 쉬우면서도 영리한 방법입니다. 자세한 내용은 AWS Secrets Manager 보안 정보 교체를 참조하십시오.
보안 정보 교체 설정은 이 자습서에서 다루지 않으므로 자동 교체 비활성화 옵션을 선택하고 다음을 선택합니다.
3단계: IAM 역할 및 정책 생성
이 단계에서는 사용자가 AWS Secrets Manager에 생성한 보안 정보에 RDS Proxy가 액세스할 수 있도록 허용하는 AWS Identity and Access Management(IAM) 역할을 및 정책을 생성합니다.
3.1 – AWS Management Console의 IAM 대시보드로 이동합니다. IAM 대시보드 탐색 창에서 역할을 선택한 다음 역할 생성을 선택합니다.
3.5 – 아래 나열된 예제의 보안 정보 ARM 값을 대체하여 다음 새로운 정책 문을 추가합니다. 그런 다음 정책 검토를 선택합니다.
(이 정책 문은 Amazon RDS 사용 설명서의 AWS Identity and Access Management(IAM) 정책 설정 섹션에 설명되어 있습니다.)
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"secretsmanager:GetRandomPassword",
"secretsmanager:CreateSecret",
"secretsmanager:ListSecrets"
],
"Resource": "*"
},
{
"Sid": "VisualEditor1",
"Effect": "Allow",
"Action": "secretsmanager:*",
"Resource": [
"your_secret_ARN"
]
}
]
}
3.9 – 태그 지정 섹션을 건너뛰고 다음: 검토를 선택합니다.
4단계: RDS Proxy 생성
이 단계에서는 RDS Proxy를 생성하고 1단계에서 확인한 보안 그룹, 2단계에서 생성한 비밀 및 3단계에서 생성한 역할에 대한 프록시를 구성합니다.
4.1 – RDS 콘솔로 이동합니다. RDS 탐색 창에서 프록시를 선택한 다음 프록시 생성을 선택합니다.
4.5 – 고급 구성 섹션에서 고급 로깅의 기본 설정을 유지합니다. 서비스 계약 확인란을 선택하고 프록시 생성을 선택합니다.

4.6 – 프록시 상태가 [생성]에서 [사용 가능]으로 변경되길 기다린 다음 해당 프록시를 선택합니다.

4.7 – 프록시 구성 섹션에서 프록시 엔드포인트를 메모하고 다른 모든 파라미터가 올바른지 확인합니다.

5단계: RDS Proxy를 통해 RDS DB에 연결
인 단계에서는 EC2 인스턴스에서 RDS DB 인스턴스에 연결합니다. 그러나 직접 연결하는 대신 EC2 인스턴스는 RDS Proxy를 통해 RDS DB 인스턴스에 연결됩니다.
5.1 – EC2 콘솔로 이동합니다. EC2 탐색 창에서 실행 인스턴스를 선택한 다음 1단계에서 연결을 테스트한 EC2 인스턴스를 선택합니다. 연결을 선택합니다.
6단계: RDS Proxy 연결 모니터링
이 단계에서는 Amazon CloudWatch를 사용하여 클라이언트 및 데이터베이스 연결과 같은 프록시 지표를 모니터링합니다.
6.1 – CloudWatch 콘솔로 이동합니다. CloudWatch 탐색 창에서 지표를 선택한 다음 RDS, 프록시별 지표를 선택합니다.
6.3 – 지표 목록에서 ClientConnections 및 DatabaseConnections를 선택합니다. 표시 옵션에서 숫자를 선택합니다.
ClientConnections 지표는 현재 RDS Proxy에 연결된 클라이언트 수를 표시하며 이 수치는 1분 간격으로 보고됩니다. DatabaseConnections 지표는 현재 RDS Proxy에서 연결된 데이터베이스 수를 표시하며 이 수치는 1분 간격으로 보고됩니다. 모든 지표에 대한 자세한 내용은 RDS Proxy 모니터링을 참조하십시오.
결과 그래프는 클라이언트 연결 1개(EC2에서 RDS Proxy로)와 데이터베이스 연결 1개(RDS Proxy에서 RDS DB 인스턴스로)가 있음을 보여줍니다. 이 데이터는 5단계에서 수행한 연결을 확인해 줍니다.
7단계: 정리
다음 단계에서는 이 자습서에서 생성한 리소스를 정리합니다.
RDS Proxy 삭제
7.1 – RDS 콘솔로 이동하고 왼쪽 창에서 프록시를 선택합니다.
7.2 – 자습서 프록시를 선택합니다.
7.3 – 작업을 선택한 다음 삭제를 선택합니다.
7.4 – 대화 상자에 delete me를 입력하고 삭제를 선택합니다.
프록시 상태가 삭제 중으로 변경됩니다. 삭제가 완료되면 프록시가 목록에서 제거됩니다.
보안 정보 삭제
7.5 – Secrets Manager 콘솔로 이동합니다.
7.6 – 자습서 보안 정보를 선택합니다.
7.7 – 작업을 선택한 다음 보안 정보 삭제를 선택합니다.
7.8 – 안전을 위해 Secrets Manager에서는 보안 정보를 영구적으로 삭제하기 전에 대기 기간을 적용합니다. 기본 기간인 30일을 사용하고 삭제 예약을 선택합니다.
IAM 역할 및 정책 삭제
7.9 – IAM 콘솔로 이동하여 탐색 창에서 역할을 선택합니다.
7.10 – tutorial-role을 검색한 다음 해당 역할 옆에 있는 확인란을 선택합니다.
7.11 – 페이지 상단에서 역할 삭제를 선택합니다.
7.12 – 확인 대화 상자에서 예, 삭제합니다를 선택합니다.
7.12 – IAM 탐색 창에서 정책을 선택합니다.
7.13 – tutorial-policy를 검색한 다음 해당 정책 옆에 있는 확인란을 선택합니다.
7.14 – 정책 작업을 선택한 다음 삭제를 선택합니다.
7.15 – 정책을 삭제할 것인지 확인한 다음 삭제를 선택합니다.
기타 리소스 삭제
이 자습서를 위해 새로운 EC2 인스턴스, 새로운 RDS 인스턴스, 이에 해당하는 보안 그룹을 생성한 경우 해당 리소스도 삭제합니다.
축하합니다!
데이터베이스 연결을 풀링 및 공유하도록 Amazon RDS Proxy를 생성하고, 프록시 지표를 모니터링하고, 프록시 연결 작업을 확인했습니다.
권장되는 다음 단계
Amazon RDS 기능에 대해 자세히 알아보기
Amazon RDS 사용 설명서를 참조하여 Amazon RDS의 기능에 대해 자세히 알아보십시오.
Amazon RDS 모범 사례
Amazon RDS를 사용하는 일반 모범 사례와 옵션에 대해 알아보십시오.
Amazon RDS Proxy에 대해 자세히 알아보기
자세한 내용은 Using Amazon RDS Proxy with AWS Lambda 블로그 게시물과 Amazon RDS Proxy를 사용한 연결 관리를 참조하십시오.