Introducción a los clústeres elásticos de Amazon DocumentDB - Amazon DocumentDB

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Introducción a los clústeres elásticos de Amazon DocumentDB

En esta sección de introducción se explica cómo crear y consultar su primer clúster elástico. Existen diversas maneras de conectarse y comenzar a utilizar los clústeres elásticos. Esta guía utiliza AWS Cloud9, un terminal basado en la web para conectarse y consultar su clúster elástico mediante el intérprete de comandos de mongo directamente desde la AWS Management Console.

Configuración

Si prefiere conectarse a su Amazon DocumentDB desde su máquina local mediante la creación de una conexión SSH a una instancia de Amazon EC2, consulte Cómo conectarse con Amazon EC2.

Requisitos previos

Antes de crear el primer clúster de Amazon DocumentDB, debe hacer lo siguiente:

Creación de una cuenta de Amazon Web Services (AWS)

Para empezar a utilizar Amazon DocumentDB, debe tener una cuenta de Amazon Web Services (AWS). La AWS cuenta es gratuita. Solo se paga por los servicios y los recursos que se utilicen.

Si no tiene una Cuenta de AWS, complete los siguientes pasos para crearla.

Para suscribirte a una Cuenta de AWS
  1. Abra https://portal.aws.amazon.com/billing/signup.

  2. Siga las instrucciones que se le indiquen.

    Parte del procedimiento de registro consiste en recibir una llamada telefónica e indicar un código de verificación en el teclado del teléfono.

    Cuando te registras en una Cuenta de AWS, Usuario raíz de la cuenta de AWSse crea una. El usuario raíz tendrá acceso a todos los AWS services y recursos de esa cuenta. Como práctica recomendada de seguridad, asigne acceso administrativo a un usuario y utilice únicamente el usuario raíz para realizar tareas que requieren acceso de usuario raíz.

Configure los permisos AWS Identity and Access Management (IAM) necesarios.

El acceso para gestionar los recursos de Amazon DocumentDB, como clústeres, instancias y grupos de parámetros de clústeres, requiere credenciales que AWS pueda utilizar para autenticar sus solicitudes. Para obtener más información, consulte Identity and Access Management para Amazon DocumentDB.

  1. En la barra de búsqueda AWS Management Console, escriba IAM y seleccione IAM en el menú desplegable.

  2. Cuando esté en la consola de IAM, seleccione Usuarios en el panel de navegación.

  3. Seleccione su nombre de usuario.

  4. Haga clic en el botón Añadir permisos.

  5. Seleccione Asociar directamente las políticas existentes.

  6. Escriba AmazonDocDBFullAccess en la barra de búsqueda y selecciónelo en cuanto aparezca en los resultados de búsqueda.

  7. Haga clic en el botón azul de la parte inferior que dice Siguiente: Revisión.

  8. Haga clic en el botón azul de la parte inferior que dice Añadir permisos.

Creación de una Amazon Virtual Private Cloud (Amazon VPC)

Este paso solo es necesario si todavía no tiene una Amazon VPC predeterminada. Si no lo hace, complete el paso 1 de la Introducción a Amazon VPC en la Guía del usuario de Amazon VPC. Esto tardará menos de cinco minutos.

Paso 1: crear un clúster elástico

En esta sección, explicamos cómo crear un clúster elástico completamente nuevo, utilizando las instrucciones siguientes AWS Management Console o siguiendo AWS CLI estas instrucciones.

Using the AWS Management Console

