RDS Proxy 사용 대상 계획 - Amazon Relational Database Service

RDS Proxy 사용 대상 계획

RDS Proxy를 사용하여 가장 많은 혜택을 누릴 수 있는 DB 인스턴스, 클러스터 및 애플리케이션을 결정할 수 있습니다. 이렇게 하려면 다음 요소를 고려하십시오.

  • '연결이 너무 많음' 오류가 발생한 DB 인스턴스는 프록시와 연결하기에 좋은 후보입니다. 이는 종종 ConnectionAttempts CloudWatch 지표의 값이 높다는 특징이 있습니다. 프록시를 사용하면 애플리케이션은 많은 클라이언트 연결을 열 수 있고, 프록시는 DB 인스턴스에 대한 장기 연결을 더 적게 관리합니다.

  • T2 또는 T3 같이 더 작은 규모의 AWS 인스턴스 클래스를 사용하는 DB 인스턴스의 경우 프록시를 사용하면 메모리 부족 상태를 방지할 수 있습니다. 또한 연결을 설정하는 데 필요한 CPU 오버헤드를 줄일 수 있습니다. 이러한 상태는 많은 수의 연결을 처리할 때 발생할 수 있습니다.

  • 또한 특정 Amazon CloudWatch 지표를 모니터링하여 DB 인스턴스에서 특정 유형의 제한에 접근하는지 확인할 수 있습니다. 이러한 제한은 연결 수와 연결 관리와 관련된 메모리에 대한 것입니다. 또한 특정 CloudWatch 지표를 모니터링하여 DB 인스턴스에서 수명이 짧은 여러 연결을 처리하고 있는지 확인할 수 있습니다. 이러한 연결을 열고 닫으면 데이터베이스에 성능 오버헤드가 발생할 수 있습니다. 모니터링할 지표에 대한 자세한 내용은 Amazon CloudWatch를 사용한 RDS 프록시 지표 모니터링 단원을 참조하십시오.

  • AWS Lambda 함수도 프록시를 사용하기 위한 좋은 후보가 될 수 있습니다. 이러한 함수는 RDS Proxy가 제공하는 연결 풀링의 이점을 누릴 수 있는 단기 데이터베이스 연결을 자주 만듭니다. Lambda 애플리케이션 코드에서 데이터베이스 자격 증명을 관리하는 대신 Lambda 함수에 대해 이미 가지고 있는 IAM 인증을 활용할 수 있습니다.

  • 일반적으로 많은 수의 데이터베이스 연결을 열고 닫으며 내장된 연결 풀링 메커니즘이 없는 애플리케이션이 프록시를 사용하기에 적합합니다.

  • 오랜 기간 동안 많은 수의 연결을 열린 상태로 유지하는 애플리케이션은 일반적으로 프록시를 사용하는 것이 좋습니다. SaaS(Software as a Service) 또는 전자 상거래와 같은 업종의 애플리케이션은 연결을 열린 상태로 두고 데이터베이스 요청에 대한 지연 시간을 최소화하는 경우가 많습니다. RDS 프록시를 사용하면 애플리케이션은 DB 인스턴스에 직접 연결할 때보다 더 많은 연결을 열어 둘 수 있습니다.

  • 모든 DB 인스턴스에 대해 이러한 인증을 설정하기는 복잡하기 때문에 IAM 인증 Secrets Manager를 채택하지 않았을 수 있습니다. 그렇다면 기존 인증 방법을 그대로 두고 인증을 프록시에 위임할 수 있습니다. 프록시는 특정 애플리케이션에 대한 클라이언트 연결에 인증 정책을 적용할 수 있습니다. Lambda 애플리케이션 코드에서 데이터베이스 자격 증명을 관리하는 대신 Lambda 함수에 대해 이미 가지고 있는 IAM 인증을 활용할 수 있습니다.

  • RDS 프록시를 사용하면 데이터베이스 장애에 대해 애플리케이션 복원력이 높아지고 투명성이 높아집니다. RDS 프록시는 도메인 이름 시스템(DNS) 캐시를 우회하여 Aurora RDS 다중 AZ DB 인스턴스의 장애 조치 시간을 최대 66% 단축합니다. 또한 RDS 프록시는 애플리케이션 연결을 유지하면서 트래픽을 새 데이터베이스 인스턴스로 자동 라우팅합니다. 따라서 애플리케이션의 장애 조치 투명성이 높아집니다.