반응형
◇ 공부 기록용으로 작성하였으니 틀린 점, 피드백 주시면 감사하겠습니다 ◇
RDS Proxy
Application - RDS Proxy - RDS (Aurora)
- RDS proxy는 애플리케이션과 DB사이에서 Proxy layer를 제공하는 Fully managed 프록시 서비스이다.
- Amazon RDS와 Aurora 를 지원한다.
- 쉽게 말해, RDS Proxy는 DB 앞에 위치한 "대리인(Proxy)" 역할을 한다.
- DB 접속 관리를 효율적으로 만들고 어플리케이션의 성능이나 Scalability & Availability 까지 향상할 수 있다.
- 연결 풀(Connection Pool)을 사용하여 데이터베이스 연결을 효율적으로 관리한다.
- 애플리케이션이 데이터베이스에 새로운 연결을 자주 생성하거나 끊을 필요가 없어지며, 데이터베이스 서버의 부하가 감소된다.
- 데이터베이스의 Multi-AZ(다중 가용 영역) 배치와 failover(장애 조치)을 지원하여 새로운 인스턴스로 자동으로 라우팅한다.
- 예시) Multi AZ의 RDS의 프라이머리 DB 인스턴스가 장애를 겪는 경우, RDS Proxy는 프라이머리 인스턴스에 대한 연결이 실패한 것을 감지한다. 그런 다음 자동으로 Secondary 인스턴스로 연결을 재라우팅한다.
- 특히 서버리스 아키텍쳐나 마이크로 서비스 아키텍처에서 자주 사용된다. → AWS Lambda
빈번히 DB 연결의 접속과 차단이 필요한 어플리케이션일 경우, 게다가 높은 가용성을 필요한 경우
→ RDS Proxy 활용하기
RDS에 Proxy가 왜 필요한가??????
기존의 RDS의 연결 문제점
- DB에 연결이 많을 수록 DB 서버의 CPU와 메모리 사용량이 증가한다.
- 이로 인해 DB 리소스 안에서 query 실행을 하기 위한 리소스에 배당하기 어려워진다.
- 특히 AWS Lambda를 기반으로 하는 서비리스 어플리케이션은 짧은 시간에 수천 개의 DB 접속을 만든다.
RDS Proxy의 작동방식
- RDS Proxy는 Connection Pooling(연결 풀)이라는 것을 활용한다.
- Connection Pooling을 통해 DB 연결을 공유한다. → DB 연결을 re-use(재사용) 할 수 있게 한다.
- 이를 통해 DB 서버에 부하를 줄이고 어플리케이션의 성능을 개선할 수 있다.
- 클라이언트/어플리케이션은 RDS Proxy의 엔드포인트를 통해 연결한다.
연결 풀링(Connection Pooling)
원래부터 있는 IT용어이다.
DB에 대한 연결을 효율적으로 하는 기술이다.
어플리케이션이나 DBMS에 접속할 경우, 접근 요청을 할 때마다 DB에게 접속이나 끄기를 반복하는 것이 아닌,
한번 형성된 접속을 유지해서 계속 사용할 수 있는 방법이다.
이를 쉽게 설명하면, 연결 풀(Connection Pool)은 여러 개의 미리 만들어진 "DB 연결"을 저장해 두는 일종의 "연결 저장소"이다.
RDS Proxy 특징 정리
- 연결 풀링
- RDS Proxy는 연결 풀링을 사용하여 여러 데이터베이스 연결을 효율적으로 관리한다.
- 애플리케이션이 데이터베이스에 새로운 연결을 빈번하게 설정하고 해제할 필요가 없어 데이터베이스 서버의 부하를 줄일 수 있다.
- 또한, 한 번 설정된 데이터베이스 연결을 풀 내에서 유지하고 필요에 따라 재사용하므로 연결 설정에 소요되는 시간과 리소스를 절약할 수 있다.
- failover (페일오버) 지원
- RDS Proxy는 DB의 페일오버 시 연결을 관리하고, 새로운 DB 인스턴스로 자동으로 라우팅한다.
- 또한, Multi-AZ 배치를 지원하여 애플리케이션의 다운타임을 최소화할 수 있다.
- 예시) Multi AZ의 RDS의 프라이머리 DB 인스턴스가 장애를 겪는 경우, RDS Proxy는 프라이머리 인스턴스에 대한 연결이 실패한 것을 감지한다. 그런 다음 자동으로 Secondary 인스턴스로 연결을 재라우팅한다.
- 보안
- RDS Proxy는 IAM 및 Secrets Manager와 통합되어 데이터베이스 인증 정보를 안전하게 관리한다.
- 이를 통해 DB 인증 정보의 보안이 강화되고 접근 제어도 용이해진다.
참고자료)
https://medium.com/@mrdevsecops/rds-proxy-overview-4640a13fc70e
728x90
반응형
'클라우드(AWS) > RDS' 카테고리의 다른 글
[AWS] RDS Event Notification (이벤트 알림)이란? (0) | 2024.09.04 |
---|---|
[AWS] RDS Storage Auto Scaling란? 쉽게 정리 (0) | 2024.08.11 |
[AWS] RDS와 Aurora란? 쉽게 개념 정리 (Snapshot, Automated Backups, Multi-AZ, Read Replica, 데이터 암호화) (0) | 2024.03.07 |