RDS Proxy를 위한 네트워크 사전 조건 설정하기
RDS Proxy를 위한 네트워크 사전 조건 설정하기 (Setting up network prerequisites for RDS Proxy)
RDS Proxy를 사용하려면 RDS DB 인스턴스와 RDS Proxy 사이에 공통된 VPC가 있어야 해요. 여기서 필요한 네트워크 구성 방법을 설명해요.
출처: 문서
본문
RDS Proxy를 사용하려면 RDS DB 인스턴스와 RDS Proxy 사이에 공통된 가상 사설 클라우드(VPC)가 있어야 해요. 이 VPC에는 서로 다른 가용 영역에 있는 최소 2개의 서브넷이 있어야 해요. 계정이 이 서브넷을 직접 소유하거나 다른 계정과 공유할 수 있어요. VPC 공유에 대한 자세한 내용은 공유 VPC 사용하기(Work with shared VPCs)를 참조하세요.
IPv6를 지원하려면 추가 네트워크 구성이 필요해요.
- IPv6 엔드포인트 네트워크 유형 – VPC와 서브넷이 IPv6를 지원하도록 구성되어야 해요. 여기에는 VPC와 서브넷에 IPv6 CIDR 블록을 할당하는 것이 포함돼요.
- 듀얼 스택 엔드포인트 네트워크 유형 – VPC와 서브넷이 IPv4와 IPv6 주소를 모두 지원해야 해요.
- IPv6 대상 연결 네트워크 유형 – 데이터베이스가 프록시의 IPv6 연결을 지원하려면 듀얼 스택 모드로 구성되어야 해요.
클라이언트 애플리케이션 리소스(예: Amazon EC2, Lambda, Amazon ECS)는 프록시와 같은 VPC에 있을 수도 있고, 프록시와 별도의 VPC에 있을 수도 있어요. RDS DB 인스턴스에 성공적으로 연결해 본 적이 있다면 이미 필요한 네트워크 리소스를 갖추고 있는 거예요.
Topics
- 서브넷 정보 가져오기 (Getting information about your subnets)
- IP 주소 용량 계획하기 (Planning for IP address capacity)
서브넷 정보 가져오기 (Getting information about your subnets)
프록시를 생성하려면 프록시가 운영되는 서브넷과 VPC를 제공해야 해요. 다음 Linux 예시는 AWS 계정이 소유한 VPC와 서브넷을 검사하는 AWS CLI 명령을 보여줘요. 특히 CLI로 프록시를 생성할 때 서브넷 ID를 매개변수로 전달해요.
aws ec2 describe-vpcs
aws ec2 describe-internet-gateways
aws ec2 describe-subnets --query '*[].[VpcId,SubnetId]' --output text | sort
다음 Linux 예시는 특정 RDS DB 인스턴스에 해당하는 서브넷 ID를 확인하는 AWS CLI 명령을 보여줘요. DB 인스턴스의 VPC ID를 찾고 VPC를 검사해서 서브넷을 찾아요. 다음 Linux 예시가 그 방법을 보여줘요.
$ #DB 인스턴스에서 DBSubnetGroup과 Subnets를 추적해 서브넷 ID를 찾습니다.
$ aws rds describe-db-instances --db-instance-identifier my_instance_id --query '*[].[DBSubnetGroup]|[0]|[0]|[Subnets]|[0]|[*].SubnetIdentifier' --output text
subnet_id_1
subnet_id_2
subnet_id_3
...
$ #DB 인스턴스에서 VPC를 찾습니다.
$ aws rds describe-db-instances --db-instance-identifier my_instance_id --query '*[].[DBSubnetGroup]|[0]|[0].VpcId' --output text
my_vpc_id
$ aws ec2 describe-subnets --filters Name=vpc-id,Values=my_vpc_id --query '*[].[SubnetId]' --output text
subnet_id_1
subnet_id_2
subnet_id_3
subnet_id_4
subnet_id_5
subnet_id_6
IP 주소 용량 계획하기 (Planning for IP address capacity)
RDS Proxy는 등록된 DB 인스턴스의 크기와 수에 따라 필요한 용량을 자동으로 조정해요. 일부 작업에는 추가 프록시 용량이 필요할 수도 있어요. 예를 들어 등록된 데이터베이스의 크기를 늘리거나 RDS Proxy 내부 유지 관리 작업이 여기에 해당해요. 이러한 작업 중에는 프록시가 추가 용량을 프로비저닝하기 위해 더 많은 IP 주소가 필요할 수 있어요. 이렇게 추가된 주소 덕분에 프록시는 워크로드에 영향을 주지 않고 확장할 수 있어요. 서브넷에 사용 가능한 IP 주소가 부족하면 프록시가 확장되지 못해요. 이로 인해 쿼리 지연 시간이 늘어나거나 클라이언트 연결이 실패할 수 있어요.
서브넷에 사용 가능한 IP 주소가 충분하지 않으면 RDS가 이벤트 RDS-EVENT-0243을 통해 알려줘요. 이 이벤트에 대한 자세한 내용은 RDS Proxy 이벤트 사용하기(Working with RDS Proxy events)를 참조하세요.
참고
RDS Proxy는 VPC의 프록시마다 215개를 초과하는 IP 주소를 소비하지 않아요.
DB 인스턴스 클래스 크기에 따라 프록시를 위해 서브넷에 다음과 같은 최소 개수의 사용 가능한 IP 주소를 예약하세요.
| DB 인스턴스 클래스 | 최소 사용 가능 IP 주소 수 |
|---|---|
| db.*.xlarge 이하 | 10 |
| db.*.2xlarge | 15 |
| db.*.4xlarge | 25 |
| db.*.8xlarge | 45 |
| db.*.12xlarge | 60 |
| db.*.16xlarge | 75 |
| db.*.24xlarge | 110 |
이 권장 IP 주소 수는 기본 엔드포인트만 있는 프록시에 대한 추정치예요. 추가 엔드포인트나 읽기 복제본이 있는 프록시는 더 많은 사용 가능한 IP 주소가 필요할 수 있어요. 추가 엔드포인트마다 사용 가능한 IP 주소를 3개 더 예약하는 것이 좋아요. 읽기 복제본마다 해당 읽기 복제본의 크기에 따라 표에 지정된 대로 IP 주소를 추가로 예약하는 것이 좋아요.