Data Federation 설정
이 페이지의 내용
이 튜토리얼에서는 Atlas Kubernetes Operator를 사용하여 Kubernetes 구성 파일에서 Atlas에서 연합 데이터베이스 인스턴스를 생성하는 방법을 보여줍니다. 이 튜토리얼의 연합 데이터베이스 인스턴스는 Amazon Web Services S3 버킷과 Atlas cluster를 연결합니다.
전제 조건
이 튜토리얼에는 다음이 필요합니다.
사용자
AtlasProject
지정 리소스 를 포함하여 Atlas Kubernetes Operator 가 배포된 실행Kubernetes 클러스터 입니다.IAM 역할을 수정할 수 있는 권한이 있는 Amazon Web Services 사용자 계정입니다.
절차
중요
Custom Resource(사용자 정의 리소스)는 더 이상 기본적으로 객체를 삭제하지 않음
Atlas Kubernetes Operator 는 사용자 지정 리소스 구성 파일을 관리 하여 Atlas 구성을 2.0 관리하지만, Atlas Kubernetes Operator Kubernetes 에서 삭제 한 사용자 지정 리소스가 더 이상 ( 기본값) Atlas 에서 삭제되지 않습니다. 대신 Atlas Kubernetes Operator 는 Atlas 에서 해당 리소스 관리를 중지할 뿐입니다. 예를 예시 , Kubernetes 에서
AtlasProject
Custom Resource(사용자 지정 리소스)를 삭제 하면 기본값 으로 Atlas Kubernetes Operator 는 더 이상 Atlas 에서 해당 프로젝트 를 자동으로 삭제하지 않습니다. 이러한 동작 변경은 우발적이거나 예기치 않은 삭제를 방지하기 위한 것입니다. 이 동작을 Atlas Kubernetes Operator 이전에 사용된 기본값 으로 되돌리는 방법 등 자세한 내용을 학습 보세요.,2 0 새 기본값: Atlas Kubernetes Operator 2 의 삭제 보호0 기능을참조하세요. .마찬가지로, Atlas Kubernetes Operator 를 사용하여 Kubernetes 의 Atlas 프로젝트 에서 팀을 제거 하는 경우 Atlas Kubernetes Atlas Kubernetes Operator 는 Atlas 에서 팀을 삭제 하지 않습니다.
기본값 Atlas 구성 값을 암시적으로 사용하지 않으려면 원하는 구성 세부 정보를 명시적으로 정의하세요. 경우에 따라 Atlas 기본값을 상속하면 조정 루프가 발생하여 사용자 지정 리소스 가
READY
상태 를 달성하지 못할 수 있습니다. 예를 예시AtlasDeployment
사용자 지정 리소스 에 원하는 자동 확장 동작을 명시적으로 정의하면 포함된 예시 와 같이 사용자 지정 리소스 의 정적 인스턴스 크기가 자동 확장이 활성화된 Atlas 배포서버 서버에 반복적으로 적용되지 않도록 할 수 있습니다.autoScaling: diskGB: enabled: true compute: enabled: true scaleDownEnabled: true minInstanceSize: M30 maxInstanceSize: M40
Atlas 에서 Amazon Amazon Web Services Web Services IAM 역할 생성 Atlas
다음 Atlas CLI 명령을 실행하여 Atlas에서 새 Amazon Web Services IAM 역할을 생성합니다. 다음 자리 표시자를 원하는 값으로 바꿉니다.
자리 표시자설명PROJECT-ID
사용할 Atlas 프로젝트를 식별하는 고유한 24자 16진수 문자열입니다.
atlas cloudProviders accessRoles aws create --projectId <PROJECT-ID> 반환된 필드 값
RoleID
,Atlas AWS Account ARN
및Unique External ID
에 유의하세요.AWS IAM role '<RoleID>' successfully created. Atlas AWS Account ARN: <AtlasAWSAccountARN> Unique External ID: <AtlasAssumedRoleExternalID>
AWS IAM 역할 신뢰 정책을 수정합니다.
AWS 관리 콘솔에 로그인합니다.
Identity and Access Management (IAM) 서비스로 이동합니다.
왼쪽 탐색에서 Roles 을 선택합니다.
역할 목록에서 Atlas 액세스에 사용하려는 기존 IAM 역할을 클릭합니다.
0}Trust Relationships 탭을 선택합니다.
Edit trust relationship 버튼을 클릭합니다.
Policy Document를 편집합니다. 다음 내용이 포함된 새
Statement
객체를 추가합니다.참고
강조 표시된 줄을 이전 단계에서 반환된 값으로 바꿉니다.
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "AWS":"<atlasAWSAccountArn>" }, "Action":"sts:AssumeRole", "Condition":{ "StringEquals":{ "sts:ExternalId":"<atlasAssumedRoleExternalId>" } } } ] } Update Trust Policy 버튼을 클릭합니다.
AtlasDataFederation
사용자 지정 리소스 를 만듭니다.
다음 명령을 실행하여 AtlasDataFederation
사용자 지정 리소스 를 생성합니다. roleId
는 이전 단계에서 RoleID
에 대해 반환된 값과 일치해야 하며 spec.projectRef.name
은 AtlasProject
사용자 지정 리소스의 이름과 일치해야 합니다.
cat <<EOF | kubectl apply -f - apiVersion: atlas.mongodb.com/v1 kind: AtlasDataFederation metadata: name: my-federated-deployment spec: projectRef: name: my-project namespace: default cloudProviderConfig: aws: roleId: 12345678 testS3Bucket: my-bucket dataProcessRegion: cloudProvider: AWS region: OREGON_USA name: my-fdi storage: databases: - collections: - dataSources: - allowInsecure: false collection: my-collection collectionRegex: database: my-database databaseRegex: defaultFormat: ".avro" path: / provenanceFieldName: string storeName: my-data-store urls: - string: name: my-collection-mdb maxWildcardCollections: 100 name: my-database-mdb views: - name: my-view pipeline: source: my-source-collection stores: - name: my-store provider: S3 additionalStorageClasses: - STANDARD bucket: my-bucket delimiter: / includeTags: false prefix: data- public: false region: US_WEST_1 EOF
다음 단계로 넘어갑니다.
연합 데이터베이스 인스턴스에 대한 비공개 엔드포인트를 구성하려면 비공개 엔드포인트 관리를 참조하세요.