Como iniciar com clusters elásticos do Amazon DocumentDB - Amazon DocumentDB

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Como iniciar com clusters elásticos do Amazon DocumentDB

Esta seção de introdução explica como é possível criar e consultar seu primeiro cluster elástico. Existem muitas maneiras de se conectar e começar a usar clusters elásticos. Este guia usa o Amazon Elastic Compute Cloud (Amazon EC2) para conectar e consultar seu cluster elástico do Amazon DocumentDB diretamente do AWS Management Console.

Configurar

Se você preferir se conectar ao Amazon DocumentDB a partir da sua máquina local criando uma conexão SSH com uma instância do Amazon EC2, consulte Conexão com o Amazon EC2.

Pré-requisitos

Antes de criar o primeiro cluster do Amazon DocumentDB, você deve fazer o seguinte:

Crie uma conta (AWS) da Amazon Web Services

Antes de começar a usar o Amazon DocumentDB, você deve ter uma conta da Amazon Web Services (AWS). A conta da AWS é gratuita. Você paga apenas pelos serviços e recursos usados.

Se você ainda não tem um Conta da AWS, complete as etapas a seguir para criar um.

Para se cadastrar em uma Conta da AWS
  1. Abra https://portal.aws.amazon.com/billing/signup.

  2. Siga as instruções online.

    Parte do procedimento de inscrição envolve receber uma chamada telefônica e inserir um código de verificação no teclado do telefone.

    Quando você se cadastra em uma Conta da AWS, um Usuário raiz da conta da AWS é criado. O usuário raiz tem acesso a todos os Serviços da AWS e atributos na conta. Como prática recomendada de segurança, atribua o acesso administrativo a um usuário e use somente o usuário-raiz para executar tarefas que exigem acesso de usuário-raiz.

Configure as permissões necessárias do AWS Identity and Access Management (IAM).

O acesso para gerenciar recursos do Amazon DocumentDB como clusters, instâncias e grupos de parâmetros de cluster exige credenciais que a AWS pode usar para autenticar suas solicitações. Para obter mais informações, consulte Gerenciamento de identidade e Gerenciamento de acesso para o Amazon DocumentDB.

  1. Na barra de pesquisa do AWS Management Console, digite IAM e selecione IAM no menu suspenso.

  2. Depois de chegar ao console do IAM, selecione Usuários no painel de navegação.

  3. Selecione o nome de usuário.

  4. Clique no botão Adicionar permissões.

  5. Selecione Anexar políticas diretamente.

  6. Digite AmazonDocDBFullAccess na barra de pesquisa e selecione-a quando ela aparecer nos resultados da pesquisa.

  7. Clique no botão Avançar.

  8. Clique no botão Adicionar permissões.

Crie uma Amazon Virtual Private Cloud (Amazon VPC)

Sua conta AWS inclui uma VPC padrão em cada região. Essa etapa somente será necessária se você optar por usar uma Amazon VPC padrão. Nesse caso, conclua as etapas no tópico Criar uma Amazon VPC no Guia do usuário da Amazon VPC.

Iniciar uma instância do Amazon EC2

Conclua as etapas 1 e 2 do tópico Comece a usar o Amazon EC2 no Guia do usuário do Amazon Elastic Compute Cloud.

nota

Registre o nome e o ID do grupo de segurança criado para sua instância do Amazon EC2.

Etapa 1: Criar um cluster do ElastiCache

Nesta seção, explicamos como criar um novo cluster elástico usando AWS Management Console ou AWS CLI com as instruções a seguir.

Using the AWS Management Console

