このチュートリアルでは、Atlas Kubernetes Operator を使用してKubernetes構成ファイルから Atlas にフェデレーティッドデータベースインスタンスを作成する方法を説明します。このチュートリアルのフェデレーティッドデータベースインスタンスは、Amazon Web Services S3バケットと Atlas クラスターを接続します。
前提条件
このチュートリアルには次のものが必要です。
- Atlas Kubernetes Operator が配置された実行中の Kubernetes クラスター - AtlasProjectカスタム リソースを含む)。
- Amazon Web ServicesIAM ロールを変更する権限を持つ ユーザーのアカウント。 
手順
重要
カスタム リソースはデフォルトでオブジェクトを削除しなくなりました
- Atlas Kubernetes Operator はカスタムリソース構成ファイルを使用して Atlas 構成を管理しますが、Atlas Kubernetes Operator2.0 以降、 Kubernetesで削除したカスタム リソースは Atlas で削除されなくなりました(デフォルトでは )。代わりに、Atlas Kubernetes Operator は Atlas 内のそれらのリソースの管理を停止します。 例、 Kubernetesで カスタム リソースを削除すると、デフォルトでは、Atlas Kubernetes Operator は Atlas - AtlasProjectから対応するプロジェクトを自動的に削除しなくなります。この動作の変更は、誤ってまたは予期せずに削除されるのを防ぐことを目的としています。 この動作を Atlas Kubernetes Operator. 以前に使用されていたデフォルトに戻す方法などの詳細については、「2 0新しいデフォルト: Atlas Kubernetes Operator. の削除保護2 0」を参照してください。- 同様に、Atlas Kubernetes Operator を使用してKubernetesの Atlasプロジェクトからチームを削除しても、Atlas Kubernetes Operator は Atlas からチームを削除しません。 
- デフォルトのAtlas 構成値が暗黙的に使用されるのを避けるために、必要な構成の詳細を明示的に定義します。 場合によっては、Atlas のデフォルトを継承すると調整ループが発生し、カスタムリソースが - READY状態に達しなくなります。 例、含まれている例に示すように、- AtlasDeploymentカスタムリソースで必要なオートスケーリング動作を明示的に定義すると、カスタムリソース内の静的インスタンスサイズが、オートスケーリングが有効になっている Atlas 配置に繰り返し適用されないことが保証されます。- autoScaling: - diskGB: - enabled: true - compute: - enabled: true - scaleDownEnabled: true - minInstanceSize: M30 - maxInstanceSize: M40 
Amazon Web ServicesAtlas でAmazon Web Services IAM ロールを作成するAtlas
- Atlas CLI次のAmazon Web Services Atlasコマンドを実行して、 で新しい 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> 
Amazon Web Services IAM ロールの信頼ポリシーを変更します。
- Amazon Web Servicesマネジメント コンソールにログインします。 
- Identity and Access Management (IAM)サービスに移動します。 
- 左側のナビゲーションからRolesを選択します。 
- ロールのリストから Atlas アクセスに使用する既存の IAM ロールをクリックします。 
- 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 
次のステップへ進む
フェデレーティッドデータベースインスタンスのプライベートエンドポイントを構成するには、「プライベートエンドポイントの管理 」を参照してください。