RDS 프록시 수정 - Amazon Relational Database Service

RDS 프록시 수정

프록시를 생성한 후 프록시와 연결된 특정 설정을 변경할 수 있습니다. 프록시 자체, 연결된 대상 그룹 또는 둘 다 수정하면 됩니다. 각 프록시에는 연결된 대상 그룹이 있습니다.

중요

클라이언트 인증 유형IAM 인증 필드의 값은 이 프록시에 연결된 모든 Secrets Manager 보안 암호에 적용됩니다. 보안 암호마다 다른 값을 지정하려면 AWS CLI 또는 API를 대신 사용하여 프록시를 수정하세요.

프록시에 대한 설정을 수정하려면
  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/rds/에서 Amazon RDS 콘솔을 엽니다.

  2. 탐색 창에서 Proxies(프록시)를 선택합니다.

  3. 프록시 목록에서 설정을 수정하려는 프록시를 선택하거나 세부 정보 페이지로 이동합니다.

  4. 작업에서 수정을 선택합니다.

  5. 수정할 속성을 입력하거나 선택합니다. 다음을 수정할 수 있습니다.

    • 프록시 식별자 – 새 식별자를 입력하여 프록시 이름을 변경합니다.

    • 유휴 클라이언트 연결 시간 초과 - 유휴 클라이언트 연결 시간 초과의 기간을 입력합니다.

    • IAM 역할 – Secrets Manager에서 보안 암호를 검색하는 데 사용되는 IAM 역할을 변경합니다.

    • Secrets Manager 보안 암호 - Secrets Manager 보안 암호를 추가하거나 제거합니다. 이러한 비밀은 데이터베이스 사용자 이름 및 암호에 해당합니다.

    • 클라이언트 인증 유형 - (PostgreSQL만 해당) 프록시에 대한 클라이언트 연결의 인증 유형을 변경합니다.

    • IAM 인증 - 프록시 연결에 대해 IAM 인증을 요구하거나 허용하지 않습니다.

    • 전송 계층 보안 필요 - 전송 계층 보안(TLS) 요구 사항을 설정하거나 해제합니다.

    • VPC 보안 그룹 - 프록시가 사용할 VPC 보안 그룹을 추가하거나 제거합니다.

    • 향상된 로깅 활성화 - 고급 로깅을 사용하거나 사용 중지하도록 설정합니다.

  6. 수정을 선택합니다.

변경할 설정을 찾지 못한 경우 다음 절차에 따라 프록시의 대상 그룹을 업데이트합니다. 프록시와 연결된 대상 그룹은 물리적 데이터베이스 연결과 관련된 설정을 제어합니다. 각 프록시에는 default라는 하나의 연결된 대상 그룹이 있으며, 이 그룹은 프록시와 함께 자동으로 생성됩니다.

대상 그룹은 프록시 세부 정보 페이지에서만 수정할 수 있으며 Proxies(프록시) 페이지의 목록에서는 수정할 수 없습니다.