Para criar uma configuração de cluster elástico usando o AWS Management Console:

  1. Faça login no AWS Management Console e abra o console do Amazon DocumentDB.

  2. No Console de gerenciamento do Amazon DocumentDB, em Clusters, escolha Criar.

    Diagrama: criação de cluster elástico
  3. Na página Criar cluster do Amazon DocumentDB, na seção Tipo de cluster, escolha Cluster elástico.

    Diagrama: tipo de cluster elástico
  4. Na página Criar cluster do Amazon DocumentDB, na seção Configuração, insira um identificador de cluster exclusivo (seguindo os requisitos de nomenclatura abaixo do campo).

    Diagrama: identificador de cluster elástico
  5. Para os campos de configuração do fragmento:

    1. No campo Contagem de fragmentos, insira o número de fragmentos que você deseja em seu cluster. O número máximo de fragmentos por cluster é 32.

      nota

      Dois nós serão implantados para cada fragmento. Ambos os nós terão a mesma capacidade de fragmentos.

    2. No campo Contagem de instâncias de fragmentos, escolha o número de instâncias de réplica que você deseja associar a cada fragmento. O número máximo de instâncias de fragmento é 16, em incrementos de 1. Todas as instâncias de réplica têm a mesma capacidade de fragmentos, conforme definido no campo a seguir.

      nota

      O número de instâncias de réplica se aplica a todos os fragmentos no cluster elástico. O valor 1 de contagem de instâncias fragmentadas significa que há uma instância gravadora, e todas as instâncias adicionais são réplicas que podem ser usadas para leituras e para melhorar a disponibilidade.

    3. No campo Capacidade de fragmentos, escolha o número de CPUs virtuais (vCPUs) que você deseja associar a cada instância de fragmento. O número máximo de vCPUs por instância de fragmento é 64. Os valores permitidos são 2, 4, 8, 16, 32, 64.

    Diagrama: número e capacidade de fragmentos do cluster elástico
  6. No campo Nuvem Privada Virtual (VPC), escolha uma VPC da lista suspensa.

    Em Sub-redes e Grupos de segurança de VPC, é possível usar os padrões ou selecionar três sub-redes de sua escolha e até três Grupos de segurança de VPC (o mínimo é um).

    Diagrama: VPC e sub-redes de cluster elástico
  7. Na seção Autenticação, insira uma string que identifique o nome de login do usuário principal no campo Nome de usuário.

    No campo Senha, insira uma senha exclusiva que esteja em conformidade com as instruções.

    Diagrama: nome de usuário e senha do cluster elástico
  8. Na seção Criptografia, mantenha as configurações padrão.

    Se preferir, é possível inserir um ARN AWS KMS key que você criou. Para obter mais informações, consulte Criptografia de dados em repouso para clusters elásticos do Amazon DocumentDB.

    Importante

    A criptografia deve ser habilitada para clusters elásticos.

  9. Na seção Backup, edite os campos de acordo com os requisitos do seu backup.

    Captura de tela do painel Backup mostrando as etapas para configurar a janela de backup do cluster.
    1. Período de retenção de backup— na lista, selecione o número de dias para manter os backups automáticos desse cluster antes de excluí-los.

    2. Janela de backup— defina o tempo e duração diários durante os quais o Amazon DocumentDB fará backups desse cluster.

      1. Escolha Selecionar janela se quiser configurar a hora e a duração em que os backups são criados.

        Hora de início— na primeira lista, escolha a hora de início (UTC) para seus backups automáticos. Na segunda lista, escolha o minuto da hora em que você deseja que os backups automáticos sejam iniciados.

        Duração— na lista, selecione a quantidade de horas a serem alocadas na criação de backups automáticos.

      2. Escolha Sem preferência se quiser que o Amazon DocumentDB escolha a hora e a duração em que os backups são criados.

  10. Na seção Manutenção, escolha o dia, a hora e a duração em que as modificações ou os patches serão aplicados ao seu cluster.

    Diagrama: nome de usuário e senha do cluster elástico
  11. Selecione Criar cluster.

Agora, seu cluster elástico está sendo provisionado. Esse processo pode levar até alguns minutos. É possível se conectar ao seu cluster quando o status do cluster elástico for exibido como active na lista Clusters.

Using the AWS CLI

