Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Configurar la federación de datos

Este tutorial muestra cómo crear una instancia de base de datos federada en Atlas a partir de archivos de configuración de Kubernetes con Atlas Kubernetes Operator. La instancia de base de datos federada de este tutorial conecta un AWS S3 cubo y un clúster de Atlas.

Este tutorial requiere:

Importante

Recursos personalizados ya no borran objetos por defecto

  • Atlas Kubernetes Operator uses custom resource archivos de configuración to manage your Atlas configuration, but as of Atlas Kubernetes Operator 2.0, custom resources you borrar in Kubernetes are no longer (por defecto) borrados in Atlas. En su lugar, Atlas Kubernetes Operator simplemente deja de gestionar esos recursos en Atlas. Por ejemplo, si eliminas un AtlasProject Custom recurso en Kubernetes, de forma predeterminada, el Atlas Kubernetes Operator ya no elimina automáticamente el Proyecto correspondiente de Atlas. Este cambio de comportamiento está diseñado para ayudar a prevenir eliminaciones accidentales o inesperadas. Para saber más, incluido cómo revertir este comportamiento al por defecto utilizado antes de Atlas Kubernetes Operator 2.0, consulta Nuevo valor por defecto: Protección de Eliminación en Atlas Kubernetes Operator 2.0.

    De manera similar, Atlas Kubernetes Operator no elimina equipos de Atlas si los elimina de un proyecto Atlas en Kubernetes con Atlas Kubernetes Operator.

  • Define explícitamente los detalles de configuración que deseas para evitar el uso implícito de los valores de configuración por defecto de Atlas. En algunos casos, heredar los valores por defecto de Atlas puede crear un ciclo de conciliación que impida que el recurso personalizado alcance un estado de READY. Por ejemplo, definir explícitamente el comportamiento de escalado automático deseado en el recurso personalizado AtlasDeployment, como se muestra en el ejemplo incluido, garantiza que un tamaño de instancia estático en el recurso personalizado no se aplique repetidamente a una implementación de Atlas que tiene el escalado automático habilitado.

    autoScaling:
    diskGB:
    enabled: true
    compute:
    enabled: true
    scaleDownEnabled: true
    minInstanceSize: M30
    maxInstanceSize: M40
1
  1. Ejecute el siguiente comando de Atlas CLI para crear el nuevo rol de AWS IAM en Atlas. Reemplace el siguiente marcador de posición con su valor:

    Marcador de posición
    Descripción

    PROJECT-ID

    Única string hexadecimal de 24 caracteres que identifica el Proyecto de Atlas que se utilizará.

    atlas cloudProviders accessRoles aws create --projectId <PROJECT-ID>
  2. Observa los valores de los campos devueltos: RoleID, Atlas AWS Account ARN y Unique External ID:

    AWS IAM role '<RoleID>' successfully created.
    Atlas AWS Account ARN: <AtlasAWSAccountARN>
    Unique External ID: <AtlasAssumedRoleExternalID>
2
  1. Iniciar sesión en tu AWS Consola de gestión.

  2. Navega hasta el Identity and Access Management (IAM) servicio.

  3. Seleccione Roles en la navegación del lado izquierdo.

  4. Haga clic en el rol de IAM existente que desea utilizar para acceder a Atlas de la lista de roles.

  5. Selecciona la pestaña Trust Relationships.

  6. Haga clic en el botón Edit trust relationship.

  7. Editar el Policy Document. Agrega un objeto Statement nuevo con el siguiente contenido.

    Nota

    Reemplace las líneas resaltadas con los valores devueltos en el paso anterior.

    {
    "Version":"2012-10-17",
    "Statement":[
    {
    "Effect":"Allow",
    "Principal":{
    "AWS":"<atlasAWSAccountArn>"
    },
    "Action":"sts:AssumeRole",
    "Condition":{
    "StringEquals":{
    "sts:ExternalId":"<atlasAssumedRoleExternalId>"
    }
    }
    }
    ]
    }
  8. Haga clic en el botón Update Trust Policy.

3

Ejecute el siguiente comando para crear el AtlasDataFederation recurso personalizado. El roleId debe coincidir con el valor devuelto para RoleID en el paso anterior y el spec.projectRef.name debe coincidir con el nombre de su AtlasProject Recurso Personalizado:

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

Ejecute el siguiente comando hasta que reciba una respuesta True, lo que indica que el usuario de la base de datos está listo:

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

Para configurar puntos finales privados para su instancia de base de datos federada, consulte Administrar puntos finales privados.

Volver

Importar proyectos

En esta página