Amazon RDS 프록시

애플리케이션의 확장성, 복원력, 보안 강화

Amazon RDS Proxy는 Amazon Relational Database Service(RDS)의 완전관리형 및 고가용성 데이터베이스 프록시로, 애플리케이션의 확장성, 데이터베이스 장애에 대한 복원력, 보안을 강화합니다.

현대적 서버리스 아키텍처를 기반으로 구축된 애플리케이션을 비롯하여 많은 애플리케이션이 데이터베이스 서버에 다수의 개방형 연결을 설정할 수 있으며 빠른 속도로 데이터베이스 연결을 열고 닫을 수 있으므로 데이터베이스 메모리와 컴퓨팅 리소스를 소진하게 됩니다. Amazon RDS 프록시를 사용하면 애플리케이션이 데이터베이스와 설정된 연결을 풀링 및 공유할 수 있어 데이터베이스 효율성과 애플리케이션 확장성이 향상됩니다. RDS 프록시를 사용하면 Aurora 및 RDS 데이터베이스의 장애 조치 시간을 최대 66% 단축하고, AWS Secrets Manager 및 AWS Identity and Access Management(IAM)와의 통합을 통해 데이터베이스 자격 증명, 인증 및 액세스를 관리할 수 있습니다.

Amazon RDS 프록시는 코드 변경 없이 대부분의 애플리케이션에 대해 활성화할 수 있습니다. RDS 프록시 사용을 시작하기 위해 추가 인프라를 프로비저닝하거나 관리할 필요가 없습니다. 요금은 기본 데이터베이스 인스턴스의 용량을 기준으로 간단하게 부과됩니다. Amazon Aurora Serverless v2 인스턴스의 경우 Aurora 용량 단위(ACU)당, 프로비저닝된 인스턴스의 경우 vCPU당 비용을 지불합니다. Amazon RDS 프록시는 Amazon Aurora PostgreSQL 호환 에디션, Amazon Aurora MySQL 호환 에디션, Amazon RDS for PostgreSQL, Amazon RDS for MySQL, Amazon RDS for MariaDB 및 Amazon RDS for SQL Server에서 사용할 수 있습니다.

Amazon RDS 프록시 소개(12:13)

RDS 프록시의 이점

Amazon RDS 프록시 인스턴스는 RDS 데이터베이스 인스턴스에 대해 설정된 연결 풀을 유지 관리하므로, 새 연결이 설정될 때 일반적으로 발생하는 데이터베이스 컴퓨팅 및 메모리 리소스를 관리해야 하는 스트레스가 줄어듭니다. 또한 RDS 프록시는 자주 사용하지 않는 데이터베이스 연결을 공유하므로 RDS 데이터베이스에 액세스하는 연결 수가 줄어듭니다. 이러한 연결 풀링을 통해 데이터베이스에서 대량의 빈도와 횟수의 애플리케이션 연결을 효율적으로 지원하여 성능 저하 없이 애플리케이션을 확장할 수 있습니다.
RDS 프록시는 애플리케이션 연결을 유지하면서 새 데이터베이스 인스턴스에 자동으로 연결하여, 데이터베이스 가용성에 영향을 미치는 가동 중단으로 인한 애플리케이션 중단을 최소화합니다. 장애 조치가 발생하면 RDS 프록시는 요청을 새 데이터베이스 인스턴스로 직접 라우팅합니다. 이를 통해 Aurora 및 RDS 데이터베이스의 장애 조치 시간이 최대 66% 단축됩니다. 또한 RDS 프록시는 일반적으로 35초 미만의 장애 조치, 2배 향상된 쓰기 지연 시간, 추가적인 읽기 용량, 마이너 버전 업그레이드 가동 중단 시간을 일반적으로 1초 미만으로 줄일 수 있는 두 개의 읽기 가능한 예비 배포를 포함하는 다중 AZ를 지원합니다.
Amazon RDS 프록시를 사용하면 데이터베이스 액세스에 IAM 인증을 적용할 수 있고, 데이터베이스 보안 인증 정보를 애플리케이션 코드에 하드 코딩하지 않아도 되므로 데이터 보안을 추가로 제어할 수 있습니다. 또한 RDS 프록시를 사용하면 AWS Secrets Manager를 사용해 데이터베이스 보안 인증 정보를 중앙에서 관리할 수 있습니다.
데이터베이스 프록시 서버는 데이터베이스의 추가 부하를 처리하는 데 도움이 됩니다. 기존 프록시 서버를 사용하면 애플리케이션을 더 효과적으로 확장할 수 있지만 배포, 패치 적용 및 관리가 어려워 우수한 제품을 개발하는 데 투자해야 할 시간과 에너지가 허비될 수 있습니다. Amazon RDS 프록시는 자체 프록시 서버를 패치하고 관리해야 하는 추가적인 부담 없이 데이터베이스 프록시의 이점을 제공합니다. RDS 프록시는 완전히 서버리스 방식이며 워크로드에 맞게 자동으로 규모가 조정됩니다.
Amazon RDS 프록시는 지원되는 데이터베이스 엔진의 프로토콜과 완벽하게 호환되므로 애플리케이션 코드를 변경하지 않고도 애플리케이션용으로 RDS 프록시를 배포할 수 있습니다. 애플리케이션 연결을 RDS 데이터베이스 대신 프록시에 연결하기만 하면 나머지는 원활하게 관리됩니다.