Para crear una configuración de clúster elástico mediante la AWS Management Console:

  1. Inicie sesión en la AWS Management Console de Amazon DocumentDB y ábrala.

  2. En la consola de administración de Amazon DocumentDB, en Clústeres, elija Crear.

    Diagrama: creación de un clúster elástico
  3. En la página Crear clúster de Amazon DocumentDB, en la sección Tipo de clúster, elija clúster elástico.

    Diagrama: tipo de clúster elástico
  4. En la página Crear clúster de Amazon DocumentDB, en la sección Configuración, introduzca un identificador de clúster único (siguiendo los requisitos de denominación que aparecen debajo del campo).

    Diagrama: identificador de clúster elástico
  5. Para los campos de configuración del fragmento:

    1. En el campo Recuento de particiones, introduzca el número de particiones que desea tener en el clúster. El número máximo de particiones por clúster es 32.

      nota

      Se implementarán dos nodos para cada partición. Ambos nodos tendrán la misma capacidad de partición.

    2. En el campo Recuento de instancias de fragmentos, elija el número de instancias de réplica que desee asociar a cada fragmento. El número máximo de instancias de fragmentación es de 16, en incrementos de 1. Todas las instancias de réplica tienen la misma capacidad de partición que se define en el campo siguiente.

      nota

      El número de instancias de réplica se aplica a todos los fragmentos del clúster elástico. Un valor de recuento de instancias de fragmentos igual a 1 significa que hay una instancia de grabación y las instancias adicionales son réplicas que se pueden usar para realizar lecturas y mejorar la disponibilidad.

    3. En el campo Capacidad del fragmento, elija el número de CPU virtuales (vCPU) que desee asociar a cada instancia del fragmento. La cantidad máxima de vCPU por instancia de partición es 64. Los valores permitidos son 2, 4, 8, 16, 32, 64.

    Diagrama: número y capacidad de particiones del clúster elástico
  6. En el campo Nube privada virtual (VPC), elija una VPC de la lista desplegable.

    Para las subredes y los grupos de seguridad de VPC, puede usar los valores predeterminados o seleccionar tres subredes de su elección y hasta tres grupos de seguridad de VPC (uno como mínimo).

    Diagrama: VPC de clúster elástico y subredes
  7. En la sección de autenticación, introduzca una cadena que identifique el nombre de inicio de sesión del usuario principal en el campo Nombre de usuario.

    En el campo Contraseña, introduzca una contraseña única que cumpla con las instrucciones.

    Diagrama: nombre de usuario y contraseña del clúster elástico
  8. En la sección de Cifrado, mantenga la configuración predeterminada.

    Si lo desea, puede introducir un AWS KMS key ARN que haya creado. Para obtener más información, consulte Activación del cifrado de datos en reposo de un clúster elástico de Amazon DocumentDB.

    importante

    El cifrado debe estar habilitado para los clústeres elásticos.

  9. En la sección Backup, edite los campos de acuerdo con sus requisitos de respaldo.

    Captura de pantalla del panel de copia de seguridad con los pasos para configurar el periodo de copia de seguridad del clúster.
    1. Periodo de retención de copias de seguridad: en la lista, elija el número de días que se deben conservar las copias de seguridad automáticas de este clúster antes de eliminarlas.

    2. Periodo de copia de seguridad: especifique la hora del día en que Amazon DocumentDB debe hacer las copias de seguridad de este clúster y la duración de las mismas.

      1. Elija Seleccionar ventana si desea configurar la hora y la duración de la creación de las copias de seguridad.

        Hora de inicio: en la primera lista, elija la hora de inicio (UTC) para las copias de seguridad automáticas. En la segunda lista, elija el minuto de la hora en que desea que comiencen las copias de seguridad automáticas.

        Duración: en la lista, elija el número de horas que se deben asignar para crear las copias de seguridad automáticas.

      2. Seleccione Sin preferencias si desea que Amazon DocumentDB elija la hora y la duración de la creación de las copias de seguridad.

  10. En la sección Mantenimiento, elija el día, la hora y la duración en que se aplicarán las modificaciones o los parches al clúster.

    Diagrama: nombre de usuario y contraseña del clúster elástico
  11. Elija Create cluster.

