Como implantar o MongoDB Atlas com AWS CloudFormation
Avalie esse Tutorial
O MongoDB Atlas é a plataforma de dados de desenvolvedor multinuvem que fornece um conjunto integrado de banco de dados em nuvem e serviços de dados. Ajudamos a acelerar e simplificar a forma como você cria aplicativos globais resilientes e de alto desempenho no provedor de nuvem de sua escolha.
O AWS CloudFormation permite modelar, provisionar e gerenciar recursos do AWS e de terceiros, como o MongoDB Atlas, tratando a infraestrutura como código (IaC). Os modelos do CloudFormation são escritos em JSON ou YAML.
Embora haja várias maneiras de usar o CloudFormation para provisionar e gerenciar seus clusters do Atlas , como com sistemas de soluções de parceiros ou o Amazon Web Services CDK, hoje Go ver como criar seus primeiros modelos do YAML CloudFormation para implantar clusters do Atlas com CloudFormation.
Esses modelos predefinidos aproveitam diretamente os recursos do MongoDB Atlas do CloudFormation Public Registry e são executados por meio do Console de gerenciamento AWS CLI/AWS. Usar eles é melhor para usuários que buscam ser totalmente integrados ao AWS com controles de acesso refinados.
Vamos começar!
Pré-requisitos:
Cadastre-se para obter uma conta gratuita do MongoDB Atlas, verifique seu endereço de e-mail e faça login em sua nova conta.
Depois de criar uma conta e fazer login na interface do usuário (IU) do MongoDB Atlas, você precisará gerar uma chave de API programática (PAK) para autenticar com os recursos do CloudFormation no MongoDB Atlas.
Go para o topo da Atlas UI, clique no ícone de engrenagem à direita do nome da organização que você criou, clique em “Access Manager " na barra de menu à esquerda, clique na guia "Create API Keys " e clique em caixa verde “Create API Key.
Insira uma descrição para a chave de API que o ajudará a lembrar para que ela está sendo usada — por exemplo, "CloudFormation API Key." Em seguida, você selecionará a permissão de usuário apropriada para o que deseja realizar com o CloudFormation. As funções Proprietário da organização e Criador de projeto da organização (consulte as descrições de função abaixo) fornecem acesso para concluir essa tarefa, mas usando o princípio de privilégio mínimo, vamos selecionar a função Criador de projeto da organização no menu suspenso e clicar em “Next.” Crie uma chave pública (que atua como um nome de usuário) e, em seguida, crie uma chave privada (que atua como uma senha).
IMPORTANTE: Certifique-se de copiar sua chave privada e armazená-la em um local seguro. Depois de sair desta página, sua chave privada completa não estará acessível.
Ao criar chaves de API programáticas do MongoDB para a API Admin do Atlas, você precisará adicionar o endereço IP em que o CloudFormation será executado na lista de permissões de IP para garantir que somente solicitações de endereços IP específicos possam acessar seu cluster Atlas usando essa chave. A lista de permissões de IP fornece uma camada adicional de segurança, limitando os endereços IP que podem se conectar aos seus recursos do Atlas. Se um endereço IP não estiver na lista de permissões, qualquer solicitação originada dele será negada.
Na mesma página, role para baixo e clique em "Add Access List Entry. " Se você não tiver certeza do endereço IP que o CloudFormation está usando para implantar sua infraestrutura, revise os intervalos de endereços IP da AWS e entre em contato diretamente com o suporte da AWS, que poderá ajudar a confirmar o intervalo de CIDR a ser usado em sua lista de permissões de IP do Atlas PAK.
Outra opção é abrir sua lista de acesso IP a todos, mas isso acarreta um risco potencial significativo. Para fazer isso, adicione as permissões da organização apropriadas à sua chave de API. Em seguida, adicione os seguintes dois CIDRs: 0.0.0.0/1 e 128.0.0.0/1. Essas entradas abrirão sua lista de acesso IP para todos os acessos — ou, no máximo, endereços IPv 4,294,967,296 (ou 2^32) IPv4 — e devem ser usado com cautela. Saiba mais sobre como criar uma chave de API programática no MongoDB Atlas.
Antes de usar o CloudFormation, você precisará armazenar a chave de API programática que você criou no AWS Secrets Manager. Go para a guia Gerenciador de segredos e clique em "Add New Secret. " Você será direcionado para uma página parecida com esta:
A partir daí, selecione "Other Type of Secret " e adicione suas chaves públicas e privadas. Você pode inseri-los manualmente ou adicioná-los na seção de texto simples (veja abaixo).
No texto simples, formate o segredo da seguinte forma:
1 { "PublicKey": "YourPublicKey", "PrivateKey": "YourPrivateKey" }
Na próxima página, dê um nome ao seu segredo. Nesse caso, seria cfn/atlas/profile/default, o mesmo que o usado na etapa anterior.
No Console de gerenciamento do Amazon Web Services , clique no botão CloudFormation na barra de navegação. Selecione sua região e, na coluna à esquerda, selecione "Public Extensions " na lista suspensa Registro. Selecione "Resource types " no tipo de extensão e "Third party " no editor.
Certifique-se de ativar seus recursos do AWS CloudFormation na região do AWS a partir da qual você deseja implantar seus recursos do CloudFormation. Neste exemplo, implantamos a partir de N. Virginia (us-east-1).
Depois que uma lista de recursos for preenchida depois de fazer suas seleções, você precisará selecionar quais recursos precisa. Você precisará usar os recursos definidos pelo seu modelo. Alguns exemplos de recursos incluem:
- MongoDB::Atlas::Projeto
- MongoDB::Atlas::Cluster
- MongoDB::Atlas::DatabaseUser
- MongoDB::Atlas::ProjectIpAccessList
Você pode encontrar os recursos de que seu modelo precisa descritos no modelo.
Ao selecionar seus recursos, você precisará fornecer um ARN (nomes de recursos da Amazon). Você pode configurar isso com o AWS IAM (Identity and Access Management). Você pode encontrar isso na barra de navegação do seu AWS. Você pode encontrar o ARN nas informações do usuário no botão "Roles". Uma vez lá, encontre a função cujo ARN você deseja usar e adicione-a aos Detalhes da extensão no CloudFormation. Saiba como criar funções/permissões de usuário no IAM.
Depois que seu ARN tiver sido adicionado, clique em "Activate " e suas permissões serão ativadas. Veja uma amostra do ARN da AWS necessário em nosso repositório do GitHub. É importante que você use um ARN com permissões suficientes cada vez que ele for solicitado.
Além disso, você pode adicionar essa string de relacionamento de confiança para garantir que o administrador ou outros usuários possam executar as funções do CloudFormation. O exemplo a seguir descreve como adicionar essa string ao espaço na seção Relacionamentos de confiança:
1 { 2 "Version": "2012-10-17", 3 "Statement": [ 4 { 5 "Sid": "Statement1", 6 "Effect": "Allow", 7 "Principal": { 8 "AWS": "resource.cloudformation.amazonaws.com" 9 }, 10 "Action": "sts:AssumeRole" 11 } 12 ] 13 }
Observação: o amplo acesso ao IAM não é recomendado para cargas de trabalho de produção, mas pode ser suficiente para testes.
Neste exemplo, optei por atualizar versões automaticamente. Esta etapa é opcional.
Se preferir usar um modelo de amostra do CloudFormation no YAML em vez de criar o seu próprio, você pode encontrá-lo no repositório git do MongoDB.
No console de gerenciamento da Amazon Web Services, acesse a aba CloudFormation. Em seguida, na navegação à esquerda, clique em "Stacks. " Na janela que aparece, clique no menu suspenso "Create Stack ". Selecione “Create new stack with existing resources.”
Em seguida, selecione "template is ready " na seção "Prerequisites " e "Upload a template " na seção "Specify templates ". A partir daqui, você escolherá o arquivo YAML (ou JSON) que contém a implantação do MongoDB Atlas que você criou na etapa anterior.
Em seguida, você precisará especificar os detalhes da pilha, preenchendo o nome da pilha e os parâmetros. É importante que as informações dessa página estejam alinhadas com o script no modelo. Por exemplo, você precisará garantir que o nome do segredo do AWS Secret Manager (neste caso, "default ") seja igual ao usado em seu sistema.
Em seguida, configure suas opções de pilha com tags, permissões e opções de falha de pilha. Escolha uma senha exclusiva para o usuário do banco de dados.
Por fim, revise sua pilha, pressione “Submit,” e pronto! Observe que a implantação de um MongoDB Atlas cluster pela primeira vez pode levar de sete a 10 minutos. Você pode verificar o status na UI do Atlas.
Parabéns! Você acabou de implantar os recursos do MongoDB Atlas com o AWS CloudFormation.
Os recursos do MongoDB Atlas CloudFormation são de código aberto sob o Apache-2.0 e damos as boas-vindas às contribuições da comunidade. Para saber mais, consulte nossas diretrizes de contribuição.
Além disso, você pode assistir nossa demonstração para aprender sobre outras maneiras de começar a usar MongoDB Atlas e CloudFormation
Comece a construir com o MongoDB Atlas e o AWS CloudFormation hoje mesmo!