서버리스 인스턴스에 대한 비공개 엔드포인트 관리
이 페이지의 내용
참고
Atlas M2
및 M5
클러스터와 서버리스 인스턴스를 더 이상 사용하지 않습니다. 가까운 미래에 Atlas 모든 M2
및 M5
클러스터를 Flex 클러스터로 자동 마이그레이션 . 서버리스 인스턴스의 경우, Atlas 사용량에 따라 인스턴스를 무료 클러스터, Flex 클러스터 또는 전용 클러스터로 마이그레이션 할지 여부를 결정한 다음 서버리스 인스턴스를 자동으로 마이그레이션 .
일정 기간 동안 API의 이전 버전과의 호환성을 유지하기 위해, Atlas Atlas Kubernetes Operator 사용할 때를 포함하여 이러한 마이그레이션된 클러스터를 동일한 API(이전 API 및 새 API)를 통해 managed 할 수 있도록 계속 허용합니다. API의 이전 버전과의 호환성은 2026 1월까지 유지되며, 이 때 이전 API는 제거되고 Flex 클러스터와 관련된 API만 유지됩니다.
서버리스 인스턴스의 비공개 엔드포인트 에 대한 지원이 2025 3월에 종료됩니다. 비공개 엔드포인트 제거 하려면 2025 3월까지 Atlas Kubernetes Operator 구성을 업데이트 해야 합니다. 2026 1월 이전에 Atlas Kubernetes Operator 구성에서 나머지 M2
, M5
및 서버리스 인스턴스 기능을 모두 제거 해야 합니다.
워크로드에비공개 엔드포인트 또는 연속 백업 및 특정 시점 복원이 필요한 경우 Atlas 전용 클러스터로 전환하세요. 자세한 학습 은Flex 클러스터로 마이그레이션 및 Atlas Flex 마이그레이션 가이드를 참조하세요.
Atlas Kubernetes Operator 다음 플랫폼에서 서버리스 인스턴스에 대한 비공개 엔드포인트 관리를 지원합니다.
를 사용하는Amazon AWS PrivateLink Web Services 기능.
Azure Private Link 기능을 사용하는 Azure .
참고
서버리스 인스턴스는 Private Service Connect를 지원하지 않습니다. Private Service Connect를 설정해야 하는 경우 전용 클러스터를 사용하세요.
시작하기 전에 비공개 엔드포인트 관리를 참조하세요.
절차
클라이언트가 비공개 엔드포인트 사용하여 Atlas Serverless 인스턴스에 연결할 수 활성화 하려면 다음을 수행합니다.
spec.serverlessSpec.privateEndpoints
매개변수를 지정합니다.
AtlasDeployment
사용자 spec.serverlessSpec.privateEndpoints
지정 리소스 에 매개 변수를 지정합니다. spec.serverlessSpec.privateEndpoints.name
필드에 비공개 엔드포인트를 식별하는 고유 레이블을 지정하고 다음 명령을 실행합니다.
cat <<EOF | kubectl apply -f - apiVersion: atlas.mongodb.com/v1 kind: AtlasDeployment metadata: name: atlas-deployment-serverless spec: projectRef: name: my-project serverlessSpec: name: serverless-instance tags: - key: "environment" value: "production" providerSettings: providerName: SERVERLESS backingProviderName: AWS regionName: US_EAST_1 privateEndpoints: - name: "{unique-private-endpoint-label}" EOF
Atlas 가 VPC 리소스를 생성합니다. 이 작업을 완료하는 데 몇 분 정도 걸릴 수 있습니다.
비공개 엔드포인트의 서비스 이름을 찾습니다.
다음 명령을 실행합니다:
kubectl get atlasdeployment atlas-deployment-serverless -o yaml AtlasDeployment
사용자 지정 리소스의status.serverlessPrivateEndpoints.EndpointServiceName
필드에 있는 각 비공개 엔드포인트에 대한 서비스 이름 문자열을 확인합니다.
Amazon Web Services Atlas CLI를 사용하여 각 비공개 엔드포인트를 구성합니다.
애플리케이션 VPC 인터페이스 엔드포인트를 생성하려면 다음을 수행합니다.
다음 명령을 복사합니다.
aws ec2 create-vpc-endpoint --vpc-id {your-application-vpc-id} --region {aws-region} --service-name {service-name-string} --vpc-endpoint-type Interface --subnet-ids {your-application-subnet-ids} 다음 자리 표시자를 Amazon Web Services VPC 에 대한 세부 정보로 바꿉니다.
your-application-vpc-id
피어링 AWS VPC를 식별하는 고유 문자열입니다. 이 값은 AWS 계정의 VPC 대시보드에서 찾을 수 있습니다.
aws-region
비공개 엔드포인트의 Amazon Web Services 리전 을 식별하는 레이블입니다.
service-name-string
비공개 엔드포인트의 서비스 이름을 식별하는 고유 문자열입니다.
AtlasDeployment
사용자 지정 리소스의status.serverlessPrivateEndpoints.EndpointServiceName
필드 내에서 이 값을 찾습니다.your-application-subnet-ids
Amazon Web Services VPC 가 사용하는 서브넷을 식별하는 고유 문자열입니다. 각 서브넷을 공백으로 구분하세요. Amazon Web Services 계정의 Subnet 대시보드에서 이러한 값을 찾을 수 있습니다.
중요: 서브넷을 하나 이상 지정해야 합니다. 그렇지 않으면Amazon Web Services VPC는 에 인터페이스 엔드포인트 를 프로비저닝하지 않습니다. VPC 의 클라이언트가 비공개 엔드포인트로 트래픽을 전송하려면 인터페이스 엔드포인트 가 필요합니다.
Amazon Web Services 를 CLI 사용하여명령을 실행합니다.
출력에서
VpcEndpointId
값을 확인합니다.예시
"VpcEndpoint": { "VpcEndpointId": "vpce-XXXXXX", "VpcEndpointType": "Interface", "VpcId": "vpc-XXXXX", "ServiceName": "com.amazonaws.vpce.{aws-region}.vpce-svc-XXXX", "State": "pendingAcceptance",
자세한 내용 은 인터페이스 엔드포인트 생성 을 참조하세요. Amazon Web Services 문서에서 확인 가능합니다.
spec.serverlessSpec.privateEndpoints
매개변수를 업데이트합니다.
AtlasDeployment
사용자 spec.serverlessSpec.privateEndpoints
지정 리소스 에 대한 매개 변수를 업데이트합니다. vpce-id
를 비공개 엔드포인트의 VpcEndpointId
값으로 바꾸고 다음 명령을 실행합니다.
참고
AWS 계정의 VPC 대시보드에서 피어 AWS VPC 의 고유 식별자를 찾을 수 있습니다.
cat <<EOF | kubectl apply -f - apiVersion: atlas.mongodb.com/v1 kind: AtlasDeployment metadata: name: atlas-deployment-serverless spec: projectRef: name: my-project serverlessSpec: name: serverless-instance tags: - key: "environment" value: "production" providerSettings: providerName: SERVERLESS backingProviderName: AWS regionName: US_EAST_1 privateEndpoints: - name: "{unique-private-endpoint-label}" cloudProviderEndpointID: "{vpce-id}" EOF
Atlas Kubernetes Operator가 클러스터에 연결하기 위해 생성한 비밀을 조회하세요.
다음 명령을 복사합니다.
중요
다음 명령을 실행하려면
jq
1.6 이상이 필요합니다.kubectl get secret {my-project}-{my-atlas-cluster}-{my-database-user} -o json | jq -r '.data | with_entries(.value |= @base64d)'; 다음 자리 표시자를 원하는 사용자 지정 리소스의 세부 정보로 바꾸세요.
my-project
AtlasProject
사용자 지정 리소스의metadata
필드 값을 지정합니다.my-atlas-cluster
AtlasDeployment
사용자 지정 리소스의metadata
필드 값을 지정합니다.my-database-user
AtlasDatabaseUser
사용자 지정 리소스의metadata
필드 값을 지정합니다.명령을 실행합니다.
참고
연결 문자열은 다음 예제와 다를 수 있습니다. 비공개 엔드포인트가 여러 개 있는 경우 비밀에는 적절한 숫자 접미사가 붙은
connectionStringPrivate
및connectionStringPrivateSvr
필드가 여러 개 포함됩니다(예:connectionStringPrivate1
,connectionStringPrivate2
등).{ "connectionStringPrivate": "mongodb://pl-0-eastus2.uzgh6.mongodb.net:1024,pl-0-eastus2.uzgh6.mongodb.net:1025,pl-0-eastus2.uzgh6.mongodb.net:1026/?ssl=truereplicaSet=atlas-18bndf-shard-0", "connectionStringPrivateSrv": "mongodb+srv://cluster0-pl-0.uzgh6.mongodb.net", "password": "P@@sword%", "username": "theuser" } 이 시크릿 을 사용할 수 있습니다. 다음을 수행합니다.
containers: - name: test-app env: - name: "CONNECTION_STRING" valueFrom: secretKeyRef: name: my-project-my-atlas-cluster-my-database-user key: connectionStringPrivate
spec.serverlessSpec.privateEndpoints
매개변수를 지정합니다.
AtlasDeployment
사용자 spec.serverlessSpec.privateEndpoints
지정 리소스 에 매개 변수를 지정합니다. spec.serverlessSpec.privateEndpoints.name
필드에 비공개 엔드포인트를 식별하는 고유 레이블을 지정하고 다음 명령을 실행합니다.
cat <<EOF | kubectl apply -f - apiVersion: atlas.mongodb.com/v1 kind: AtlasDeployment metadata: name: atlas-deployment-serverless spec: projectRef: name: my-project serverlessSpec: name: serverless-instance tags: - key: "environment" value: "production" providerSettings: providerName: SERVERLESS backingProviderName: AWS regionName: US_EAST_1 privateEndpoints: - name: "{unique-private-endpoint-label}" EOF
Atlas 는 VNET 리소스를 생성합니다. 이 작업을 완료하는 데 몇 분 정도 걸릴 수 있습니다.
비공개 엔드포인트 네트워크 정책을 비활성화합니다.
Atlas는 비공개 엔드포인트에 대한 네트워크 정책을 지원하지 않습니다.
다음 명령을 복사합니다.
az network vnet subnet update --resource-group {resource-group-name} --vnet-name {vnet-name} --name {subnet-name} --disable-private-endpoint-network-policies true 다음 자리 표시자를 Azure VNet에 대한 세부 정보로 바꿉니다.
resource-group-name
Atlas 연결에 사용할 VNet이 포함된 리소스 그룹 에 대한 사람이 읽을 수 있는 레이블입니다. 이 값은 Azure 대시보드 의 Resource Group Properties 페이지에서 찾을 수 있습니다.
vnet-name
Atlas 에 연결하는 데 사용할 VNet을 식별하는 사람이 읽을 수 있는 레이블입니다. 이 값은 Azure 대시보드 의 Virtual Network 페이지에서 찾을 수 있습니다.
subnet-name
Azure VNet의 서브넷을 식별하는 사람이 읽을 수 있는 레이블입니다. 이 값은 Azure 대시보드 의 Virtual Network Subnets 페이지에서 찾을 수 있습니다.
Azure CLI 를사용하여 명령을 실행합니다.
학습내용 은 비공개 엔드포인트 에 대한 네트워크 정책 관리 를 참조하세요. Azure 설명서에 있습니다.
비공개 엔드포인트 의 서비스 ID와 이름을 찾습니다.
다음 명령을 실행합니다:
kubectl get atlasdeployment atlas-deployment-serverless -o yaml AtlasDeployment
Custom Resource(사용자 지정 리소스 )의status.serverlessPrivateEndpoints.PrivateLinkServiceResourceId
및status.serverlessPrivateEndpoints.EndpointServiceName
필드에 있는 각 비공개 엔드포인트에 대한 서비스 리소스 ID 및 서비스 이름을 확인합니다.
Azure CLI 를 사용하여 각 비공개 엔드포인트를 구성합니다.
비공개 엔드포인트를 생성하려면 다음을 수행합니다.
다음 명령을 복사합니다.
az network private-endpoint create --resource-group {resource-group-name} --name {endpoint-name} --vnet-name {vnet-name} --subnet {subnet-name} --private-connection-resource-id {serviceResourceId} --connection-name {serviceName} --manual-request true 다음 자리 표시자를 Azure VNet에 대한 세부 정보로 바꿉니다.
resource-group-name
Atlas 연결에 사용할 VNet이 포함된 리소스 그룹 에 대한 사람이 읽을 수 있는 레이블입니다. 이 값은 Azure 대시보드 의 Resource Group Properties 페이지에서 찾을 수 있습니다.
endpoint-name
비공개 엔드포인트를 식별하는 사람이 읽을 수 있는 레이블입니다. 지금 지정합니다.
vnet-name
Atlas 에 연결하는 데 사용할 VNet을 식별하는 사람이 읽을 수 있는 레이블입니다. 이 값은 Azure 대시보드 의 Virtual Network 페이지에서 찾을 수 있습니다.
subnet-name
Azure VNet의 서브넷을 식별하는 사람이 읽을 수 있는 레이블입니다. 이 값은 Azure 대시보드 의 Virtual Network Subnets 페이지에서 찾을 수 있습니다.
serviceResourceId
비공개 엔드포인트의 서비스 리소스 를 식별하는 고유 string 입니다.
AtlasDeployment
Custom Resource(사용자 지정 리소스 )의status.serverlessPrivateEndpoints.PrivateLinkServiceResourceId
필드 내에서 이 값을 찾습니다.serviceName
비공개 엔드포인트의 서비스 이름을 식별하는 고유 문자열입니다.
AtlasDeployment
사용자 지정 리소스의status.serverlessPrivateEndpoints.EndpointServiceName
필드 내에서 이 값을 찾습니다.Azure CLI 를사용하여 명령을 실행합니다.
spec.serverlessPrivateEndpoints
매개변수를 업데이트합니다.
AtlasDeployment
Custom Resource(사용자 지정 spec.serverlessSpec.privateEndpoints
리소스) 에 대한 매개변수를 업데이트합니다. 비공개 엔드포인트 에 대한 리소스 ID 및 IP 주소 정보를 지정하고 다음 명령을 실행 합니다.
참고
Azure 대시보드 의 Properties 페이지에는 Resource ID 필드 에서 만든 비공개 엔드포인트의 고유 식별자가 표시됩니다.
Azure 대시보드 의 Overview 페이지에는 Private IP 필드 에서 만든 비공개 엔드포인트 네트워크 인터페이스의 비공개 IP 주소 가 표시됩니다.
cat <<EOF | kubectl apply -f - apiVersion: atlas.mongodb.com/v1 kind: AtlasDeployment metadata: name: atlas-deployment-serverless spec: projectRef: name: my-project serverlessSpec: name: serverless-instance tags: - key: "environment" value: "production" providerSettings: providerName: SERVERLESS backingProviderName: AWS regionName: US_EAST_1 privateEndpoints: - name: "{unique-private-endpoint-label}" cloudProviderEndpointID: "{resource-id}" privateEndpointIpAddress: "{private-ip}" EOF
Atlas Kubernetes Operator가 클러스터에 연결하기 위해 생성한 비밀을 조회하세요.
다음 명령을 복사합니다.
중요
다음 명령을 실행하려면
jq
1.6 이상이 필요합니다.kubectl get secret {my-project}-{my-atlas-cluster}-{my-database-user} -o json | jq -r '.data | with_entries(.value |= @base64d)'; 다음 자리 표시자를 원하는 사용자 지정 리소스의 세부 정보로 바꾸세요.
my-project
AtlasProject
사용자 지정 리소스의metadata
필드 값을 지정합니다.my-atlas-cluster
AtlasDeployment
사용자 지정 리소스의metadata
필드 값을 지정합니다.my-database-user
AtlasDatabaseUser
사용자 지정 리소스의metadata
필드 값을 지정합니다.명령을 실행합니다.
참고
연결 문자열은 다음 예제와 다를 수 있습니다. 비공개 엔드포인트가 여러 개 있는 경우 비밀에는 적절한 숫자 접미사가 붙은
connectionStringPrivate
및connectionStringPrivateSvr
필드가 여러 개 포함됩니다(예:connectionStringPrivate1
,connectionStringPrivate2
등).{ "connectionStringPrivate": "mongodb://pl-0-eastus2.uzgh6.mongodb.net:1024,pl-0-eastus2.uzgh6.mongodb.net:1025,pl-0-eastus2.uzgh6.mongodb.net:1026/?ssl=truereplicaSet=atlas-18bndf-shard-0", "connectionStringPrivateSrv": "mongodb+srv://cluster0-pl-0.uzgh6.mongodb.net", "password": "P@@sword%", "username": "theuser" } 이 시크릿 을 사용할 수 있습니다. 다음을 수행합니다.
containers: - name: test-app env: - name: "CONNECTION_STRING" valueFrom: secretKeyRef: name: my-project-my-atlas-cluster-my-database-user key: connectionStringPrivate