Amazon RDS 프록시를 사용하여 Amazon Relational Database Service (Amazon RDS) 데이터베이스에 연결하도록 AWS Lambda 함수를 구성하고 싶습니다.
간략한 설명
Lambda 함수를 위한 Amazon RDS 프록시 데이터베이스를 생성할 수 있습니다. 데이터베이스 프록시는 데이터베이스 연결 풀을 관리하고 함수에서 쿼리를 릴레이합니다. 이를 통해 데이터베이스 연결을 소진하지 않고도 함수가 높은 동시성 수준에 도달할 수 있습니다.
자세한 내용은 Lambda 함수에 대한 데이터베이스 액세스 구성을 참조하세요.
해결 방법
다음 지침에 따라 Lambda 함수를 사용하여 Amazon RDS 프록시를 구성합니다.
참고: Amazon RDS 프록시는 Amazon RDS 데이터베이스와 동일한 Amazon Virtual Private Cloud(Amazon VPC)에 있어야 합니다. Amazon VPC를 사용하여 Lambda 함수를 구성하여 Amazon RDS 프록시에 액세스합니다.
1단계: AWS Secrets Manager에서 데이터베이스 자격 증명 생성
1. Secrets Manager 콘솔을 열고 새 보안 정보 저장을 선택합니다.
2. 보안 정보 유형에서 RDS 데이터베이스 자격 증명을 선택합니다.
3. Amazon RDS 데이터베이스 인스턴스의 사용자 이름과 암호를 입력합니다.
4. 암호화 키의 경우 Secrets Manager가 보안 정보 값을 암호화하는 데 사용하는 AWS Key Management Service(AWS KMS) 키를 선택합니다**.**
5. 데이터베이스에서 데이터베이스를 선택한 후 다음을 선택합니다.
6. 보안 정보 이름에 이름을 입력하고 다음을 선택하고 다음을 다시 선택한 후 저장을 선택합니다.
7. 보안 정보에서 생성한 Secrets Manager 보안 정보를 선택합니다.
8. 보안 정보 ARN에서 다른 단계에서 사용할 ARN을 복사합니다.
자세한 내용은 AWS Secrets Manager 데이터베이스 보안 정보 생성을 참조하세요.
2단계: Amazon RDS 프록시를 위한 AWS Identity and Access Management(IAM) 정책 및 역할 생성
보안 정보 사용 권한이 있는 IAM 역할을 생성한 다음 Amazon RDS가 역할을 맡을 수 있도록 하는 신뢰 정책을 생성합니다.
IAM Secrets Manager 정책 예시
참고: Secret_ARN을 이전에 복사한 보안 정보 관리자 ARN으로 바꾸세요**.**
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"secretsmanager:GetResourcePolicy",
"secretsmanager:GetSecretValue",
"secretsmanager:DescribeSecret",
"secretsmanager:ListSecretVersionIds"
],
"Resource": [
"[Secret_ARN]"
]
},
{
"Sid": "VisualEditor1",
"Effect": "Allow",
"Action": [
"secretsmanager:GetRandomPassword",
"secretsmanager:ListSecrets"
],
"Resource": "*"
}
]
}
예제 IAM RDS 신뢰 정책
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"Service": "rds.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
3단계: RDS 프록시를 생성하여 Lambda 함수에 연결
1. Lambda 콘솔에서 함수페이지를 엽니다.
2. 함수에서 Lambda 함수를 선택합니다.
3. 구성을 선택한 다음 데이터베이스 프록시 추가를 선택합니다.
4. 다음 변수를 입력합니다.
프록시 식별자: 프록시의 이름입니다.
RDS DB 인스턴스: 지원되는 MySQL 또는 PostgreSQL DB 인스턴스 또는 클러스터입니다.
보안 정보: 생성한 Secrets Manager.
IAM 역할: 생성된 IAM 역할.
인증: 데이터베이스 자격 증명으로 연결하려면 암호를 선택하고, 함수의 IAM 자격 증명을 인증에 사용하려면 실행 역할을 선택합니다.
5. Add(추가)를 선택합니다.
프록시 생성을 완료하는 데 몇 분 정도 걸립니다. 프록시를 사용할 수 있게 되면 데이터베이스 엔드포인트 대신 프록시 엔드포인트에 연결하도록 함수를 구성합니다. 자세한 내용은 데이터베이스 프록시 만들기(콘솔)를 참조하세요.
4단계: (선택 사항) Amazon RDS 프록시가 IAM 인증을 사용하고 있는지 확인
다음 단계는 Lambda 실행 역할을 사용하여 Amazon RDS 프록시에 인증하는 경우에만 필요합니다.
1. Amazon RDS 콘솔을 엽니다.
2. 탐색 창에서 프록시를 선택하고 해당하는 프록시를 선택합니다.
3. 작업을 선택하고 수정을 선택하십시오.
4. 연결 모듈에서 IAM 인증이 필수로 설정되어 있는지 확인합니다.
참고: 연결 문제를 경험한다면,
RDS 프록시를 사용하여 Amazon RDS DB 또는 Amazon Aurora DB 인스턴스에 연결할 수 없는 이유는 무엇인가요?를 참조하세요.
자세한 내용은 AWS Lambda에서 Amazon RDS 프록시 사용을 참조하세요.
관련 정보
Amazon RDS DB 인스턴스에 액세스할 때 Lambda의 연결 제한 시간 초과 오류를 해결하려면 어떻게 해야 합니까?
RDS 인스턴스에 연결하도록 Lambda 함수를 구성하려면 어떻게 해야 합니까?
Amazon RDS 프록시를 Lambda 함수에 연결할 때 ‘Lambda could not update the function's execution role’ 오류를 해결하려면 어떻게 해야 합니까?