프록시 대상 그룹에 대한 설정을 수정하려면
  1. [프록시(Proxies)] 페이지에서 프록시의 세부 정보 페이지로 이동합니다.

  2. 대상 그룹에서 default 링크를 선택합니다. 현재 모든 프록시에는 default라는 단일 대상 그룹이 있습니다.

  3. 기본 대상 그룹에 대한 세부 정보 페이지에서 수정을 선택합니다.

  4. 수정할 수 있는 속성의 새 설정을 선택합니다.

    • 데이터베이스 - 다른 RDS DB 인스턴스 또는 클러스터를 선택합니다.

    • 연결 풀 최대 연결 – 프록시에서 사용할 수 있는 최대 연결 비율을 조정합니다.

    • 세션 고정 필터 - (선택 사항) 세션 고정 필터를 선택합니다. 이렇게 하면 클라이언트 연결 간 데이터베이스 연결을 멀티플렉싱하기 위한 기본 안전 조치를 우회할 수 있습니다. 현재 PostgreSQL에서는 설정이 지원되지 않습니다. EXCLUDE_VARIABLE_SETS만 선택할 수 있습니다.

      이 설정을 활성화하면 어떤 연결의 세션 변수가 다른 연결에 영향을 줄 수 있습니다. 쿼리가 현재 트랜잭션 외부에 설정된 세션 변수 값에 의존하는 경우 이로 인해 오류나 정확성 문제가 발생할 수 있습니다. 애플리케이션이 클라이언트 연결 간에 데이터베이스 연결을 공유해도 안전한지 확인한 후 이 옵션을 사용하는 것이 좋습니다.

      다음과 같은 패턴이 나타나면 안전한 상태로 간주될 수 있습니다.

      • 유효 세션 변수 값에 변경 사항이 없는 SET 명령문이 있습니다(즉 세션 변수에 변경 사항이 없는 경우).

      • 세션 변수 값을 변경하고 동일한 트랜잭션에서 명령문을 실행합니다.

      자세한 내용은 RDS 프록시 고정 방지 단원을 참조하십시오.

    • 연결 대여 시간 초과 - 연결 대여 시간 초과 간격을 조정합니다. 이 설정은 최대 연결 수가 프록시에 이미 사용되고 있는 경우에 적용됩니다. 이 설정은 시간 초과 오류를 반환하기 전에 프록시가 연결을 사용할 수 있을 때까지 기다리는 시간을 지정합니다.

    • 초기화 쿼리 - (선택 사항) 초기화 쿼리를 추가하거나 현재 쿼리를 수정합니다. 각 새 데이터베이스 접속을 열 때 실행할 프록시에 대한 하나 이상의 SQL 문을 지정할 수 있습니다. 이 설정은 일반적으로 각 접속에 표준 시간대 및 문자 집합과 같은 동일한 설정이 있는지 확인하기 위해 SET 문과 함께 사용됩니다. 여러 문의 경우 세미콜론을 구분 기호로 사용합니다. SET x=1, y=2와 같은 단일 SET 문에 여러 변수를 포함할 수도 있습니다.

    대상 그룹 식별자, 데이터베이스 엔진과 같은 특정 속성은 변경할 수 없습니다.

  5. Modify target group(대상 그룹 수정)을 선택합니다.

AWS CLI를 사용하여 프록시를 수정하려면 modify-db-proxy, modify-db-proxy-target-group, deregister-db-proxy-targetsregister-db-proxy-targets 명령을 사용합니다.

modify-db-proxy 명령을 사용하여 다음과 같은 속성을 변경할 수 있습니다.

  • 프록시에서 사용하는 Secrets Manager 보안 암호 집합입니다.

  • TLS가 필요한지 여부입니다.

  • 유휴 클라이언트 시간 초과.

  • 디버깅을 위해 SQL 문에서 추가 정보를 로깅할지 여부입니다.

  • Secrets Manager 보안 암호를 검색하는 데 사용되는 IAM 역할입니다.

  • 프록시에서 사용하는 보안 그룹입니다.

다음 예제에서는 기존 프록시의 이름을 바꾸는 방법을 보여 줍니다.

aws rds modify-db-proxy --db-proxy-name the-proxy --new-db-proxy-name the_new_name

연결 관련 설정을 수정하거나 대상 그룹의 이름을 변경하려면 modify-db-proxy-target-group 명령을 사용합니다. 현재 모든 프록시에는 default라는 단일 대상 그룹이 있습니다. 이 대상 그룹으로 작업하는 경우 프록시 이름을 지정하고 대상 그룹 이름에 default를 지정합니다.

다음 예제에서는 대상 그룹을 사용하여 프록시에 대한 MaxIdleConnectionsPercent 설정을 먼저 확인한 다음 변경하는 방법을 보여 줍니다.

aws rds describe-db-proxy-target-groups --db-proxy-name the-proxy { "TargetGroups": [ { "Status": "available", "UpdatedDate": "2019-11-30T16:49:30.342Z", "ConnectionPoolConfig": { "MaxIdleConnectionsPercent": 50, "ConnectionBorrowTimeout": 120, "MaxConnectionsPercent": 100, "SessionPinningFilters": [] }, "TargetGroupName": "default", "CreatedDate": "2019-11-30T16:49:27.940Z", "DBProxyName": "the-proxy", "IsDefault": true } ] } aws rds modify-db-proxy-target-group --db-proxy-name the-proxy --target-group-name default --connection-pool-config ' { "MaxIdleConnectionsPercent": 75 }' { "DBProxyTargetGroup": { "Status": "available", "UpdatedDate": "2019-12-02T04:09:50.420Z", "ConnectionPoolConfig": { "MaxIdleConnectionsPercent": 75, "ConnectionBorrowTimeout": 120, "MaxConnectionsPercent": 100, "SessionPinningFilters": [] }, "TargetGroupName": "default", "CreatedDate": "2019-11-30T16:49:27.940Z", "DBProxyName": "the-proxy", "IsDefault": true } }

