VPC 비공개 엔드포인트 사용(미리 보기)
이 페이지의 내용
비공개 엔드포인트를 사용하여 가상 사설 클라우드(VPC) 내에서 Atlas App Services에 액세스할 수 있습니다. 이는 공용 Atlas App Services Go 인터넷을 통해 를 사용하지 않는 에 대한 비공개 연결입니다. VPC 외부의 요청은 404
오류를 반환합니다.
비공개 엔드포인트는 의 리전 에 로컬로 배포된 Atlas App Services 앱에만 사용할 수 있습니다.Amazon Web Services Amazon Web Services VPC 를 AWS PrivateLink 사용하여 에 연결합니다. 학습내용은 AWS PrivateLink 란 무엇인가요? 를 Amazon Web Services 참조하세요. 문서에서 확인 가능합니다.
App Services 비공개 엔드포인트에는 두 가지 종류가 있습니다.
일반: 클라이언트 HTTP 요청에
services.cloud.mongodb.com
를 사용하는 엔드포인트입니다.동기화: 동기화 WebSocket 연결에
services.cloud.mongodb.com
을(를) 사용하는 엔드포인트입니다.
중요
사용자 지정 HTTPS endpoints 및 데이터 API 엔드포인트 는 비공개 엔드포인트 에서 지원되지 않습니다.
시작하기 전에
다음 정보를 수집합니다.
VPC ID대시보드 에서 또는 Amazon Web Services VPC describe-vpc 를 실행 하여 찾을 수 있는 Amazon Web Services CLI 에서 명령을 실행합니다.
Amazon Web Services VPC 대시보드에서 또는 describe-subnets 를 실행하여 찾을 수 있는 서브넷 ID Amazon Web Services CLI 에서 명령을 실행합니다.
VPC 에 대한 비공개 호스팅 구역 을 설정합니다. 이를 위해서는 VPC ID 가 필요합니다. ModifyVpcAttribute 사용 다음 VPC 속성을 true로 설정하다 합니다.
EnableDnsHostnames
EnableDnsSupport
또한 Amazon Web Services CLI 를 설치하고 인증해야 합니다.
비공개 엔드포인트 추가
App Services UI 또는 관리자 API 를 사용하여 새 일반 엔드포인트 또는 동기화 엔드포인트를 추가할 수 있습니다.
일반 엔드포인트 추가
VPC 인터페이스 엔드포인트 생성
App Services UI 에서 App Settings 로 이동한 다음 Private Endpoints 탭 을 클릭합니다.
Add Private Endpoint을(를) 클릭한 다음 General을(를) 클릭합니다.
별도의 필드에 VPC ID 와 서브넷 ID(쉼표로 구분된 목록)를 추가한 다음 Next 을(를) 클릭합니다.
생성된 VPC Interface Endpoint Command 을 복사합니다. 명령은 다음과 같이 표시되어야 합니다.
aws ec2 create-vpc-endpoint \ --vpc-endpoint-type Interface --service-name <App Services Endpoint Service Name> \ --vpc-id <your-vpc-id> \ --region <your-aws-deployment-region> \ --subnet-ids <your-subnet-ids> 터미널에서 생성된 Amazon Web Services CLI 명령을 실행하여 VPC 엔드포인트를 생성합니다.
앱에 비공개 엔드포인트 추가
VPC에서 인터페이스 엔드포인트를 생성했으므로 이제 앱에 추가해야 합니다.
이전 단계에서 실행한 명령의 출력 또는 Amazon Web Services 대시보드의 엔드포인트 세부 VPC 정보 화면에서 엔드포인트 ID CLI VPC 를 찾습니다. 이 값은
vpce-
으로 시작합니다.새 VPC 엔드포인트의 ID 를 복사하여 App Services UI 의
Your VPC Endpoint ID
필드 에 붙여넣은 다음 Next 을(를) 클릭합니다.첫 번째 비공개 엔드포인트를 생성하는 경우, PrivateLink 연결 외부의 요청에 대한 모든 액세스를 제한하거나 개방하는 데 사용할 수 있는 토글이 표시됩니다. 기본적으로 Atlas App Services는 PrivateLink 연결 외부에서 들어오는 모든 요청을 차단합니다. 이 설정은 이 엔드포인트와 사용자가 생성하는 모든 추가 엔드 포인트에 적용됩니다. 자세한 내용은 액세스 제한 변경 을 참조하세요.
Finish Endpoint Creation를 클릭합니다.
VPC 인터페이스 엔드포인트 생성
List VPC Private Endpoint Services 엔드포인트를 호출합니다.
응답 객체 를 필터링하여 앱의 배포서버 리전 및 생성하려는 엔드포인트 유형에 대한 항목을 찾습니다.
curl https://services.cloud.mongodb.com/api/admin/v3.0/groups/{groupId}/apps/{appId}/security/private_endpoint_service_infos \ -H "Authorization: Bearer <access_token>" [ { "cloud_provider_region": "aws-us-east-1", "service_name": "com.amazonaws.vpce.us-east-1.vpce-svc-0718bec2c0bdeab5c", "endpoint_type": "general" }, ... ] 이전 단계의 원하는 항목에서
service_name
필드 를 가져옵니다.VPC create-vpc-endpoint 를 사용하여 Amazon Web Services CLI 엔드포인트 생성 명령. App Services 엔드포인트 서비스 이름, VPC ID, 서브넷 ID 및 Amazon Web Services 배포서버 리전 이 필요합니다. 명령은 다음과 같이 표시되어야 합니다.
aws ec2 create-vpc-endpoint \ --vpc-endpoint-type Interface --service-name <App Services Endpoint Service Name> \ --vpc-id <your-vpc-id> \ --region <your-aws-deployment-region> \ --subnet-ids <your-subnet-ids>
앱에 비공개 엔드포인트 추가
VPC에서 인터페이스 엔드포인트를 생성했으므로 이제 앱에 추가해야 합니다.
이전 단계에서 실행한 명령의 출력 또는 Amazon Web Services 대시보드의 엔드포인트 세부 VPC 정보 화면에서 엔드포인트 ID CLI VPC 를 찾습니다. 이 값은
vpce-
으로 시작합니다.VPC 엔드포인트의 ID 가 있는 경우 엔드포인트 ID, cloud 배포서버 리전 및 엔드포인트 유형을 사용 하여 VPC 비공개 엔드포인트 생성 을 호출합니다. 예를 예시
aws-us-east-1
을(를) 사용합니다.
curl https://services.cloud.mongodb.com/api/admin/v3.0/groups/{groupId}/apps/{appId}/security/private_endpoints \ -X POST \ -H "Authorization: Bearer <accessToken>" \ -H "Content-Type: application/json" \ -d '{ "cloud_provider_region": "<your-cloud-deployment-region>", "cloud_provider_endpoint_id": "<your-vpc-endpoint-id>", "endpoint_type": "general", "comment": "Optional: add a comment describing the endpoint." }'
동기화 엔드포인트 추가
모든 동기화 엔드포인트는 일반 엔드포인트와 쌍을 이루어야 합니다.
VPC 인터페이스 엔드포인트 생성
App Services UI 에서 App Settings (으)로 이동한 다음 Private Endpoints 탭 을 클릭합니다.
Add Private Endpoint을(를) 클릭한 다음 Sync을(를) 클릭합니다.
별도의 필드에 VPC ID 와 서브넷 ID(쉼표로 구분된 목록)를 추가한 다음 Next 을(를) 클릭합니다.
생성된 VPC Interface Endpoint Command 을 복사합니다. 명령은 다음과 같이 표시되어야 합니다.
aws ec2 create-vpc-endpoint \ --vpc-endpoint-type Interface --service-name <App Services Endpoint Service Name> \ --vpc-id <your-vpc-id> \ --region <your-aws-deployment-region> \ --subnet-ids <your-subnet-ids> 터미널에서 생성된 Amazon Web Services CLI 명령을 실행하여 VPC 엔드포인트를 생성합니다.
또한 App Services 에서 생성하는 명령을 사용하여 일반 엔드포인트를 만들어야 합니다.
앱에 비공개 엔드포인트 추가
이제 VPC에서 인터페이스 엔드포인트를 생성했으므로 이를 앱에 추가해야 합니다.
이전 VPC 단계에서 실행한 명령의 출력 CLI 또는 Amazon Web Services 대시보드의 엔드포인트 세부 정보 화면에서 동기화 및 일반 엔드포인트 ID VPC 를 찾을 수 있습니다. 이 값은
vpce-
으로 시작합니다.새 VPC 엔드포인트 ID를 복사하여 App Services UI 의 해당
Your VPC Endpoint ID
필드 에 붙여넣은 다음 Next 를 클릭합니다.첫 번째 비공개 엔드포인트를 생성하는 경우, PrivateLink 연결 외부의 요청에 대한 모든 액세스를 제한하거나 개방하는 데 사용할 수 있는 토글이 표시됩니다. 기본적으로 Atlas App Services는 PrivateLink 연결 외부에서 들어오는 모든 요청을 차단합니다. 이 설정은 이 엔드포인트와 사용자가 생성하는 모든 추가 엔드 포인트에 적용됩니다. 자세한 내용은 액세스 제한 변경 을 참조하세요.
이 페이지의 일반 비공개 엔드포인트 생성 단계에 따라 일반 비공개 엔드포인트도 생성해야 합니다.
Finish Endpoint Creation를 클릭합니다.
VPC 인터페이스 엔드포인트 생성
List VPC Private Endpoint Services 엔드포인트를 호출합니다.
응답 객체 를 필터링하여 앱의 배포서버 리전 및 생성하려는 엔드포인트 유형에 대한 항목을 찾습니다.
curl https://services.cloud.mongodb.com/api/admin/v3.0/groups/{groupId}/apps/{appId}/security/private_endpoint_service_infos \ -H "Authorization: Bearer <access_token>" [ { "cloud_provider_region": "aws-us-east-1", "service_name": "com.amazonaws.vpce.us-east-1.vpce-svc-0718bec2c0bdeab5c", "endpoint_type": "sync" }, ... ] 이전 단계의 원하는 항목에서
service_name
필드 를 가져옵니다.VPC create-vpc-endpoint 를 사용하여 Amazon Web Services CLI 엔드포인트 생성 명령. App Services 엔드포인트 서비스 이름, VPC ID, 서브넷 ID 및 Amazon Web Services 배포서버 리전 이 필요합니다. 명령은 다음과 같이 표시되어야 합니다.
aws ec2 create-vpc-endpoint \ --vpc-endpoint-type Interface --service-name <App Services Endpoint Service Name> \ --vpc-id <your-vpc-id> \ --region <your-aws-deployment-region> \ --subnet-ids <your-subnet-ids>
앱에 비공개 엔드포인트 추가
VPC에서 인터페이스 엔드포인트를 생성했으므로 이제 앱에 추가해야 합니다.
이전 단계에서 실행한 명령의 출력 또는 VPC 대시보드 의 엔드포인트 세부 정보 화면에서 동기화 엔드포인트 ID CLI Amazon Web Services VPC 를 찾습니다. 이 값은
vpce-
으로 시작합니다.엔드포인트 ID, cloud 배포서버 리전 및 엔드포인트 유형 이 포함된 VPC 비공개 엔드포인트 생성 을 호출하여 동기화 비공개 엔드포인트를 생성합니다. 예를 예시
aws-us-east-1
을(를) 사용합니다.curl https://services.cloud.mongodb.com/api/admin/v3.0/groups/{groupId}/apps/{appId}/security/private_endpoints \ -X POST \ -H "Authorization: Bearer <accessToken>" \ -H "Content-Type: application/json" \ -d '{ "cloud_provider_region": "<your-cloud-deployment-region>", "cloud_provider_endpoint_id": "<your-vpc-endpoint-id>", "endpoint_type": "sync", "comment": "Optional: add a comment describing the endpoint." }' 이 페이지의 일반 비공개 엔드포인트 생성 단계에 따라 일반 비공개 엔드포인트도 생성해야 합니다.
액세스 제한 변경
기본적으로 모든 비공개 엔드포인트는 내부 요청만 처리합니다. PrivateLink 연결 외부의 모든 요청에서 액세스를 열도록 선택할 수 있습니다.
중요
이 설정은 모든 엔드포인트에 적용됩니다.
이 설정은 세 가지 방법으로 토글할 수 있습니다.
UI에서 Private Endpoints 탭의 엔드포인트 목록에서 Restrict Access 버튼을 클릭합니다.
UI에서는 첫 번째 비공개 엔드포인트를 생성할 때 Modify Your VPC Private DNS 단계에서 이 설정을 토글할 수 있는 옵션이 있습니다.
관리자 API 에서 부울 값( 기본값 제한을 제거 하려면
true
, 복원하려면false
)을 사용하여 Toggle Non- VPC Requests (비 VPC 요청 토글)를 호출하세요.
비공개 엔드포인트가 IP 액세스 목록을 무시합니다.
비공개 엔드포인트 를 활성화 한 경우에도 IP 액세스 목록에 공개 IP를 추가하는 등 다른 방법을 사용하여 App Services 애플리케이션 에 액세스 를 활성화 할 수 있습니다.
비공개 엔드포인트를 통한 요청은 IP 액세스 목록을 무시하므로 비공개 IP를 IP 액세스 목록에 추가할 필요가 없습니다.
지원되는 SDK 버전
Atlas Device SDK는 일반 엔드포인트 및 동기화 엔드포인트에 액세스 할 수 있습니다. 그러나 새 도메인을 지원하는 버전을 사용해야 합니다.
비공개 엔드포인트 제한 사항
비공개 엔드포인트는 전역적으로 배포된 앱 또는 Azure 또는 GCP에 배포된 로컬 앱과 함께 사용할 수 없습니다.
비공개 엔드포인트를 활성화한 경우 공개 인터넷 연결을 사용하여 앱에 액세스 할 수 없습니다. 모든 요청은 비공개 엔드포인트를 통해 이루어져야 합니다.
배포서버 모델을 변경 하는 경우 앱의 새 리전 에 대한 새 비공개 엔드포인트를 만들어야 합니다.
비공개 엔드포인트를 사용하는 동시에 MongoDB 유선 프로토콜 을 통한 연결을 허용 할 수 없습니다. 둘 중 하나가 활성화 되면 다른 하나는 활성화할 수 없습니다.
기본값 으로 비공개 엔드포인트는 VPC 내에서 발생하는 요청만 처리하다 합니다. 공용 인터넷의 요청도 수락하도록 앱을 구성할 수 있습니다. 방법을 학습 보려면 액세스 제한 변경을 참조하세요.
App Services 와 같은 모든 아웃바운드 trigger API요청은Go 공용 인터넷을 통해 외부 를 호출합니다.