작동 방식

Amazon RDS 프록시는 애플리케이션과 관계형 데이터베이스 사이에 위치하여 데이터베이스 연결을 효율적으로 관리하고 애플리케이션의 확장성을 개선합니다.

Amazon RDS 프록시는 어떻게 작동하나요?

사용 사례

서버리스 애플리케이션 개발

Amazon RDS 프록시를 사용하면 관계형 데이터베이스를 보다 효율적으로 사용하는, 확장성과 가용성이 뛰어난 서버리스 애플리케이션을 구축할 수 있습니다. 현대적인 서버리스 애플리케이션은 매우 가변적인 워크로드를 지원하며, 급증하는 새로운 데이터베이스 연결을 열려고 하거나 많은 수의 연결은 열려 있지만 유휴 상태로 유지하려고 할 수 있습니다. 연결이 급증하거나 열린 연결이 많으면 데이터베이스 서버에 부담을 주어 쿼리 속도가 느려지고 애플리케이션 확장성이 제한될 수 있습니다. RDS 프록시를 사용하면 이미 설정된 데이터베이스 연결을 풀링하고 공유하여 서버리스 애플리케이션에서 더 많은 연결로 효율적으로 확장할 수 있습니다. 또한 RDS 프록시를 사용하면 열린 전체 데이터베이스 연결 수를 제어하여 예측 가능한 데이터베이스 성능을 유지할 수 있습니다. 마지막으로, RDS 프록시는 데이터베이스 성능을 저하시킬 수 있는 서비스 불가능한 애플리케이션 연결을 거부하여 서버리스 애플리케이션의 가용성을 유지합니다.

서비스형 소프트웨어(SaaS) 및 전자 상거래 애플리케이션

SaaS 또는 전자 상거래 애플리케이션은 빠른 사용자 응답 시간을 보장하기 위해 많은 수의 데이터베이스 연결을 열어 두는 경우가 많지만, 특정 순간에 실제로 사용되는 것은 이러한 열린 연결 중 일부에 불과할 수 있습니다. 열려 있지만 유휴 상태인 이러한 연결은 여전히 데이터베이스 메모리와 컴퓨팅 리소스를 소비합니다. 대부분 유휴 상태로 유지되는 연결을 지원하기 위해 데이터베이스를 오버프로비저닝하는 대신, RDS 프록시를 사용하여 활성 요청의 처리를 최적화하는 데 필요한 데이터베이스 연결만 설정하면서 애플리케이션에서 유휴 상태의 연결을 유지할 수 있습니다.

FAQ에서 사용 사례 더 살펴보기