RDS 프록시
프록시의 역할
- 프록시가 필요한 이유:
- 애플리케이션이 데이터베이스 내에서 데이터베이스 연결 풀을 형성하고 공유할 수 있도록 합니다.
- 애플리케이션이 RDS 데이터베이스 인스턴스에 일일이 연결하는 대신 프록시에 연결하면, RDS 데이터베이스 인스턴스로 가는 연결이 줄어듭니다.
- 연결이 많으면 CPU 혹은 RAM에 부담을 주고 개방된 연결에 시간 초과를 유발할 수 있습니다.
예시:
- 여러 사용자가 접속하는 애플리케이션에서 각 사용자가 데이터베이스에 직접 연결한다면, 각 연결이 데이터베이스 리소스를 많이 차지하게 됩니다. 프록시를 통해 연결하면, 사용자는 프록시를 통해 데이터베이스와 연결되며, 데이터베이스 인스턴스로 가는 연결 수가 줄어들어 리소스 사용이 최적화됩니다.
RDS 프록시의 장점
- 서버리스:
- 완전 서버리스로 자동 스케일링이 가능하며, 다중 AZ를 지원합니다.
예시:
- 갑작스러운 트래픽 증가 시에도 프록시는 자동으로 스케일링되어 안정적인 성능을 유지할 수 있습니다.
- 보안:
- IAM 인증을 강제하고, 인증을 통해서만 RDS 데이터베이스에 연결할 수 있습니다.
- VPC에서만 사용 가능하며 퍼블릭 접근이 불가능합니다.
예시:
- 회사 내부 네트워크에서만 접근이 가능하도록 설정하여 외부 침입을 방지할 수 있습니다.
- 효율성:
- Lambda 함수와 함께 사용할 때 유용합니다.
- Lambda 함수는 증식하고 빠르게 사라지는 특성이 있어, 사라질 때마다 연결하고 끊을 필요 없이 프록시를 사용하면 연결 풀을 통해 RDS 인스턴스 연결이 줄어듭니다.
예시:
- 이벤트 기반으로 작동하는 Lambda 함수가 데이터를 처리할 때마다 데이터베이스에 연결하고 해제하는 작업을 반복하지 않아도 되므로, 효율성과 성능이 크게 향상됩니다.