Docs Menu
Docs Home
/ /
MongoDB Atlas Kubernetes 演算子

Data Federation を設定する

項目一覧

  • 前提条件
  • 手順
  • Amazon Web Services IAM ロールを作成Atlas
  • Amazon Web Services IAM ロールの信頼ポリシーを変更します。
  • AtlasDataFederationカスタム リソースを作成します。
  • フェデレーティッドデータベースインスタンスのステータスを確認します。
  • 次のステップへ進む

このチュートリアルでは、Atlas Kubernetes Operator を使用して Kubernetes 構成ファイルから Atlas にフェデレーティッドデータベースインスタンスを作成する方法を説明します。 このチュートリアルのフェデレーティッドデータベースインスタンスは、 Amazon Web Services S3バケットとAtlasクラスターを接続します。

このチュートリアルには次のものが必要です。

重要

カスタム リソースはデフォルトでオブジェクトを削除しなくなりました

  • Atlas Kubernetes Operator はカスタムリソース構成ファイルを使用して Atlas2.0 構成を管理しますが、 Atlas Kubernetes Operator 以降、 Kubernetesで削除したカスタム リソースは Atlas で削除されなくなりました(デフォルトでは )。代わりに、Atlas Kubernetes Operator は Atlas 内のそれらのリソースの管理を停止します。例、 Kubernetesで カスタム リソースを削除すると、デフォルトでは、Atlas Kubernetes OperatorAtlasProject は Atlas から対応するプロジェクトを自動的に削除しなくなります。この動作の変更は、誤ってまたは予期せずに削除されるのを防ぐことを目的としています。この動作を Atlas Kubernetes Operator2 0より前に使用されていたデフォルトに戻す方法などの詳細については、 をご覧ください。 については、「 新しいデフォルト: Atlas Kubernetes Operator の削除保護 」を参照してください。20 。

    同様に、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
1
  1. Atlas CLI次のAmazon Web Services Atlasコマンドを実行して、 で新しい IAM ロールを作成します。次のプレースホルダーを自分の値に置き換えます。

    プレースホルダー
    説明

    PROJECT-ID

    使用するAtlasプロジェクトを識別する一意の24文字の16進数文字列。

    atlas cloudProviders accessRoles aws create --projectId <PROJECT-ID>
  2. 返されたフィールド値RoleIDAtlas AWS Account ARNUnique External IDに注意します。

    AWS IAM role '<RoleID>' successfully created.
    Atlas AWS Account ARN: <AtlasAWSAccountARN>
    Unique External ID: <AtlasAssumedRoleExternalID>
2
  1. Amazon Web Servicesマネジメント コンソールにログインします。

  2. Identity and Access Management (IAM)サービスに移動します。

  3. 左側のナビゲーションからRolesを選択します。

  4. ロールのリストから Atlas アクセスに使用する既存の IAM ロールをクリックします。

  5. Trust Relationships タブを選択します。

  6. Edit trust relationshipボタンをクリックします。

  7. Policy Documentを編集します。 次のコンテンツを持つ新しいStatementオブジェクトを追加します。

    注意

    強調表示された行を、前の手順で返された値に置き換えます。

    {
    "Version":"2012-10-17",
    "Statement":[
    {
    "Effect":"Allow",
    "Principal":{
    "AWS":"<atlasAWSAccountArn>"
    },
    "Action":"sts:AssumeRole",
    "Condition":{
    "StringEquals":{
    "sts:ExternalId":"<atlasAssumedRoleExternalId>"
    }
    }
    }
    ]
    }
  8. Update Trust Policyボタンをクリックします。

3

次のコマンドを実行して、 AtlasDataFederationカスタム リソースを作成します。 roleIdは前のステップでRoleIDに返された値と一致し、 spec.projectRef.nameAtlasProjectカスタム リソースの名前と一致する必要があります。

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
4

データベースユーザーが準備できたことを示すTrue応答が返されるまで、次のコマンドを実行します。

kubectl get atlasdatafederation my-federated-deployment -o=jsonpath='{.status.conditions[?(@.type=="Ready")].status}'

フェデレーティッドデータベースインスタンスのプライベートエンドポイントを構成するには、「プライベートエンドポイントの管理 」を参照してください。

戻る

プロジェクトのインポート