deregister-db-proxy-targetsregister-db-proxy-targets 명령을 사용하여 대상 그룹을 통해 프록시가 연결된 RDS DB 인스턴스를 변경합니다. 현재 각 프록시는 하나의 RDS DB 인스턴스에 연결할 수 있습니다. 대상 그룹은 모든 다중 AZ 구성의 RDS DB 인스턴스에 대한 연결 세부 정보를 추적합니다.

다음 예제는 프록시가 cluster-56-2020-02-25-1399라는 Aurora MySQL 클러스터와 연결된 상태에서 시작합니다. 이 예제에서는 provisioned-cluster라는 다른 클러스터에 연결할 수 있도록 프록시를 변경하는 방법을 보여 줍니다.

RDS DB 인스턴스로 작업하는 경우 --db-instance-identifier 옵션을 지정합니다.

다음 예제에서는 Aurora MySQL 프록시를 수정합니다. Aurora PostgreSQL 프록시는 포트 5432가 있습니다.

aws rds describe-db-proxy-targets --db-proxy-name the-proxy { "Targets": [ { "Endpoint": "instance-9814.demo.us-east-1.rds.amazonaws.com", "Type": "RDS_INSTANCE", "Port": 3306, "RdsResourceId": "instance-9814" }, { "Endpoint": "instance-8898.demo.us-east-1.rds.amazonaws.com", "Type": "RDS_INSTANCE", "Port": 3306, "RdsResourceId": "instance-8898" }, { "Endpoint": "instance-1018.demo.us-east-1.rds.amazonaws.com", "Type": "RDS_INSTANCE", "Port": 3306, "RdsResourceId": "instance-1018" }, { "Type": "TRACKED_CLUSTER", "Port": 0, "RdsResourceId": "cluster-56-2020-02-25-1399" }, { "Endpoint": "instance-4330.demo.us-east-1.rds.amazonaws.com", "Type": "RDS_INSTANCE", "Port": 3306, "RdsResourceId": "instance-4330" } ] } aws rds deregister-db-proxy-targets --db-proxy-name the-proxy --db-cluster-identifier cluster-56-2020-02-25-1399 aws rds describe-db-proxy-targets --db-proxy-name the-proxy { "Targets": [] } aws rds register-db-proxy-targets --db-proxy-name the-proxy --db-cluster-identifier provisioned-cluster { "DBProxyTargets": [ { "Type": "TRACKED_CLUSTER", "Port": 0, "RdsResourceId": "provisioned-cluster" }, { "Endpoint": "gkldje.demo.us-east-1.rds.amazonaws.com", "Type": "RDS_INSTANCE", "Port": 3306, "RdsResourceId": "gkldje" }, { "Endpoint": "provisioned-1.demo.us-east-1.rds.amazonaws.com", "Type": "RDS_INSTANCE", "Port": 3306, "RdsResourceId": "provisioned-1" } ] }

RDS API를 사용하여 프록시를 수정하려면 ModifyDBProxy, ModifyDBProxyTargetGroup, DeregisterDBProxyTargetsRegisterDBProxyTargets 작업을 사용합니다.

ModifyDBProxy를 사용하면 다음과 같은 속성을 변경할 수 있습니다.

  • 프록시에서 사용하는 Secrets Manager 보안 암호 집합입니다.

  • TLS가 필요한지 여부입니다.

  • 유휴 클라이언트 시간 초과.

  • 디버깅을 위해 SQL 문에서 추가 정보를 로깅할지 여부입니다.

  • Secrets Manager 보안 암호를 검색하는 데 사용되는 IAM 역할입니다.

  • 프록시에서 사용하는 보안 그룹입니다.

ModifyDBProxyTargetGroup을 사용하여 연결 관련 설정을 수정하거나 대상 그룹의 이름을 바꿀 수 있습니다. 현재 모든 프록시에는 default라는 단일 대상 그룹이 있습니다. 이 대상 그룹으로 작업하는 경우 프록시 이름을 지정하고 대상 그룹 이름에 default를 지정합니다.

DeregisterDBProxyTargetsRegisterDBProxyTargets를 사용하여 대상 그룹을 통해 프록시가 연결된 RDS DB 인스턴스를 변경합니다. 현재 각 프록시는 하나의 RDS DB 인스턴스에 연결할 수 있습니다. 대상 그룹은 다중 AZ 구성의 RDS DB 인스턴스에 대한 연결 세부 정보를 추적합니다.