AWS(Amazon Web Service)

[AWS] RDS Proxy

yunseohhe 2024. 10. 11. 18:15

RDS Proxy

  • 완전 관리형 RDS 데이터베이스 프록시도 배포할 수 있다.
  • 애플리케이션이 데이터베이스 내에서 데이터베이스 연결 풀을 형성하고 공유할 수 있다.
      (RDS 데이터베이스에 바로 액세스하면 되는데 왜 프록시가 필요한지에 대한 답변이라고 볼 수 있다)
      - 애플리케이션을 RDS 데이터베이스 인스턴스에 일일이 연결하는 대신 프록시에 연결하면 프록시가 하나의 풀에 연결을 모아 RDS 데이터베이스 인스턴스로 가는 연결이 줄어들게 된다.
  • (RDS 데이터베이스 인스턴스에 연결이 많은 경우) CPU와 RAM 등 데이터베이스 리소스의 부담을 줄여 데이터베이스 효율성을 향상시킬 수 있고, 데이터베이스에 개방된 연결과 시간초과를 최소화할 수 있다.
  • 완전한 서버리스로 오토 스케일링이 가능해 용량을 관리할 필요가 없고, 가용성이 높다.
      : 다중 AZ도 지원한다.
  • RDS 데이터베이스 인스턴스에 장애 조치가 발생하면
      - 기본 인스턴스가 아니라 대기 인스턴스로 실행되며  RDS 프록시 덕분에 RDS와 Aurora의 장애 조치 시간을 66%까지 줄일 수 있다.
      - 메인 RDS 데이터베이스 인스턴스에 애플리케이션을 모두 연결하고, 장애 조치를 각자 처리하게 하는 대신 장애조치와 무관한 RDS 프록시에 연결하는 것이다. RDS 프록시가 장애 조치가 발생한 RDS 데이터베이스 인스턴스를 처리하므로 장애 조치 시간이 개선된다.
  • MySQL, PostgreSQL, MariaDM용 RDS를 지원하고, MySQL, PostgreSQL용 Aurora를 지원한다.
  • 애플리케이션의 코드를 변경하지 않아도 된다.
      : RDS 데이터베이스 인스턴스나  Aurora 데이터베이스에 연결하는 대신 RDS 프록시에 연결하기만 하면 된다.
  • IAM 인증을 통해서만 RDS 데이터베이스 인스턴스에 연결하도록 할 수 있다.
     (데이터베이스에 IAM 인증을 강제함으로써)
      : 이때의 자격증명은 AWS Secrets Manager 서비스에 안전하게 저장된다.
      : 즉, 데이터베이스에 IAM 인증을 강제하고 싶다면 RDS 프록시를 사용하는 것이 좋다.
  • 퍼블릭 액세스가 절대로 불가능하다.
      : VPC내에서만 액세스 가능하다.

(출처 : 구글이미지)

  • 위의 이미지를 보면 Lambda 함수가 여러 개가 생성되고 사라지는 속도도 매우 빠르다. RDS 데이터베이스 인스턴스에 수만 개의 Lambda함수가 순식간에 발생했다 사라지며 연결을 개방한다고 생각해보자.
      - 개방된 연결에 시간초과도 생길 테니 난장판이 될 것이다. 따라서, RDS 프록시를 사용하여 Lambda 함수의 연결 풀을 생성하면 Lambda 함수가 RDS 프록시를 오버로드한다. RDS 프록시가 풀을 생성하면 RDS 데이터베이스 인스턴스 연결이 줄어 문제가 해결된다.

'AWS(Amazon Web Service)' 카테고리의 다른 글

[AWS] 알아두면 좋은 포트 목록  (0) 2024.10.12
[AWS] ElastiCache  (1) 2024.10.12
[AWS] RDS & Aurora Security  (0) 2024.10.10
[AWS] RDS & Aurora 백업  (1) 2024.10.09
[AWS] Aurora Replicas(복제본)  (2) 2024.10.08