Docs Menu
Docs Home

Implementar una instancia de base de datos federada en AWS S3

Para implementar una instancia de base de datos federada, debe tener Project Owner acceso al proyecto.

Importante

Los usuarios con acceso deben agregarse Organization Owner como Project Owner al proyecto antes de implementar su instancia de base de datos federada.

Before deploying your federated database instance in your AWS S3 bucket, you have to complete the following steps:

  1. Crear una MongoDB Atlas account, if you do not have one already.

  2. Instala el AWS CLI.

  3. Configure the AWS CLI to access your AWS account. Alternatively, you must have access to the AWS Management Console with permission to create IAM roles.

1
2
3
  1. Haz clic en el menú desplegable Crear nueva base de datos federada

  2. Seleccione Configuración manual en el menú

4
  1. Select AWS as your cloud provider

  2. Escriba el nombre de su instancia de base de datos federada

  3. Haga clic en Continuar

IMPORTANTE: El nombre predeterminado de FederatedDatabaseInstance[n] su instancia de base de datos federada es. Una vez creada, no podrá cambiarle el nombre.

5
  • Para una interfaz visual, haga clic en Visual.

  • Para editar directamente en el archivo JSON, haga clic JSON Editor en.

6
  1. Seleccione el conjunto de datos para su instancia de base de datos federada en la sección Data Sources.

    Haga clic en Add Data Sources para seleccionar su almacén de datos.

  2. Especifique su almacén de datos.

    Choose Amazon S3 to configure a federated database instance for data in AWS S3 buckets.

    Corresponds to stores.[n].provider JSON configuration setting.

  3. Select an AWS IAM role for Atlas.

    Puede seleccionar un rol de AWS IAM existente para el cual Atlas esté autorizado desde la lista desplegable de selección de roles o elegir Authorize an AWS IAM Role para autorizar un nuevo rol.

    Si seleccionó un rol existente para el cual Atlas está autorizado, continúe con el siguiente paso para enumerar sus buckets de AWS S.3

    Si está autorizando a Atlas para un rol existente o está creando un rol nuevo, complete los siguientes pasos antes de continuar con el siguiente paso:

    1. Seleccione Authorize an AWS IAM Role para autorizar un nuevo rol o seleccione un rol existente del menú desplegable y haga clic en Next.

    2. Utiliza el AWS ARN y el ID externo único en la sección Add Atlas to the trust relationships of your AWS IAM role para agregar Atlas a las relaciones de confianza de un rol IAM de AWS existente o nuevo.

      En la interfaz de usuario de Atlas, haga clic y expanda uno de los siguientes:

      • El Create New Role with the AWS CLI muestra cómo usar el ARN y el ID externo único para agregar Atlas a las relaciones de confianza de un nuevo rol de AWS IAM. Siga los pasos de la interfaz de usuario de Atlas para crear un nuevo rol. Para obtener más información, consulte Crear un nuevo rol con la CLI de AWS.

        Al autorizar un nuevo rol, si abandona el flujo de trabajo Configure a New Data Lake:

        • Before validating the role, Atlas will not create the federated database instance. You can go to the Atlas Integrations page to authorize a new role. You can resume the workflow when you have the AWS IAM role ARN.

        • Tras validar el rol, Atlas no creará la instancia de base de datos federada. Sin embargo, el rol está disponible en el menú desplegable de selección de roles y puede usarse para crear una instancia de base de datos federada. No es necesario volver a autorizar el rol.

      • El Add Trust Relationships to an Existing Role muestra cómo usar el ARN y el ID externo único para agregar Atlas a las relaciones de confianza de un rol de AWS IAM existente. Siga los pasos de la interfaz de usuario de Atlas para agregar Atlas a la relación de confianza de un rol existente. Para obtener más información, consulte Agregar relaciones de confianza a un rol existente.

      IMPORTANT: If you modify your custom AWS role ARN in the future, verify that the access policy for the role includes the appropriate access to the S3 resources for the federated database instance.

      Para más información, consulte
    3. Haga clic en Next.

  4. Ingrese la información del depósito S3.

    1. Introduzca el nombre de su depósito S3.

      Corresponds to stores.[n].bucket JSON configuration setting.

    2. Especifique si el depósito es Read-only o ambos Read and write.

      Atlas can only query Read-only buckets; if you wish to query and save query results to your S3 bucket, choose Read and write. To save query results to your S3 bucket, the role policy that grants Atlas access to your AWS resources must include the s3:PutObject and s3:DeleteObject permissions in addition to the s3:ListBucket, s3:GetObject, s3:GetObjectVersion, and s3:GetBucketLocation permissions, which grant read access. See step 4 below to learn more about assigning access policy to your AWS IAM role.

    3. Select the region of the S3 bucket.

      Corresponds to stores.[n].region JSON configuration setting.

      IMPORTANT: You can't create a federated database instance if Atlas Data Federation is unable to retrieve the region of the specified S3 bucket.

    4. Optional. Specify a prefix that Data Federation should use when searching the files in the S3 bucket. If omitted, Data Federation does a recursive search for all files from the root of the S3 bucket.

      Corresponds to stores.[n].prefix JSON configuration setting.

    5. Haga clic en Next.

  5. Assign an access policy to your AWS IAM role.

    1. Follow the steps in the Atlas user interface to assign an access policy to your AWS IAM role.

      Su política de roles para acceso de solo lectura o de lectura y escritura debería ser similar a la siguiente:

      {
      "Version": "2012-10-17",
      "Statement": [
      {
      "Effect": "Allow",
      "Action": [
      "s3:ListBucket",
      "s3:GetObject",
      "s3:GetObjectVersion",
      "s3:GetBucketLocation"
      ],
      "Resource": [
      <role arn>
      ]
      }
      ]
      }
      {
      "Version": "2012-10-17",
      "Statement": [
      {
      "Effect": "Allow",
      "Action": [
      "s3:ListBucket",
      "s3:GetObject",
      "s3:GetObjectVersion",
      "s3:GetBucketLocation",
      "s3:PutObject",
      "s3:DeleteObject"
      ],
      "Resource": [
      <role arn>
      ]
      }
      ]
      }
    2. Haga clic en Next.

  6. Define the path structure for your files in the S3 bucket and click Next.

    Por ejemplo:

    s3://<bucket-name>/<path>/<to>/<files>/<filename>.<file-extension>

    To add additional paths to data on your S3 bucket, click Add Data Source and enter the path. To learn more about paths, see Define Path File Syntax.

    Corresponds to databases.[n].collections.[n].dataSources.[n].path JSON configuration setting.

  7. Cree bases de datos, colecciones y vistas virtuales y asigne las bases de datos, colecciones y vistas a su almacén de datos.

    1. (Opcional) Haga clic en el botón para:

      • Base de datos para editar el nombre de la base de datos. El valor predeterminado es VirtualDatabase[n].

        Corresponde a la databases.[n].name configuración JSON.

      • Colección para editar el nombre de la colección. El valor predeterminado es VirtualCollection[n].

        Corresponde a la databases.[n].collections.[n].name configuración JSON.

      • Ver para editar el nombre de la vista.

      Puedes hacer clic:

      • Add Database para agregar bases de datos y colecciones.

      • asociado con la base de datos para agregar colecciones a la base de datos.

      • Asociado a la colección para agregar vistas a la misma. Para crear una vista, debe especificar:

        • El nombre de la vista.

        • La tubería que se aplicará a la vista.

          La canalización de definición de vista no puede incluir las etapas $out ni $merge. Si la definición de vista incluye etapas de canalización anidadas, como $lookup o $facet, esta restricción también se aplica a dichas canalizaciones anidadas.

        Para obtener más información sobre las vistas, consulte:

      • asociado con la base de datos, colección o vista para eliminarlo.

    2. Seleccione AWS S3 del menú desplegable en la sección Data Sources.

    3. Arrastre y suelte el almacén de datos para mapearlo con la colección.

      Corresponde a la databases.[n].collections.[n].dataSources configuración JSON.