El clúster elástico se está aprovisionando ahora. Esto puede tardar unos minutos en terminar. Puede conectarse a su clúster cuando aparezca el estado del clúster elástico, como active en la lista de clústeres.

Using the AWS CLI

Para crear un clúster elástico mediante AWS CLI, utilice la create-cluster operación con los siguientes parámetros:

  • --cluster-name: obligatorio. El nombre actual del clúster de escala elástica tal como se ingresó durante la creación o se modificó por última vez.

  • --shard-capacity: obligatorio. El número de vCPU asignado a cada partición. El máximo es 64. Los valores permitidos son 2, 4, 8, 16, 32, 64.

  • --shard-count: obligatorio. La cantidad de particiones asignadas al clúster. El máximo es 32.

  • --shard-instance-count: opcional. El número de instancias de réplica que se aplican a todos los fragmentos de este clúster. El máximo es 16.

  • --admin-user-name: obligatorio. Nombre del usuario asociado al usuario administrador.

  • --admin-user-password: obligatorio. La contraseña asociada al usuario administrador.

  • --auth-type: obligatorio. El tipo de autenticación utilizado para determinar dónde buscar la contraseña que se usa para acceder al clúster elástico. Los tipos válidos son PLAIN_TEXT o SECRET_ARN.

  • --vpc-security-group-ids: opcional. Configure una lista de grupos de seguridad para asociar a este clúster.

  • --preferred-maintenance-window: opcional. Configure el tiempo semanal durante el cual puede llevarse a cabo el mantenimiento del sistema, en tiempo universal coordinado (UTC).

    El formato es: ddd:hh24:mi-ddd:hh24:mi. Días válidos: lunes, martes, miércoles, jueves, viernes, sábado, domingo

    El valor predeterminado es un periodo de 30 minutos seleccionado al azar de un bloque de 8 horas de tiempo para cada región de Amazon Web Services, que tiene lugar un día de la semana de forma aleatoria.

    El plazo mínimo es 30 minutos.

  • --kms-key-id: opcional. Configure el identificador de la clave de KMS de un clúster cifrado.

    El identificador de clave de KMS es el nombre de recurso de Amazon (ARN) de la clave de AWS KMS cifrado. Si está creando un clúster con la misma cuenta de Amazon Web Services a la que pertenece la clave de cifrado de KMS utilizada para cifrar el clúster nuevo, puede utilizar el alias de la clave de KMS en lugar del ARN para la clave de cifrado de KMS.

    Si no se especifica ninguna clave de cifrado KmsKeyId y el StorageEncrypted parámetro es verdadero, Amazon DocumentDB utiliza la clave de cifrado predeterminada.

  • --preferred-backup-window: opcional. El intervalo de tiempo diario preferido durante el cual se crean las copias de seguridad automatizadas. El valor predeterminado es un período de 30 minutos seleccionado al azar de un bloque de tiempo de 8 horas para cada uno Región de AWS.

  • --backup-retention-period: opcional. El número de días durante los que se retienen las copias de seguridad automatizadas. El valor predeterminado es 1.

  • --storage-encrypted: opcional. Configura si el clúster está cifrado o no.

    --no-storage-encrypted especifica que el clúster no está cifrado.

  • --subnet-ids: opcional. Configure los identificadores de subred de la red.

En el siguiente ejemplo, reemplace cada marcador de posición del usuario con su propia información.

nota

Los siguientes ejemplos incluyen la creación de una clave KMS específica. Para usar la clave KMS predeterminada, no incluya el --kms-key-id parámetro.

Para Linux, macOS o Unix:

aws docdb-elastic create-cluster \ --cluster-name sample-cluster-123 \ --shard-capacity 8 \ --shard-count 4 \ --shard-instance-count 3 \ --auth-type PLAIN_TEXT \ --admin-user-name testadmin \ --admin-user-password testPassword \ --vpc-security-group-ids ec-65f40350 \ --kms-key-id arn:aws:docdb-elastic:us-east-1:477568257630:cluster/b9f1d489-6c3e-4764-bb42-da62ceb7bda2 \ --subnet-ids subnet-9253c6a3, subnet-9f1b5af9 \ --preferred-backup-window 18:00-18:30 \ --backup-retention-period 7

