네트워크 피어링 구성
참고
다음 배포에서는 이 기능 을 사용할 수 없습니다.
서버리스 인스턴스
M0
클러스터M2/M5
클러스터Flex 클러스터
Atlas는 AWS, Google Cloud 및 Azure에서 호스팅되는 전용 클러스터와 멀티 클라우드 샤딩된 클러스터에 대한 네트워크 피어링 연결을 지원합니다.
네트워크 피어링은 Atlas VPC와 클라우드 제공자의 VPC 간에 비공개 연결을 설정합니다. 연결은 보안 강화를 위해 공용 네트워크에서의 트래픽을 격리합니다.
Atlas는 다른 클라우드 제공자의 단일 리전에 배포된 클러스터 사이에 네트워크 피어링을 지원하지 않습니다.
Atlas Kubernetes Operator 를 사용하여 네트워크 피어링 연결을 관리 하려면 AtlasProject
Custom Resource(사용자 지정 리소스) 에 대해 매개변수를 지정하고spec.networkPeers
업데이트 할 수 있습니다. 지원되는 사용자 지정 리소스 중 하나에서 spec
필드 를 변경할 때마다 Atlas Kubernetes Operator 가 해당 Atlas 구성을 생성하거나 업데이트 합니다.
전제 조건
Atlas Kubernetes Operator를 사용하여 네트워크 피어링을 구성하려면 다음이 필요합니다.
Atlas Kubernetes Operator가 배포된 실행 중인 Kubernetes 클러스터입니다.
Atlas
Project Owner
에서 또는Organization Owner
역할 .아직 생성하지 않았다면 에서 를 VPC Amazon Web Services생성합니다. 학습 내용은 Get Started with Amazon VPC(Amazon VPC 시작하기)를 참조하세요.
아웃바운드 트래픽에 대한 네트워크 트래픽 규칙.
Atlas에 연결되는 리소스에 연결된 AWS 보안 그룹에 다음과 같은 네트워크 트래픽 규칙을 생성하세요.
권한방향포트대상허용아웃바운드27015-27017 포함Atlas CIDR에 대한 규칙
Atlas Kubernetes Operator가 배포된 실행 중인 Kubernetes 클러스터입니다.
Atlas에서
Project Owner
또는Organization Owner
역할.아직 생성하지 않았다면 Azure 에서 VNet을 생성하세요. 학습 내용 은 Azure Portal을 사용하여 가상 네트워크 만들기를 참조하세요.
네트워크 피어링 연결 을 구성하는 데 필요한 Azure 역할입니다.
학습내용은 Azure 권한을 참조하세요.
Atlas 피어링 애플리케이션 ID 에 대한 서비스 주체입니다.
참고
Atlas 가 네트워크 피어링 을 생성하는 방법에 대한 자세한
Azure
내용은 Azure VPC 와의 연결에 대한 자세한 내용은 네트워크 피어링 연결 설정의 탭 을 참조하세요.각 Azure 네트워크 피어링 연결 을 만들기 전에 다음 단계를 완료해야 합니다.
다음 Azure CLI 명령을 실행하여 지정된 Atlas 피어링 애플리케이션 ID 를 사용하여 서비스 주체를 만듭니다.
az ad sp create --id e90a1407-55c3-432d-9cb1-3638900a9d22 각 구독 에 대해 한 번만 이 작업을 수행하면 됩니다. 다음 메시지가 표시되면 Atlas 피어링 애플리케이션 ID 를 가진 서비스 주체가 이미 존재합니다. 다음 단계로 진행합니다.
Another object with the same value for property servicePrincipalNames already exists. 다음 예시
peering-role.json
파일 을 복사하여 현재 작업 디렉토리 에 저장합니다.1 { 2 "Name":"AtlasPeering/<azureSubscriptionId>/<resourceGroupName>/<vnetName>", 3 "IsCustom":true, 4 "Description":"Grants MongoDB access to manage peering connections on network /subscriptions/<azureSubscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Network/virtualNetworks/<vnetName>", 5 "Actions":[ 6 "Microsoft.Network/virtualNetworks/virtualNetworkPeerings/read", 7 "Microsoft.Network/virtualNetworks/virtualNetworkPeerings/write", 8 "Microsoft.Network/virtualNetworks/virtualNetworkPeerings/delete", 9 "Microsoft.Network/virtualNetworks/peer/action" 10 ], 11 "AssignableScopes":[ 12 "/subscriptions/<azureSubscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Network/virtualNetworks/<vnetName>" 13 ] 14 } peering-role.json
의 변수를 피어링 연결을 만들려는 Azure VNet에 대한 세부 정보로 바꿉니다.변수설명azureSubscriptionId
VNet이 있는 Azure 구독 의 고유 식별자입니다.resourceGroupName
Azure 리소스 그룹의 이름입니다.vnetName
Azure VNet의 이름입니다.다음 Azure CLI 명령을 실행하여
peering-role.json
파일 을 사용하여 역할 정의를 만듭니다.az role definition create --role-definition peering-role.json 아래에 표시된 Azure CLI 명령을 실행하여 생성한 역할 을 서비스 주체에 할당합니다.
변수를
peering-role.json
파일 에 사용한 것과 동일한 값으로 바꿉니다.az role assignment create \ --role "AtlasPeering/<azureSubscriptionId>/<resourceGroupName>/<vnetName>" \ --assignee "e90a1407-55c3-432d-9cb1-3638900a9d22" \ --scope "/subscriptions/<azureSubscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Network/virtualNetworks/<vnetName>"
Atlas Kubernetes Operator가 배포된 실행 중인 Kubernetes 클러스터입니다.
Atlas에서
Project Owner
또는Organization Owner
역할.IAM 사용자 정책 및 컴퓨팅 네트워크 관리자 가 있는 Google Cloud Platform 사용자 계정 네트워킹 리소스를 생성, 수정 및 삭제 수 있는 권한을 부여하는 역할 입니다. 에서 비공개 엔드포인트 및 연결을 관리하는 방법에 Google Cloud Platform 학습 보려면 가상 비공개 클라우드(VPC) 네트워크 생성 및 수정을 참조하세요.
아직 생성하지 않았다면 에서 를 VPC Google Cloud Platform생성하세요. 학습내용은 GCP 설명서를 참조하세요.
절차
다음 절차에 따라 클라이언트가 네트워크 피어링 연결을 사용하여 Atlas 클러스터에 연결할 수 있도록 활성화하세요.
spec.networkPeers
매개변수를 지정합니다.
기존 컨테이너 또는 새 컨테이너를 사용하도록 네트워크 피어링을 구성할 수 있습니다.
기존 container 사용
AtlasProject
Custom Resource(사용자 지정spec.networkPeers
리소스 )에 매개변수를 지정합니다. 다음 자리 표시자를 원하는 값으로 바꿉니다.자리 표시자설명spec.networkPeers.providerName
클라우드 제공자 이름.AWS
를 지정합니다.spec.networkPeers.containerId
사용하려는 네트워크 피어링 컨테이너 의 고유 식별자입니다.containerId
을(를) 지정하지 않으면atlasCIDRblock
을(를) 설정하다 해야 합니다. 학습 내용은 이 절차의 Create New Container 섹션을 참조하세요.spec.networkPeers.accepterRegionName
Amazon Web Services 에 대한 VPC 리전 .spec.networkPeers.awsAccountId
해당 AWS 계정의 고유 식별자입니다. 콘솔 홈페이지의 오른쪽 상단에 있는 계정 이름을 클릭하면 AWS에 계정 ID가 표시됩니다.spec.networkPeers.routeTableCidrBlock
에 대한 CIDR Amazon Web Services VPC 차단 입니다. Amazon Web Services 는 의 세부 정보 페이지에 VPC CIDR 차단 을 표시합니다.spec.networkPeers.vpcId
해당 AWS VPC의 고유 식별자입니다. AWS는 해당 VPC의 세부 정보 페이지에 VPC ID를 표시합니다.다음 명령을 실행합니다:
cat <<EOF | kubectl apply -f - apiVersion: atlas.mongodb.com/v1 kind: AtlasProject metadata: name: my-project spec: name: Test Atlas Operator Project networkPeers: - providerName: "AWS" containerID: "6dc5f17280eef56a459fa3fb" accepterRegionName: "us-east-2" awsAccountId: "12345678" routeTableCidrBlock: "10.0.0.0/24" vpcId: "vpc-12345678" EOF
새 container 만들기
AtlasProject
Custom Resource(사용자 지정spec.networkPeers
리소스 )에 매개변수를 지정합니다. 다음 자리 표시자를 원하는 값으로 바꿉니다.자리 표시자설명spec.networkPeers.providerName
클라우드 제공자 이름.AWS
를 지정합니다.spec.networkPeers.atlasCidrBlock
Atlas Atlas Kubernetes Operator 가 새 컨테이너 를 생성하는 Atlas CIDR 차단 입니다.atlasCidrBlock
를 지정하지 않으면 기존 컨테이너 의containerId
을 지정해야 합니다. 학습 내용은 이 절차의 Use Existing Container 섹션을 참조하세요.spec.networkPeers.containerRegion
(선택 사항) Amazon Web Services Atlas Kubernetes Operator 가 새 컨테이너 를 생성하는 리전 입니다.containerRegion
또는containerId
중 하나를 지정하지 않으면 Atlas Kubernetes Operator 는accepterRegionName
와 동일한 리전 에 새 컨테이너 를 생성합니다.spec.networkPeers.accepterRegionName
Amazon Web Services 에 대한 VPC 리전 .spec.networkPeers.awsAccountId
해당 AWS 계정의 고유 식별자입니다. 콘솔 홈페이지의 오른쪽 상단에 있는 계정 이름을 클릭하면 AWS에 계정 ID가 표시됩니다.spec.networkPeers.routeTableCidrBlock
에 대한 CIDR Amazon Web Services VPC 차단 입니다. Amazon Web Services 는 의 세부 정보 페이지에 VPC CIDR 차단 을 표시합니다.spec.networkPeers.vpcId
해당 AWS VPC의 고유 식별자입니다. AWS는 해당 VPC의 세부 정보 페이지에 VPC ID를 표시합니다.다음 명령을 실행합니다:
cat <<EOF | kubectl apply -f - apiVersion: atlas.mongodb.com/v1 kind: AtlasProject metadata: name: my-project spec: name: Test Atlas Operator Project networkPeers: - providerName: "AWS" atlasCidrBlock: "10.8.0.0/21" containerRegion: "us-west-1" accepterRegionName: "us-east-2" awsAccountId: "12345678" routeTableCidrBlock: "10.0.0.0/24" vpcId: "vpc-12345678" EOF
Amazon Amazon Web Services Web Services 에서 VPC VPC 피어링 연결을 수락합니다.
Atlas Kubernetes Operator 를 사용하여 VPC 연결 상태를 확인하세요.
다음 명령을 다시 실행하여 VPC 연결 상태를 확인합니다. 네트워크 피어링 연결 이 완료되면 Atlas Kubernetes Operator 가 READY
를 반환합니다.
kubectl get atlasprojects my-project -o=jsonpath='{.status.networkPeers.statusName}'
READY
spec.networkPeers
매개변수를 지정합니다.
기존 컨테이너 또는 새 컨테이너를 사용하도록 네트워크 피어링을 구성할 수 있습니다.
기존 container 사용
AtlasProject
Custom Resource(사용자 지정spec.networkPeers
리소스 )에 매개변수를 지정합니다. 다음 자리 표시자를 원하는 값으로 바꿉니다.자리 표시자설명spec.networkPeers.providerName
클라우드 제공자 이름.AZURE
를 지정합니다.spec.networkPeers.containerId
사용하려는 네트워크 피어링 컨테이너의 고유 식별자입니다.containerId
을 지정하지 않으면atlasCIDRblock
을 설정해야 합니다. 자세한 내용은 이 절차의 Create New Container 섹션을 참조하세요.spec.networkPeers.accepterRegionName
VPC 에대한 Azure 리전 입니다.spec.networkPeers.azureSubscriptionId
Azure 구독 의 고유 식별자입니다. Azure 는 구독의 세부 정보 페이지에 구독 ID 를 표시합니다.spec.networkPeers.resourceGroupName
VPC 가 포함된 Azure 리소스 그룹 을 식별하는 사람이 읽을 수 있는 레이블입니다. Azure 는 리소스 그룹의 세부 정보 페이지에 리소스 그룹 이름을 표시합니다.spec.networkPeers.azureDirectoryId
Azure Active Directory 테넌트의 고유 식별자입니다. Azure 는 이를 테넌트 속성 페이지에Tenant ID
로 표시합니다.spec.networkPeers.vnetName
Azure VNET을 식별하는 사람이 읽을 수 있는 레이블입니다. Azure 는 VNET의 세부 정보 페이지에 VNET 이름을 표시합니다.다음 명령을 실행합니다:
cat <<EOF | kubectl apply -f - apiVersion: atlas.mongodb.com/v1 kind: AtlasProject metadata: name: my-project spec: name: Test Atlas Operator Project networkPeers: - providerName: "AZURE" containerID: "6dc5f17280eef56a459fa3fb" atlasCidrBlock: "10.8.0.0/21" containerRegion: "US_WEST" accepterRegionName: "US_EAST_2" azureSubscriptionId: "12345678" resourceGroupName: "my-group" azureDirectoryId: "x0xxx10-00x0-0x01-0xxx-x0x0x01xx100" vnetName: "my-vnet" EOF
새 container 만들기
AtlasProject
Custom Resource(사용자 지정spec.networkPeers
리소스 )에 매개변수를 지정합니다. 다음 자리 표시자를 원하는 값으로 바꿉니다.자리 표시자설명spec.networkPeers.providerName
클라우드 제공자 이름.AZURE
를 지정합니다.spec.networkPeers.atlasCidrBlock
Atlas Atlas Kubernetes Operator 가 새 컨테이너 를 생성하는 Atlas CIDR 차단 입니다.atlasCidrBlock
를 지정하지 않으면 기존 컨테이너 의containerId
을 지정해야 합니다. 학습 내용은 이 절차의 Use Existing Container 섹션을 참조하세요.spec.networkPeers.containerRegion
(선택 사항) Atlas Kubernetes Operator 가 새 컨테이너 를 생성하는 Azure 리전 입니다.containerRegion
또는containerId
를 지정하지 않으면 Atlas Kubernetes Operator 는accepterRegionName
와 동일한 리전 에 새 컨테이너 를 생성합니다.spec.networkPeers.accepterRegionName
VPC 에대한 Azure 리전 입니다.spec.networkPeers.azureSubscriptionId
Azure 구독 의 고유 식별자입니다. Azure 는 구독의 세부 정보 페이지에 구독 ID 를 표시합니다.spec.networkPeers.resourceGroupName
VPC 가 포함된 Azure 리소스 그룹 을 식별하는 사람이 읽을 수 있는 레이블입니다. Azure 는 리소스 그룹의 세부 정보 페이지에 리소스 그룹 이름을 표시합니다.spec.networkPeers.azureDirectoryId
Azure Active 디렉토리 테넌트의 고유 식별자입니다. Azure 는 이를 테넌트 속성 페이지에Tenant ID
로 표시합니다.spec.networkPeers.vnetName
Azure VNET을 식별하는 사람이 읽을 수 있는 레이블입니다. Azure 는 VNET의 세부 정보 페이지에 VNET 이름을 표시합니다.다음 명령을 실행합니다:
cat <<EOF | kubectl apply -f - apiVersion: atlas.mongodb.com/v1 kind: AtlasProject metadata: name: my-project spec: name: Test Atlas Operator Project networkPeers: - providerName: "AZURE" atlasCidrBlock: "10.8.0.0/21" containerRegion: "US_WEST" accepterRegionName: "US_EAST_2" azureSubscriptionId: "12345678" resourceGroupName: "my-group" azureDirectoryId: "x0xxx10-00x0-0x01-0xxx-x0x0x01xx100" vnetName: "my-vnet" EOF
Atlas Kubernetes Operator 를 사용하여 VPC 연결 상태를 확인하세요.
다음 명령을 실행하여 VPC 연결 상태를 확인합니다. 네트워크 피어링 연결 이 완료되면 Atlas Kubernetes Operator 가 READY
를 반환합니다.
kubectl get atlasprojects my-project -o=jsonpath='{.status.networkPeers.status}'
READY
spec.networkPeers
매개변수를 지정합니다.
기존 컨테이너 또는 새 컨테이너를 사용하도록 네트워크 피어링을 구성할 수 있습니다.
기존 container 사용
AtlasProject
Custom Resource(사용자 지정spec.networkPeers
리소스 )에 매개변수를 지정합니다. 다음 자리 표시자를 원하는 값으로 바꿉니다.자리 표시자설명spec.networkPeers.providerName
클라우드 제공자 이름.GCP
를 지정합니다.spec.networkPeers.containerId
사용하려는 네트워크 피어링 컨테이너 의 고유 식별자입니다.containerId
을 지정하지 않으면atlasCIDRblock
및containerRegion
을 설정하다 해야 합니다. 학습 내용은 이 절차의 Create New Container 섹션을 참조하세요.spec.networkPeers.gcpProjectId
Google Cloud Platform 프로젝트 의 고유 식별자입니다. Google Cloud Platform 은 프로젝트의 세부 정보 페이지에 프로젝트 ID 를 표시합니다.spec.networkPeers.routeTableCidrBlock
에 대한CIDR 차단 Google Cloud Platform VPC 입니다. Google Cloud Platform 은 의 세부 정보 페이지에 VPC CIDR 차단 을 표시합니다.spec.networkPeers.networkName
Google Cloud Platform VPC 의 사람이 읽을 수 있는 레이블입니다. Google Cloud Platform 은 VPC 의 세부 정보 페이지에 네트워크 이름을 표시합니다.다음 명령을 실행합니다:
cat <<EOF | kubectl apply -f - apiVersion: atlas.mongodb.com/v1 kind: AtlasProject metadata: name: my-project spec: name: Test Atlas Operator Project networkPeers: - providerName: "GCP" containerId: "6dc5f17280eef56a459fa3fb" gcpProjectId: "12345678" routeTableCidrBlock: "10.0.0.0/24" networkName: "my-vpc" EOF
새 container 만들기
AtlasProject
Custom Resource(사용자 지정spec.networkPeers
리소스 )에 매개변수를 지정합니다. 다음 자리 표시자를 원하는 값으로 바꿉니다.자리 표시자설명spec.networkPeers.providerName
클라우드 제공자 이름.GCP
를 지정합니다.spec.networkPeers.atlasCidrBlock
Atlas Atlas Kubernetes Operator 가 새 컨테이너 를 생성하는 Atlas CIDR 차단 입니다.atlasCidrBlock
를 지정하지 않으면 기존 컨테이너 의containerId
을 지정해야 합니다. 학습 내용은 이 절차의 Use Existing Container 섹션을 참조하세요.spec.networkPeers.containerRegion
Google Cloud Platform 에 대한 VPC 리전 입니다.spec.networkPeers.containerRegion
Google Cloud Platform Atlas Kubernetes Operator 가 새 컨테이너 를 생성하는 리전 입니다.containerRegion
을 지정하지 않으면 기존 컨테이너 의containerId
을 지정해야 합니다. 학습 내용은 이 절차의 Use Existing Container 섹션을 참조하세요.spec.networkPeers.gcpProjectId
Google Cloud Platform 프로젝트 의 고유 식별자입니다. Google Cloud Platform 은 프로젝트의 세부 정보 페이지에 프로젝트 ID 를 표시합니다.spec.networkPeers.routeTableCidrBlock
에 대한CIDR 차단 Google Cloud Platform VPC 입니다. Google Cloud Platform 은 의 세부 정보 페이지에 VPC CIDR 차단 을 표시합니다.spec.networkPeers.networkName
Google Cloud Platform VPC 의 사람이 읽을 수 있는 레이블입니다. Google Cloud Platform 은 VPC 의 세부 정보 페이지에 네트워크 이름을 표시합니다.다음 명령을 실행합니다:
cat <<EOF | kubectl apply -f - apiVersion: atlas.mongodb.com/v1 kind: AtlasProject metadata: name: my-project spec: name: Test Atlas Operator Project networkPeers: - providerName: "GCP" atlasCidrBlock: "10.8.0.0/21" containerRegion: "us-east1" gcpProjectId: "12345678" routeTableCidrBlock: "10.0.0.0/24" networkName: "my-vpc" EOF
Atlas Kubernetes Operator 를 사용하여 VPC 연결 상태를 확인하세요.
다음 명령을 다시 실행하여 VPC 연결 상태를 확인합니다. 네트워크 피어링 연결 이 완료되면 Atlas Kubernetes Operator 가 READY
를 반환합니다.
kubectl get atlasprojects my-project -o=jsonpath='{.status.networkPeers.status}'
READY