

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Amazon RDS 프록시를 사용하여 애플리케이션 확장성, 성능 및 가용성 향상
<a name="introduction"></a>



**Anand Komandooru, Noorul Hasan, Venkat Nalajala 및 Varun Kumar 공저, Amazon Web Services(AWS)

*2022년 10월*

이 가이드에서는 데이터베이스 연결 풀링의 필요성, 자체 호스팅 솔루션 구현과 관련된 과제, Amazon Web Services(AWS)의 애플리케이션 아키텍처에서 Amazon RDS for PostgreSQL과 함께 [Amazon Relational Database Service(RDS) 프록시](https://aws.amazon.com/rds/proxy/)를 사용할 때의 이점을 안내합니다.

## 챌린지
<a name="challenge"></a>

PostgreSQL은 [process-per-user 클라이언트/서버 모델을](https://www.postgresql.org/docs/8.3/connect-estab.html) 사용하여 구현됩니다. 새 연결이 수신되면 기본 프로세스는 이 새 연결을 처리하기 위한 하위 프로세스를 시작합니다. 그러면 기본 프로세스가 다음 연결을 기다리고 하위 프로세스가 이 새 클라이언트 연결과 관련된 모든 활동을 처리합니다. 데이터베이스에서 수신한 각 새 연결에 대해 새 하위 프로세스가 시작됩니다.

현대의 서버리스 아키텍처를 기반으로 구축된 애플리케이션을 비롯한 많은 애플리케이션이 데이터베이스 서버에 대한 개방형 연결을 많이 가질 수 있습니다. 이러한 애플리케이션은 빠른 속도로 데이터베이스 연결을 열고 닫아 데이터베이스 메모리와 컴퓨팅 리소스를 소진할 수 있습니다.

연결을 자주 열고 닫는 트랜잭션 애플리케이션은 연결 지연 시간이 더 길어서 초당 트랜잭션 수가 줄어듭니다. 이로 인해 애플리케이션 지연 시간이 늘어납니다.

기본 데이터베이스 인스턴스에 액세스할 수 없게 되면 장애 조치가 발생하고 다른 인스턴스가 새 기본 인스턴스가 됩니다. 이로 인해 클라이언트 연결이 중단됩니다. 롤링 업그레이드와 같은 관리 작업으로 인해 발생하는 장애 조치는 계획된 것이고, 장애로 인해 발생하는 장애 조치는 계획되지 않은 것입니다. 두 경우 모두 운영자는 가동 중지 시간을 줄여 클라이언트 중단을 최소화해야 합니다.

## 통례
<a name="common-practice"></a>

애플리케이션 확장성 및 성능 문제를 해결하기 위해 연결 풀이 사용됩니다. 연결 풀링은 기존 연결을 재사용하여 연결 지연 시간을 크게 줄이고 서버의 데이터베이스 처리량(초당 트랜잭션 수)을 늘릴 수 있습니다. 연결 풀은 연결 풀에서 즉시 제공할 수 없는 애플리케이션 연결을 대기열에 넣거나 제한합니다.

이러한 연결 풀링을 구현한 후 추가적인 문제가 발생합니다. 운영자는 연결 풀링 서비스를 운영하기 위해 인프라와 소프트웨어를 직접 관리해야 합니다. 장애 조치 이벤트를 처리하려면 애플리케이션 개발자가 모든 애플리케이션의 연결 복잡성을 관리해야 합니다. 애플리케이션은 연결 실패를 탐지하고, 새 기본 서버를 검색하고, 가능한 한 빨리 다시 연결해야 합니다.

## 권장 사항
<a name="recommendation"></a>

자체 호스팅 연결 풀링 솔루션과 관련된 문제를 줄이면서 이점을 활용하려면 워크로드에 대해 [Amazon RDS 프록시](https://aws.amazon.com/rds/proxy/)를 평가하는 것이 좋습니다.

RDS 프록시는 완전관리형 고가용성 데이터베이스 프록시입니다. RDS 프록시는 [연결 풀링](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-proxy.howitworks.html#rds-proxy-connection-pooling)을 사용하여 애플리케이션의 확장성을 높이고, 데이터베이스 장애에 대한 복원력을 높이고, 보안을 강화합니다.