Para Windows:

aws docdb-elastic create-cluster ^ --cluster-name sample-cluster-123 ^ --shard-capacity 8 ^ --shard-count 4 ^ --shard-instance-count 3 ^ --auth-type PLAIN_TEXT ^ --admin-user-name testadmin ^ --admin-user-password testPassword ^ --vpc-security-group-ids ec-65f40350 ^ --kms-key-id arn:aws:docdb-elastic:us-east-1:477568257630:cluster/b9f1d489-6c3e-4764-bb42-da62ceb7bda2 ^ --subnet-ids subnet-9253c6a3, subnet-9f1b5af9 \ --preferred-backup-window 18:00-18:30 \ --backup-retention-period 7

Paso 2: Crea un entorno AWS Cloud9

AWS Cloud9 proporciona un terminal basado en la web que puede utilizar para conectarse a los clústeres elásticos de Amazon DocumentDB y consultarlos mediante el shell mongo.

nota

Nota: El AWS Cloud9 entorno debe estar en el mismo grupo de seguridad que la instancia. Puede cambiar el grupo de seguridad en la consola de Amazon EC2.

  1. Utilice su AWS cuenta y acceda a AWS Management Console.

  2. Vaya a la consola de AWS Cloud9 . Puede escribir “Cloud9” en el campo de búsqueda para localizarla.

  3. En la página de inicio del entorno AWS Cloud9, seleccione Crear entorno.

  4. En la página de nombres del entorno, en el campo Nombre, introduzca el nombre que desee.

    Elija Next Step (Paso siguiente).

    Diagrama: nombre Cloud9
  5. En Configuración del entorno, en la sección Tipo de entorno, seleccione Crear una nueva instancia de EC2 para el entorno (acceso directo).

    En la sección Tipo de instancia, seleccione un tipo de instancia adecuado para su red.

    En la sección Plataforma, seleccione Amazon Linux 2 (recomendado).

    Diagrama: configuración del entorno de Cloud9
  6. Expanda Network settings (advanced) (Ajustes de red (Avanzado)).

    Elija la VPC y una de las subredes que utilizó al crear el clúster elástico.

    Elija Next Step (Paso siguiente).

    Diagrama: configuración de red Cloud9
  7. Revise su AWS Cloud9 configuración.

    Si la configuración es correcta, seleccione Crear entorno.

Paso 3: instalar el intérprete de comandos de mongo

Una vez que su AWS Cloud9 entorno esté listo, estará listo para conectarse a su clúster. A continuación, instale el shell mongo en el AWS Cloud9 entorno que creó en el paso 3. El intérprete de comandos de mongo es una utilidad de línea de comandos que se utiliza para conectarse y consultar su clúster elástico.

Si su AWS Cloud9 entorno sigue abierto desde el paso 3, vuelva a ese entorno y vaya directamente a la instrucción 3. Si ha navegado fuera de su AWS Cloud9 entorno, en la AWS Cloud9 consola, en la sección Sus entornos, busque el entorno etiquetado con el nombre que estableció en el paso anterior. Seleccione Open HCX.

  1. En el símbolo del sistema, cree el archivo de repositorio con el siguiente comando:

    echo -e "[mongodb-org-4.0] \nname=MongoDB Repository\nbaseurl=https://repo.mongodb.org/yum/amazon/2013.03/mongodb-org/4.0/x86_64/\ngpgcheck=1 \nenabled=1 \ngpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc" | sudo tee /etc/yum.repos.d/mongodb-org-4.0.repo
  2. Cuando esté completo, instale el intérprete de comandos mongo con el siguiente comando:

    sudo yum install -y mongodb-org-shell

