Amazon RDS 프록시

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

Amazon RDS Proxy를 선택해야 하는 이유

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

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

Amazon RDS 프록시는 코드 변경 없이 대부분의 애플리케이션에 대해 활성화할 수 있습니다. Amazon RDS Proxy 사용을 시작하기 위해 추가 인프라를 프로비저닝하거나 관리할 필요가 없습니다. 요금은 기본 데이터베이스 인스턴스의 용량을 기준으로 간단하게 부과됩니다. 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 Proxy의 이점

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

사용 사례

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

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

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

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

예측할 수 있는 워크로드가 포함된 애플리케이션

매우 가변적인 워크로드를 지원하는 애플리케이션은 다량의 새 데이터베이스 연결을 열려고 시도할 수 있습니다. Amazon RDS Proxy의 연결 거버넌스를 통해 고객은 데이터베이스 연결을 효율적으로 재사용하여 예측 불가능한 워크로드를 처리하는 애플리케이션을 적절하게 규모 조정할 수 있습니다. 첫째, Amazon RDS Proxy를 사용하면 여러 애플리케이션 연결에서 데이터베이스 연결을 공유할 수 있으므로 데이터베이스 리소스를 효율적으로 사용할 수 있습니다. 둘째, Amazon RDS Proxy를 사용하면 고객은 열린 데이터베이스 연결 수를 조절하여 예측 가능한 데이터베이스 성능을 유지할 수 있습니다. 셋째, Amazon RDS Proxy는 처리할 수 없는 애플리케이션 요청을 제거하여 애플리케이션의 전반적인 성능 및 가용성을 유지합니다.