Your configuration for AWS S3 data store should look similar to the following:

{
"stores" : [
{
"name" : "<string>",
"provider": "<string>",
"region" : "<string>",
"bucket" : "<string>",
"additionalStorageClasses" : ["<string>"],
"prefix" : "<string>",
"includeTags": <boolean>,
"delimiter": "<string>",
"public": <boolean>
}
],
"databases" : [
{
"name" : "<string>",
"collections" : [
{
"name" : "<string>",
"dataSources" : [
{
"storeName" : "<string>",
"path" : "<string>",
"defaultFormat" : "<string>",
"provenanceFieldName": "<string>",
"omitAttributes": true | false
}
]
}
],
"maxWildcardCollections" : <integer>,
"views" : [
{
"name" : "<string>",
"source" : "<string>",
"pipeline" : "<string>"
}
]
}
]
}

Para obtener más información sobre los ajustes de configuración, consulte Configurar almacenes de datos para una instancia de base de datos federada.

  1. Define tu almacén de datos de AWS S3.

    Edit the JSON configuration settings shown in the UI for stores. Your stores cofiguration setting should resemble the following:

    "stores" : [
    {
    "name" : "<string>",
    "provider" : "<string>",
    "region" : "<string>",
    "bucket" : "<string>",
    "additionalStorageClasses" : ["<string>"],
    "prefix" : "<string>",
    "delimiter" : "<string>",
    "includeTags": <boolean>,
    "public": <boolean>
    }
    ]

    Para obtener más información sobre estos ajustes de configuración,stores consulte.

  2. Defina las bases de datos virtuales, colecciones y vistas de su instancia de base de datos federada.

    Edit the JSON configuration settings shown in the UI for databases. Your databases cofiguration setting should resemble the following:

    "databases" : [
    {
    "name" : "<string>",
    "collections" : [
    {
    "name" : "<string>",
    "dataSources" : [
    {
    "storeName" : "<string>",
    "defaultFormat" : "<string>",
    "path" : "<string>",
    "provenanceFieldName": "<string>",
    "omitAttributes": <boolean>
    }
    ]
    }
    ],
    "maxWildcardCollections" : <integer>,
    "views" : [
    {
    "name" : "<string>",
    "source" : "<string>",
    "pipeline" : "<string>"
    }
    ]
    }
    ]

    Para obtener más información sobre estos ajustes de configuración,databases consulte.

7
8

Para crear una nueva base de datos de Federación de datos mediante la CLI de Atlas, ejecute el siguiente comando:

atlas dataFederation create <name> [options]

Para obtener más información sobre la sintaxis y los parámetros del comando, consulte la documentación de la CLI de Atlas para atlas dataFederation create.