Para criar um cluster elástico usando a AWS CLI, use a operação create-cluster com os seguintes parâmetros:

  • --cluster-name— obrigatório. O nome atual do cluster elástico de escala, conforme inserido durante a criação ou a última modificação.

  • --shard-capacity— obrigatório. O número de vCPUs atribuído a cada fragmento. O máximo é 64. Os valores permitidos são 2, 4, 8, 16, 32, 64.

  • --shard-count— obrigatório. O número de fragmentos atribuídos ao cluster. O máximo é 32.

  • --shard-instance-count— opcional. O número de instâncias de réplica que se aplicam a todos os fragmentos desse cluster. O máximo é 16.

  • --admin-user-name— obrigatório. O nome de usuário associado ao usuário administrativo.

  • --admin-user-password— obrigatório. A senha associada ao usuário administrativo.

  • --auth-type— obrigatório. O tipo de autenticação usado para determinar onde buscar a senha usada para acessar o cluster elástico. Os tipos válidos são PLAIN_TEXT ou SECRET_ARN.

  • --vpc-security-group-ids— opcional. Configure uma lista de grupos de segurança da VPC do EC2 a serem associados a esse cluster.

  • --preferred-maintenance-window—Opcional. O período semanal durante o qual pode ocorrer a manutenção do sistema, em Tempo Universal Coordenado (UTC).

    O formato é: ddd:hh24:mi-ddd:hh24:mi. Dias válidos (ddd): Mon, Tue, Wed, Thu, Fri, Sat, Sun

    O padrão é uma janela de 30 minutos selecionada aleatoriamente a partir de um bloco de tempo de 8 horas para cada região da Amazon Web Services, ocorrendo em um dia da semana aleatório.

    Janela mínima de 30 minutos.

  • --kms-key-id—Opcional. O identificador da chave do KMS para um cluster criptografado.

    O identificador KMS da chave é o nome do recurso da Amazon (ARN) para a chave de criptografia do AWS KMS. Se você estiver criando um cluster com a mesma conta da Amazon Web Services que tem a chave de criptografia KMS usada para criptografar o novo cluster, use o apelido da chave do KMS em vez de o ARN da chave de criptografia do KMS.

    Se a chave de criptografia não for especificada no KmsKeyId e se o parâmetro for StorageEncrypted verdadeiro, o Amazon DocumentDB usará a chave de criptografia padrão.

  • --preferred-backup-window—Opcional. O intervalo de tempo diário preferencial, durante o qual os backups automatizados são criados. O padrão é uma janela de 30 minutos selecionada aleatoriamente a partir de um bloco de tempo de 8 horas para cada Região da AWS.

  • --backup-retention-period—Opcional. O número de dias durante os quais os backups automatizados são retidos. O valor padrão é 1.

  • --storage-encrypted—Opcional. Configura se o cluster é criptografado ou não.

    --no-storage-encrypted Especifica se o cluster é criptografado.

  • --subnet-ids—Opcional. Configure IDs de sub-rede de rede.

No exemplo a seguir, substitua cada espaço reservado para entrada do usuário por suas próprias informações.

nota

Os exemplos a seguir incluem a criação de uma chave KMS específica. Para usar a chave KMS padrão, não inclua o parâmetro --kms-key-id.

Para Linux, macOS ou 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

Etapa 2: Habilitar conexões de entrada

O acesso a um cluster do Amazon DocumentDB é controlado pelo grupo de segurança associado. Nesta etapa, você modificará o grupo de segurança do Amazon DocumentDB para permitir a comunicação da instância do Amazon EC2 por meio da porta configurada com o cluster elástico (padrão 27017).

  1. No console de gerenciamento do Amazon DocumentDB, em Clusters, localize seu cluster.

    1. Escolha o cluster que você criou clicando no identificador do cluster.

    2. Na guia Conectividade e segurança, na seção Segurança, escolha Grupos de segurança de VPC.

      Isso abre a lista Grupos de segurança do console de gerenciamento do Amazon EC2. Como alternativa, você pode acessar o console de gerenciamento do Amazon EC2 e selecionar Grupos de segurança na seção Rede e segurança.

    3. Escolha o grupo de segurança Amazon DocumentDB (padrão).

    Imagem: lista de grupos de segurança do Amazon DocumentDB
  2. Escolha a guia Regras de entrada (talvez seja necessário rolar até a parte inferior da janela) e escolha Editar regras de entrada.

    Imagem: caixa de diálogo de regras de entrada do Amazon EC2
  3. Na caixa de diálogo Editar regras de entrada, selecione Adicionar regra.

    1. Para Port Range, insira 27017.

    2. Deixe a Fonte como Personalizada e pesquise o valor do grupo de segurança que você registrou na instância do EC2 criada em Pré-requisitos.

    3. Escolha Salvar regras.

    Imagem: caixa de diálogo de regras de entrada do Amazon EC2