Paso 4: conectarse a su nuevo clúster elástico

Conéctese a su clúster mediante el intérprete de comandos de mongo que instaló en el paso 4.

  1. En la consola de administración de Amazon DocumentDB, en Clústeres, localice su clúster. Ordene por rol para mostrar todos los clústeres con el rol clúster elástico.

    Diagrama: pantalla de lista elástica de clústeres
  2. Elija el clúster que creó seleccionando el identificador del clúster. En Conectividad y seguridad, copie su terminal y péguelo en su AWS Cloud9 entorno.

    Diagrama: pantalla de conexión de clústeres elásticos
  3. Una vez conectado, debería ver los siguientes datos de salida:

    Diagrama: pantalla de conexión de clústeres elásticos finales

Paso 5: hacer una partición de su colección; insertar y consultar los datos

Los clústeres elásticos aportan compatibilidad para crear particiones en Amazon DocumentDB. Ahora que está conectado a su clúster, puede hacer particiones, insertar datos y ejecutar algunas consultas.

  1. Para hacer particiones en una colección, escriba lo siguiente:

    sh.shardCollection("db.Employee1" , { "Employeeid" : "hashed" })

  2. Para insertar un solo documento, escriba lo siguiente:

    db.Employee1.insert({"Employeeid":1, "Name":"Joe", "LastName": "Bruin", "level": 1 })

    Se muestra lo siguiente:

    WriteResult({ "nInserted" : 1 })

  3. Para leer el documento que escribió, introduzca el comando findOne() (devuelve un único documento):

    db.Employee1.findOne()

    Se muestra lo siguiente:

    { "_id" : ObjectId("61f344e0594fe1a1685a8151"), "EmployeeID" : 1, "Name" : "Joe", "LastName" : "Bruin", "level" : 1 }
  4. Para realizar algunas consultas más, plantéese un caso de uso de perfil de juegos. Primero, inserte algunas entradas en una colección titulada “Empleado”. Introduzca lo siguiente:

    db.Employee1.insertMany([ { "Employeeid" : 1, "name" : "Matt", "lastname": "Winkle", "level": 12}, { "Employeeid" : 2, "name" : "Frank", "lastname": "Chen", "level": 2}, { "Employeeid" : 3, "name" : "Karen", "lastname": "William", "level": 7}, { "Employeeid" : 4, "name" : "Katie", "lastname": "Schaper", "level": 3} ])

    Se muestra lo siguiente:

    { "acknowledged" : true, "insertedIds" : [ 1, 2, 3, 4 ] }

  5. Para devolver todos los documentos de la colección de perfiles, introduzca el comando find ():

    db.Employee1.find()

    Se muestran los datos que ingresó en el paso 4.

  6. Para consultar un solo documento, incluya un filtro (por ejemplo: “Katie”). Introduzca lo siguiente:

    db.Employee1.find({name: "Katie"})

    Se muestra lo siguiente:

    { "_id" : 4, "name" : "Katie", "lastname": "Schaper", "level": 3}

  7. Para buscar un perfil y modificarlo, introduzca el comando findAndModify. En este ejemplo, al empleado “Matt” se le asigna un nivel superior de “14”:

    db.Employee1.findAndModify({ query: { "Employeeid" : 1, "name" : "Matt"}, update: { "Employeeid" : 1, "name" : "Matt", "lastname" : "Winkle", "level" : 14 } })

    Aparece el siguiente resultado (tenga en cuenta que el nivel no ha cambiado todavía):

    { "_id" : 1, "name" : "Matt", "lastname" : "Winkle", "level" : 12, }
  8. Para verificar el aumento de nivel, introduzca la siguiente consulte:

    db.Employee1.find({name: "Matt"})

    Se muestra lo siguiente:

    { "_id" : 1, "name" : "Matt", "lastname" : "winkle", "level" : 14 }