Amazon RDS 프록시 엔드포인트 작업
다음에서 RDS Proxy 엔드포인트와 그 사용 방법에 대해 배울 수 있습니다. 엔드포인트를 사용하면 다음과 같은 기능을 활용할 수 있습니다.
-
프록시와 함께 여러 엔드포인트를 사용하여 여러 애플리케이션의 연결을 독립적으로 모니터링하고 문제를 해결할 수 있습니다.
-
Aurora DB 클러스터에 리더 엔드포인트를 사용하면 쿼리 집약적 애플리케이션의 읽기 확장성과 고가용성을 높일 수 있습니다.
-
VPC 간 엔드포인트를 사용하면 다른 VPC의 Amazon EC2 인스턴스와 같은 리소스에서 특정 VPC의 데이터베이스에 액세스하도록 허용할 수 있습니다.
주제
프록시 엔드포인트 개요
RDS Proxy 엔드포인트 작업을 수행하려면 Aurora DB 클러스터 및 리더 엔드포인트, RDS 인스턴스 엔드포인트와 동일한 절차를 따릅니다. RDS 엔드포인트에 익숙하지 않은 경우 MySQL 데이터베이스 엔진 기반 DB 인스턴스에 연결하기 및 PostgreSQL 데이터베이스 엔진 기반 DB 인스턴스에 연결하기에서 자세한 내용을 참조하세요.
기본적으로, Aurora 클러스터에 RDS Proxy를 사용할 때 연결하는 엔드포인트에는 읽기/쓰기 기능이 있습니다. 따라서 이 엔드포인트는 모든 요청을 클러스터의 라이터 인스턴스로 보냅니다. 이러한 모든 연결은 라이터 인스턴스의 max_connections
값에 포함됩니다. 프록시가 Aurora DB 클러스터에 연결되어 있는 경우, 해당 프록시에 대해 추가 읽기/쓰기 또는 읽기 전용 엔드포인트를 생성할 수 있습니다.
읽기 전용 쿼리를 위해 프록시와 함께 읽기 전용 엔드포인트를 사용할 수 있습니다. Aurora 프로비저닝된 클러스터에 리더 엔드포인트를 사용하는 것과 동일한 방식으로 이를 수행합니다. 이렇게 하면 하나 이상의 리더 DB 인스턴스가 있는 Aurora 클러스터의 읽기 확장성을 활용할 수 있습니다. 읽기 전용 엔드포인트를 사용하고 필요에 따라 Aurora 클러스터에 리더 DB 인스턴스를 더 추가하여 동시 쿼리를 더 많이 실행하고 동시 연결을 더 많이 생성할 수 있습니다.
생성한 프록시 엔드포인트의 경우, 엔드포인트를 프록시 자체에 사용되는 다른 Virtual Private Cloud(VPC)와 연결할 수도 있습니다. 이렇게 하면 조직의 다른 애플리케이션에 사용되는 VPC와 같은 다른 VPC에서 프록시에 연결할 수 있습니다.
프록시 엔드포인트과 관련한 제한 사항에 대한 자세한 내용은 프록시 엔드포인트에 대한 제한 사항 섹션을 참조하세요.
RDS Proxy 로그에서 각 항목에는 연결된 프록시 엔드포인트의 이름이 접두사로 붙습니다. 이 이름은 사용자 정의 엔드포인트에 지정한 이름일 수 있습니다. 또는 프록시의 기본 엔드포인트를 사용하는 읽기/쓰기 요청을 위한 default
인 특수한 이름일 수 있습니다.
각 프록시 엔드포인트에는 일련의 자체 CloudWatch 지표가 있습니다. 프록시의 모든 엔드포인트에 대한 지표를 모니터링할 수 있습니다. 특정 엔드포인트 또는 프록시의 모든 읽기/쓰기 또는 읽기 전용 엔드포인트에 대한 지표를 모니터링할 수도 있습니다. 자세한 내용은 Amazon CloudWatch를 사용한 RDS 프록시 지표 모니터링 섹션을 참조하세요.
프록시 엔드포인트는 연결된 프록시와 동일한 인증 메커니즘을 사용합니다. RDS Proxy는 연결된 프록시의 속성과 일치하는 사용자 정의 엔드포인트에 대한 권한 및 승인을 자동으로 설정합니다.
리더 엔드포인트
RDS Proxy에서 리더 엔드포인트를 생성하고 사용할 수 있습니다. 하지만 이러한 엔드포인트는 Aurora DB 클러스터에 연결된 프록시에 대해서만 작동합니다. AWS Management Console에 리더 엔드포인트에 대한 참조가 표시될 수 있습니다. RDS CLI 또는 API를 사용하는 경우 값이 TargetRole
인 READ_ONLY
속성이 표시될 수 있습니다. 프록시 대상을 RDS DB 인스턴스에서 Aurora DB 클러스터로 변경하면 이 기능을 활용할 수 있습니다. 리더 엔드포인트에 대한 자세한 내용은 Aurora 사용 설명서에서 Amazon RDS Proxy와의 연결 관리를 참조하세요.
VPC 간에 Aurora 및 RDS 데이터베이스 액세스
기본적으로 RDS의 구성 요소 및 Aurora 기술 스택은 모두 동일한 Amazon VPC에 있습니다. 예를 들어 Amazon EC2 인스턴스에서 실행되는 애플리케이션이 Amazon RDS DB 인스턴스 또는 Aurora DB 클러스터에 연결한다고 가정합니다. 이 경우 애플리케이션 서버와 데이터베이스가 모두 동일한 VPC 내에 있어야 합니다.
RDS Proxy를 사용하면 다른 VPC의 EC2 인스턴스와 같은 리소스에서 VPC의 Aurora 클러스터 또는 RDS 인스턴스에 대한 액세스 권한을 설정할 수 있습니다. 예를 들어 조직에 동일한 데이터베이스 리소스에 액세스하는 애플리케이션이 여러 개 있을 수 있습니다. 각 애플리케이션은 자체 VPC에 있을 수 있습니다.
VPC 간 액세스를 활성화하려면 프록시를 위한 새 엔드포인트를 생성합니다. 프록시 엔드포인트를 생성하는 데 익숙하지 않은 경우 Amazon RDS 프록시 엔드포인트 작업에서 자세한 내용을 참조하세요. 프록시 자체는 Aurora DB 클러스터 또는 RDS 인스턴스와 도일한 VPC에 상주합니다. 하지만 VPC 간 엔드포인트는 EC2 인스턴스 등의 다른 리소스와 함께 다른 VPC에 상주합니다. VPC 간 엔드포인트는 EC2 및 기타 리소스와 동일한 VPC의 서브넷 및 보안 그룹과 연결됩니다. 이러한 연결을 사용하면 VPC 제한으로 인해 데이터베이스에 액세스할 수 없는 애플리케이션이 엔드포인트에 연결할 수 있습니다.
다음 단계에서는 RDS Proxy를 통해 VPC 간 엔드포인트를 생성하고 액세스하는 방법을 설명합니다.
-
VPC 2개를 생성하거나 Aurora RDS 작업에 이미 사용 중인 VPC 2개를 선택합니다. 각 VPC에는 인터넷 게이트웨이, 라우팅 테이블, 서브넷 및 보안 그룹과 같은 연결된 자체 네트워크 리소스가 있어야 합니다. VPC가 하나만 있는 경우 Amazon RDS 시작하기에서 RDS를 성공적으로 사용하기 위해 다른 VPC를 설정하는 단계를 참조하세요. 또한 Amazon EC2 콘솔에서 기존 VPC를 조사하여 함께 연결할 리소스의 종류를 확인할 수 있습니다.
-
연결할 Aurora DB 클러스터 또는 RDS 인스턴스에 연결된 DB 프록시를 생성합니다. RDS 프록시 생성의 절차를 따르십시오.
-
RDS 콘솔에서 프록시의 [세부 정보(Details)] 페이지에 있는 [프록시 엔드포인트(Proxy endpoints)] 섹션에서 [엔드포인트 생성(Create endpoint)]을 선택합니다. 프록시 엔드포인트 생성의 절차를 따르십시오.
-
VPC 간 엔드포인트를 읽기/쓰기와 읽기 전용 중 무엇으로 설정할지 선택합니다.
-
Aurora DB 클러스터 또는 RDS 인스턴스와 동일한 VPC인 기본값을 사용하지 않고, 다른 VPC를 선택합니다. 이 VPC는 프록시가 상주하는 VPC와 동일한 AWS 리전에 있어야 합니다.
-
이제 Aurora DB 클러스터 또는 RDS 인스턴스와 동일한 VPC의 서브넷 및 보안 그룹에 대한 기본값을 사용하지 않고 새로 선택합니다. 선택한 VPC의 서브넷과 보안 그룹을 기준으로 선택합니다.
-
Secrets Manager 보안 정보에 대한 설정은 변경할 필요가 없습니다. 각 엔드포인트가 속한 VPC에 관계없이 프록시의 모든 엔드포인트에 대해 동일한 자격 증명이 작동합니다.
-
새 엔드포인트가 [사용 가능(Available)] 상태로 바뀔 때까지 기다립니다.
-
전체 엔드포인트 이름을 기록해 둡니다. 이 값은 데이터베이스 애플리케이션의 연결 문자열의 일부로 제공하는
으로 끝납니다.Region_name
.rds.amazonaws.com -
엔드포인트와 동일한 VPC에 있는 리소스에서 새 엔드포인트에 액세스합니다. 이 프로세스를 테스트하는 간단한 방법은 이 VPC에 새 EC2 인스턴스를 생성하는 것입니다. 그런 다음 EC2 인스턴스에 로그인하고
mysql
또는psql
명령을 실행하여 연결 문자열의 엔드포인트 값을 사용해 연결합니다.
프록시 엔드포인트 생성
프록시 엔드포인트를 생성하려면
-
AWS Management Console에 로그인한 후 https://console.aws.amazon.com/rds/
에서 Amazon RDS 콘솔을 엽니다. -
탐색 창에서 Proxies(프록시)를 선택합니다.
-
새 엔드포인트를 생성하려는 프록시의 이름을 클릭합니다.
해당 프록시에 대한 세부 정보 페이지가 나타납니다.
-
[프록시 엔드포인트(Proxy endpoints)] 섹션에서 [프록시 엔드포인트 생성(Create proxy endpoint)]을 선택합니다.
[프록시 엔드포인트 생성(Create proxy endpoint)] 창이 나타납니다.
-
[프록시 엔드포인트 이름(Proxy endpoint name)]에 원하는 알기 쉬운 이름을 입력합니다.
-
[대상 역할(Target role)]에서 엔드포인트를 읽기/쓰기와 읽기 전용 중 무엇으로 설정할지 선택합니다.
읽기/쓰기 엔드포인트를 사용하는 연결은 DDL(데이터 정의 언어) 문, DML(데이터 조작 언어) 문, 쿼리 등 모든 종류의 작업을 수행할 수 있습니다. 이러한 엔드포인트는 항상 Aurora 클러스터의 기본 인스턴스에 연결합니다. 애플리케이션에서 단일 엔드포인트만 사용하는 경우 일반 데이터베이스 작업에 읽기/쓰기 엔드포인트를 사용할 수 있습니다. 관리 작업, OLTP(온라인 트랜잭션 처리) 애플리케이션 및 ETL(추출 변환 로드) 작업에 읽기/쓰기 엔드포인트를 사용할 수도 있습니다.
읽기 전용 엔드포인트를 사용하는 연결은 쿼리만 수행할 수 있습니다. Aurora 클러스터에 여러 리더 인스턴스가 있는 경우, RDS Proxy는 엔드포인트에 대한 각 연결마다 서로 다른 리더 인스턴스를 사용할 수 있습니다. 이렇게 하면 쿼리 집약적인 애플리케이션이 Aurora의 클러스터링 기능을 활용할 수 있습니다. 더 많은 리더 DB 인스턴스를 추가하여 클러스터의 쿼리 용량을 늘릴 수 있습니다. 이러한 읽기 전용 연결은 클러스터의 기본 인스턴스에 오버헤드를 발생시키지 않습니다. 이렇게 하면 보고 및 분석 쿼리가 OLTP 애플리케이션의 쓰기 작업 속도를 저하시키지 않습니다.
-
Virtual Private Cloud(VPC)의 경우, 일반적으로 프록시 또는 연결된 데이터베이스에 액세스하는 것과 동일한 EC2 인스턴스 또는 기타 리소스에서 엔드포인트에 액세스하려면 기본값을 선택합니다. 이 프록시에 대해 VPC 간 액세스를 설정하려면 기본값 이외의 VPC를 선택합니다. VPC 간 액세스에 대한 자세한 내용은 VPC 간에 Aurora 및 RDS 데이터베이스 액세스 섹션을 참조하세요.
-
[서브넷(Subnets)]의 경우 RDS Proxy는 기본적으로 연결된 프록시와 동일한 서브넷을 채웁니다. VPC의 주소 범위 중 일부만 연결할 수 있도록 엔드포인트에 대한 액세스를 제한하려면 하나 이상의 서브넷을 제거합니다.
-
VPC 보안 그룹의 경우 기존 보안 그룹을 선택하거나 새 보안 그룹을 생성할 수 있습니다. RDS Proxy는 기본적으로 연결된 프록시와 동일한 보안 그룹 또는 그룹을 채웁니다. 프록시의 인바운드 및 아웃바운드 규칙이 이 엔드포인트에 적합한 경우, 기본 선택 항목을 그대로 둘 수 있습니다.
새 보안 그룹을 생성하도록 선택한 경우 이 페이지에서 보안 그룹의 이름을 지정합니다. 그런 다음 EC2 콘솔에서 보안 그룹 설정을 편집합니다.
-
[프록시 엔드포인트 생성(Create proxy endpoint)]을 선택합니다.
프록시 엔드포인트를 생성하려면 AWS CLI create-db-proxy-endpoint 명령을 사용합니다.
다음 필수 파라미터를 포함합니다.
-
--db-proxy-name
value
-
--db-proxy-endpoint-name
value
-
--vpc-subnet-ids
. 서브넷 ID를 공백으로 구분합니다. VPC 자체의 ID는 지정하지 않습니다.list_of_ids
다음과 같은 선택적 파라미터도 포함할 수 있습니다.
-
--target-role { READ_WRITE | READ_ONLY }
이 파라미터의 기본값은 입니다.READ_WRITE
READ_ONLY
값은 하나 이상의 리더 DB 인스턴스가 포함되어 있는 Aurora 프로비저닝된 클러스터에만 영향을 미칩니다. 프록시가 라이터 DB 인스턴스만 포함된 RDS 인스턴스 또는 Aurora 클러스터에 연결되어 있는 경우READ_ONLY
를 지정할 수 없습니다. -
--vpc-security-group-ids
. 보안 그룹 ID를 공백으로 구분합니다. 이 파라미터를 생략하면 RDS Proxy가 VPC에 기본 보안 그룹을 사용합니다. RDS Proxy는value
--vpc-subnet-ids
파라미터에 대해 지정한 서브넷 ID를 기반으로 VPC를 확인합니다.
예
다음 예에서는 my-endpoint
라는 프록시 엔드포인트를 생성합니다.
Linux, macOS 또는 Unix의 경우는 다음과 같습니다.
aws rds create-db-proxy-endpoint \ --db-proxy-name
my-proxy
\ --db-proxy-endpoint-namemy-endpoint
\ --vpc-subnet-idssubnet_id
subnet_id
subnet_id
... \ --target-role READ_ONLY \ --vpc-security-group-idssecurity_group_id
]
Windows의 경우:
aws rds create-db-proxy-endpoint ^ --db-proxy-name
my-proxy
^ --db-proxy-endpoint-namemy-endpoint
^ --vpc-subnet-idssubnet_id_1
subnet_id_2
subnet_id_3
... ^ --target-role READ_ONLY ^ --vpc-security-group-idssecurity_group_id
프록시 엔드포인트를 생성하려면 RDS API CreateDBProxyEndpoint 작업을 사용합니다.
프록시 엔드포인트 보기
프록시 엔드포인트에 대한 세부 정보를 보려면
-
AWS Management Console에 로그인한 후 https://console.aws.amazon.com/rds/
에서 Amazon RDS 콘솔을 엽니다. -
탐색 창에서 Proxies(프록시)를 선택합니다.
-
목록에서 엔드포인트를 보려는 프록시를 선택합니다. 프록시 이름을 클릭하여 세부 정보 페이지를 봅니다.
-
[프록시 엔드포인트(Proxy endpoints)] 섹션에서 보려는 엔드포인트를 선택합니다. 세부 정보 페이지를 보려면 이름을 클릭합니다.
-
값을 확인하고 싶은 파라미터를 조사합니다. 다음과 같은 속성을 확인할 수 있습니다.
-
엔드포인트가 읽기/쓰기인지 아니면 읽기 전용인지 여부.
-
데이터베이스 연결 문자열에 사용하는 엔드포인트 주소.
-
엔드포인트와 연결된 VPC, 서브넷 및 보안 그룹.
-
하나 이상의 DB 프록시 엔드포인트를 보려면 AWS CLI describe-db-proxy-endpoints 명령을 사용합니다.
다음과 같은 선택적 파라미터를 포함할 수 있습니다.
-
--db-proxy-endpoint-name
-
--db-proxy-name
다음 예에서는 my-endpoint
프록시 엔드포인트를 설명합니다.
예
Linux, macOS 또는 Unix의 경우는 다음과 같습니다.
aws rds describe-db-proxy-endpoints \ --db-proxy-endpoint-name
my-endpoint
Windows의 경우:
aws rds describe-db-proxy-endpoints ^ --db-proxy-endpoint-name
my-endpoint
하나 이상의 프록시 엔드포인트를 설명하려면 RDS API DescribeDBProxyEndpoints 작업을 사용합니다.
프록시 엔드포인트 수정
하나 이상의 프록시 엔드포인트를 수정하려면
-
AWS Management Console에 로그인한 후 https://console.aws.amazon.com/rds/
에서 Amazon RDS 콘솔을 엽니다. -
탐색 창에서 Proxies(프록시)를 선택합니다.
-
목록에서 엔드포인트를 수정할 프록시를 선택합니다. 프록시 이름을 클릭하여 세부 정보 페이지를 봅니다.
-
[프록시 엔드포인트(Proxy endpoints)] 섹션에서 수정할 엔드포인트를 선택합니다. 목록에서 선택하거나 이름을 클릭하여 세부 정보 페이지를 볼 수 있습니다.
-
프록시 세부 정보 페이지의 [프록시 엔드포인트(Proxy endpoints)] 섹션에서 [편집(Edit)]을 선택합니다. 또는 프록시 엔드포인트 세부 정보 페이지의 [작업(Actions)]에서 [편집(Edit)]을 선택합니다.
-
수정할 파라미터의 값을 변경합니다.
-
Save changes(변경 사항 저장)를 선택합니다.
DB 프록시 엔드포인트를 수정하려면 AWS CLI modify-db-proxy-endpoint 명령을 다음 필수 파라미터와 함께 사용합니다.
-
--db-proxy-endpoint-name
다음 파라미터 중 하나 이상을 사용하여 엔드포인트 속성에 대한 변경 사항을 지정합니다.
-
--new-db-proxy-endpoint-name
-
--vpc-security-group-ids
. 보안 그룹 ID를 공백으로 구분합니다.
다음 예에서는 my-endpoint
프록시 엔드포인트의 이름을 new-endpoint-name
으로 변경합니다.
예
Linux, macOS 또는 Unix의 경우는 다음과 같습니다.
aws rds modify-db-proxy-endpoint \ --db-proxy-endpoint-name
my-endpoint
\ --new-db-proxy-endpoint-namenew-endpoint-name
Windows의 경우:
aws rds modify-db-proxy-endpoint ^ --db-proxy-endpoint-name
my-endpoint
^ --new-db-proxy-endpoint-namenew-endpoint-name
프록시 엔드포인트를 수정하려면 RDS API ModifyDBProxyEndpoint 작업을 사용합니다.
프록시 엔드포인트 삭제
다음 설명에 따라 콘솔을 사용하여 프록시의 엔드포인트를 삭제할 수 있습니다.
참고
RDS Proxy가 각 프록시에 대해 자동으로 생성하는 기본 엔드포인트는 삭제할 수 없습니다.
프록시를 삭제하면 RDS Proxy가 모든 연결된 엔드포인트를 자동으로 삭제합니다.
AWS Management Console을 사용하여 프록시 엔드포인트를 삭제하려면
-
탐색 창에서 Proxies(프록시)를 선택합니다.
-
목록에서 엔드포인트를 삭제할 프록시를 선택합니다. 프록시 이름을 클릭하여 세부 정보 페이지를 봅니다.
-
[프록시 엔드포인트(Proxy endpoints)] 섹션에서 삭제할 엔드포인트를 선택합니다. 목록에서 하나 이상의 엔드포인트를 선택하거나, 단일 엔드포인트의 이름을 클릭하여 세부 정보 페이지를 볼 수 있습니다.
-
프록시 세부 정보 페이지의 [프록시 엔드포인트(Proxy endpoints)] 섹션에서 [삭제(Delete)]를 선택합니다. 또는 프록시 엔드포인트 세부 정보 페이지의 [작업(Actions)]에서 [삭제(Delete)]를 선택합니다.
프록시 엔드포인트를 삭제하려면 다음 필수 파라미터를 사용하여 delete-db-proxy-endpoint 명령을 실행합니다.
-
--db-proxy-endpoint-name
다음 명령은 my-endpoint
라는 프록시 엔드포인트를 삭제합니다.
Linux, macOS 또는 Unix의 경우는 다음과 같습니다.
aws rds delete-db-proxy-endpoint \ --db-proxy-endpoint-name
my-endpoint
Windows의 경우:
aws rds delete-db-proxy-endpoint ^ --db-proxy-endpoint-name
my-endpoint
RDS API를 사용하여 프록시 엔드포인트를 삭제하려면 DeleteDBProxyEndpoint 작업을 실행합니다. DBProxyEndpointName
파라미터에 프록시 엔드포인트의 이름을 지정합니다.
프록시 엔드포인트에 대한 제한 사항
각 프록시에는 수정할 수는 있지만 생성하거나 삭제할 수 없는 기본 엔드포인트가 있습니다.
프록시의 사용자 정의 엔드포인트의 최대 개수는 20개입니다. 따라서 프록시는 최대 21개의 엔드포인트(기본 엔드포인트와 사용자가 생성하는 20개)를 가질 수 있습니다.
추가 엔드포인트를 프록시와 연결할 때 RDS Proxy는 클러스터에서 각 엔드포인트에 사용할 DB 인스턴스를 자동으로 결정합니다. Aurora 사용자 지정 엔드포인트처럼 특정 인스턴스를 지정할 수는 없습니다.
Aurora 다중 라이터 클러스터에는 리더 엔드포인트를 사용할 수 없습니다.