Etapa 3: Instalar o shell do Mongo

Instale o shell mongo na sua instância do Amazon EC2 criada em Pré-requisitos. O shell do Mongo é um utilitário de linha de comando que você usa para se conectar e consultar seu cluster elástico.

Conecte-se à sua instância do Amazon EC2 e, no prompt de comando, crie o arquivo do repositório com o seguinte comando:

echo -e "[mongodb-org-5.0] \nname=MongoDB Repository\nbaseurl=https://repo.mongodb.org/yum/amazon/2023/mongodb-org/5.0/x86_64/\ngpgcheck=1 \nenabled=1 \ngpgkey=https://pgp.mongodb.com/server-5.0.asc" | sudo tee /etc/yum.repos.d/mongodb-org-5.0.repo

Quando estiver concluído, instale o shell do mongo com o seguinte comando:

sudo yum install -y mongodb-org-shell

Etapa 4: Conectar-se ao cluster elástico

Conecte-se ao seu cluster usando o shell mongo que você instalou na etapa 2.

  1. No console de gerenciamento do Amazon DocumentDB, em Clusters, localize o seu cluster. Classifique por função para exibir todos os clusters com a função Cluster elástico.

    Diagrama: tela da lista de clusters elásticos
  2. Escolha o cluster que você criou selecionando o identificador do cluster. Em Conectividade e segurança, copie seu endpoint e cole-o em sua instância do Amazon EC2.

    Diagrama: tela de conexão de cluster elástico
  3. Depois de conectado, você deverá ver algo semelhante ao resultado a seguir:

    Diagrama: tela de conexão de cluster elástico final

Etapa 5: Fragmentar sua coleção; inserir e consultar dados

Clusters elásticos adicionam suporte para fragmentação no Amazon DocumentDB. Agora que você está conectado ao seu cluster, é possível fragmentar o cluster, inserir dados e executar algumas consultas.

  1. Para fragmentar uma coleção, digite o seguinte:

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

  2. Para inserir um único documento, digite o seguinte:

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

    A seguinte saída é exibida:

    WriteResult({ "nInserted" : 1 })

  3. Para ler o documento que você escreveu, insira o comando findOne() (ele retorna apenas um único documento):

    db.Employee1.findOne()

    A seguinte saída é exibida:

    { "_id" : ObjectId("61f344e0594fe1a1685a8151"), "EmployeeID" : 1, "Name" : "Joe", "LastName" : "Bruin", "level" : 1 }
  4. Para realizar mais algumas consultas, considere um caso de uso de perfil de jogo. Primeiro, insira algumas entradas em uma coleção intitulada "Funcionário”. Insira o seguinte:

    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} ])

    A seguinte saída é exibida:

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

  5. Para retornar todos os documentos na coleção de perfis, insira o comando find():

    db.Employee1.find()

    Os dados inseridos na etapa 4 são exibidos.

  6. Para consultar um único documento, inclua um filtro (por exemplo: "Katie"). Insira o seguinte:

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

    A seguinte saída é exibida:

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

  7. Para encontrar um perfil e modificá-lo, digite o comando findAndModify. Neste exemplo, o funcionário "Matt" recebe um nível mais alto de "14":

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

    A seguinte saída é exibida (observe que o nível ainda não foi alterado):

    { "_id" : 1, "name" : "Matt", "lastname" : "Winkle", "level" : 12, }
  8. Para verificar o aumento do nível, insira a seguinte consulta:

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

    A seguinte saída é exibida:

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