Crie uma AWS landing zone que inclua o MongoDB Atlas - Recomendações da AWS

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á.

Crie uma AWS landing zone que inclua o MongoDB Atlas

Igor Alekseev, Amazon Web Services

Anuj Panchal, MongoDB

Resumo

Esse padrão descreve como criar uma AWS landing zone integrada a um cluster MongoDB Atlas. A infraestrutura é implantada automaticamente por meio de um script do Terraform.

Um AWS ambiente bem estruturado e com várias contas, chamado de landing zone, oferece escalabilidade e segurança, especialmente para empresas. Esse ambiente serve como base para a rápida implantação de workloads e aplicações, além de garantir a confiabilidade da segurança e da infraestrutura A criação de uma zona de pouso exige uma análise cuidadosa de fatores técnicos e de negócios, incluindo estrutura de contas, redes, segurança e gerenciamento de acesso. Essas considerações devem estar alinhadas com o crescimento futuro e com os objetivos de negócios da sua organização.

Os casos de uso para esse padrão incluem:

  • Plataformas SaaS e PaaS corporativas: aplicativos de software como serviço (SaaS) multilocatários e plataformas de plataforma como serviço (PaaS) executados em AWS podem usar essa configuração para ajudar a fornecer acesso seguro e privado ao MongoDB Atlas sem expor dados na Internet pública.

  • Setores altamente regulamentados: cargas de trabalho bancárias, de serviços financeiros, de saúde e governamentais que exigem conformidade estrita com padrões como a Lei de Portabilidade e Responsabilidade de Seguros de Saúde (HIPAA), o Padrão de Segurança de Dados do Setor de Cartões de Pagamento (PCI DSS), os Controles de Sistemas e Organizações 2 () e o Regulamento Geral de Proteção de Dados (GDPRSOC2) se beneficiam de:

    • Conectividade criptografada e privada por meio de AWS PrivateLink

    • Alta disponibilidade multi-AZ de conjuntos de réplicas do MongoDB

  • AI/ML Cargas de trabalho seguras: pipelines de treinamento ou inferência no Amazon Bedrock, SageMaker Amazon AI ou modelos personalizados de IA podem buscar e armazenar dados com segurança no MongoDB Atlas over. PrivateLink

  • Recuperação de desastres e continuidade dos negócios: o projeto multi-AZ garante que nenhuma falha em uma única zona de disponibilidade interrompa as workloads. Um conjunto de réplicas do Atlas distribuído por zonas de disponibilidade garante o failover automático. Isso é fundamental para serviços que exigem disponibilidade constante, como aplicativos de tecnologia financeira (fintech), bancos digitais ou monitoramento de serviços de saúde.

Pré-requisitos e limitações

Pré-requisitos

  • Acesso de proprietário da organização ao MongoDB Atlas para que você possa criar chaves de API do Atlas. Para obter informações sobre esse requisito, consulte Manage Organization Access na documentação do MongoDB.

  • Uma Conta da AWS ativa.

  • Terraform, instalado e configurado.

  • Um cluster do MongoDB Atlas, criado com a versão 6.0 ou com versões posteriores do MongoDB.

  • Familiaridade com o MongoDB e o MongoDB Atlas. Para obter mais informações, consulte a documentação do MongoDB Atlas.

Limitações

  • Alguns Serviços da AWS não estão disponíveis em todos Regiões da AWS. Para conferir a disponibilidade de uma região, consulte Serviços da AWS by Region. Para endpoints específicos, consulte Service endpoints and quotas e clique no link correspondente ao serviço desejado.

Arquitetura

O diagrama de arquitetura de referência a seguir ilustra a configuração de implantação de uma AWS landing zone integrada a um endpoint privado MongoDB Atlas. Essa arquitetura de referência demonstra como estabelecer uma AWS landing zone segura, escalável e altamente disponível integrada ao MongoDB Atlas. Ao combinar as AWS melhores práticas, como implantação Multi-AZ, controles de segurança com privilégios mínimos e conectividade privada, esse design permite que as organizações provisionem um ambiente robusto para aplicativos modernos.

Arquitetura multi-AZ para a Zona de Pouso da AWS integrada ao MongoDB Atlas.

Essa arquitetura consiste nos seguintes elementos:

VPC

  • Uma única nuvem privada virtual (VPC) abrange três zonas de disponibilidade.

  • A VPC é subdividida em sub-redes alinhadas a cada zona de disponibilidade. Essas sub-redes distribuem as workloads para garantir alta disponibilidade.

Acesso à Internet

  • Um gateway da internet fornece conectividade de saída para a internet a recursos que necessitam dela, como aplicações ou bastion hosts.

  • As sub-redes públicas podem hospedar gateways NAT, que permitem que workloads de sub-redes privadas façam o download de atualizações, apliquem patches e outros pacotes necessários sem expô-las diretamente à internet pública.

Sub-redes privadas e tabelas de rotas

  • Os componentes da aplicação, microsserviços ou outros recursos sensíveis geralmente ficam localizados em sub-redes privadas.

  • As tabelas de rotas dedicadas controlam os fluxos de tráfego. As rotas direcionam o tráfego de saída das sub-redes privadas para os gateways NAT, garantindo acesso seguro à internet por estar restrito à saída.

  • As solicitações de entrada provenientes da internet passam por balanceadores de carga elásticos ou bastion hosts (se utilizados) em sub-redes públicas e, em seguida, são roteadas adequadamente para os recursos da sub-rede privada.

Conectividade MongoDB Atlas por meio de PrivateLink

  • A arquitetura usa PrivateLink (por meio de um VPC endpoint) para se conectar com segurança ao MongoDB Atlas sem expor seus dados à Internet pública.

  • As solicitações permanecem na rede AWS de backbone. Os dados em trânsito se beneficiam da PrivateLink criptografia e nunca são roteados pela Internet pública.

  • A VPC dedicada do MongoDB Atlas hospeda seus nós primários e secundários, proporcionando um ambiente seguro e isolado para o seu cluster de banco de dados gerenciado.

Implantação multi-AZ

  • Os componentes críticos da infraestrutura (como os gateways NAT e as sub-redes de aplicações) são distribuídos em, pelo menos, três zonas de disponibilidade. Se uma zona de disponibilidade sofrer uma interrupção, esta arquitetura garante que as workloads nas zonas de disponibilidade restantes permaneçam operacionais.

  • O MongoDB Atlas, por padrão, oferece alta disponibilidade por meio de conjuntos de réplicas e garante que sua camada de banco de dados permaneça com tolerância a falhas. A infraestrutura crítica é distribuída em, pelo menos, três zonas de disponibilidade para garantir resiliência.

Ferramentas

Serviços da AWS

  • O AWS Secrets Manager facilita a substituição de credenciais codificadas no seu código, incluindo senhas, por uma chamada de API para recuperar o segredo de forma programática.

Outros produtos e ferramentas

  • O MongoDB Atlas é um banco de dados como serviço (DBaaS) totalmente gerenciado para implantar e gerenciar bancos de dados do MongoDB na nuvem.

  • O Terraform é uma ferramenta de infraestrutura como código (IaC) HashiCorp que ajuda você a criar e gerenciar recursos na nuvem e no local. Nesse padrão, você usa o Terraform para executar um script para facilitar a implantação dos recursos necessários no MongoDB AWS Atlas.

Repositório de código

O código desse padrão está disponível no repositório MongoDB Atlas Landing Zone.AWS GitHub

Épicos

TarefaDescriptionHabilidades necessárias

Identifique as principais partes interessadas.

Identifique todas as principais partes interessadas e os membros da equipe envolvidos no seu projeto de zona de pouso. Isso pode incluir perfis como:

  • Administradores de banco de dados () DBAs

  • DevOps engenheiros

  • Desenvolvedores de aplicações

  • Arquitetos de aplicações

Líder de migração

Crie um esquema estrutural.

Crie um plano que descreva a estrutura desejada da sua e da landing zone habilitada para o AWS MongoDB Atlas.

Líder de migração

Crie um plano de arquitetura.

Colabore com seus arquitetos de aplicações para analisar os requisitos e criar uma arquitetura resiliente e com tolerância a falhas. Esse padrão fornece um modelo inicial de arquitetura para sua referência. Você pode personalizar esse modelo conforme as necessidades de segurança e de infraestrutura da sua organização.

Arquiteto de nuvem

Planeje a configuração e a implantação.

Determine, em conjunto com todas as partes interessadas, como a arquitetura será implantada, como as medidas de segurança serão implementadas e quaisquer outros aspectos necessários para garantir o alinhamento com os interesses da organização e da equipe solicitante.

Líder de migração, DevOps engenheiro, DBA
TarefaDescriptionHabilidades necessárias

Clonar o repositório.

Clone o código do GitHub repositório executando o comando:

git clone https://github.com/mongodb-partners/AWS-MongoDB-Atlas-Landing-Zone
Desenvolvedor de aplicativos, DevOps engenheiro

Obtenha o ID da organização do Atlas.

  1. Caso não tenha uma conta no MongoDB Atlas, faça o cadastro.

  2. Siga as etapas apresentadas na documentação do MongoDB para criar uma organização.

  3. Copie o ID da organização.

DBA

Gere chaves de API do Atlas em nível organizacional.

Para gerar suas chaves de API em nível organizacional no Atlas, siga as instruções apresentadas na documentação do MongoDB.

DBA

Crie um segredo em AWS Secrets Manager.

Armazene as chaves da API do MongoDB Atlas geradas na etapa anterior como um segredo de chave/valor no Secrets Manager. Para obter instruções, consulte a documentação do Secrets Manager.

DevOps engenheiro

Selecione o nível do cluster do Atlas.

Para selecionar o nível do cluster do Atlas mais adequado, siga as instruções apresentadas na documentação do MongoDB.

DBA
TarefaDescriptionHabilidades necessárias

Modifique o script do Terraform.

Em sua cópia local do GitHub repositório, atualize o nome secreto no modules/mongodb-atlas/mainarquivo.tf (linha 12), para que o Terraform possa recuperar as credenciais do Secrets Manager durante a implantação.

DevOps engenheiro

Crie um ID de chave de AWS acesso e uma chave secreta.

Para criar seu ID de chave de AWS acesso e chave secreta, siga as instruções no artigo AWS re:POST Como faço para criar uma chave de AWS acesso?

É uma prática recomendada atribuir políticas com o privilégio mínimo necessário, mas, neste caso, selecione a política AdministratorAccess.

Após criar sua chave de acesso, consulte Práticas recomendadas de segurança no IAM para aprender sobre as práticas recomendadas para gerenciar chaves de acesso.

DevOps engenheiro

Aloque endereços IP elásticos.

Aloque pelo menos dois endereços IDs IP elásticos. Para obter instruções, consulte a documentação da Amazon Virtual Private Cloud (Amazon VPC).

DevOps engenheiro

Criar um bucket do S3.

Crie um bucket do S3 para armazenar o estado da implantação do Terraform seguindo as instruções apresentadas na documentação do Amazon Simple Storage Service (Amazon S3).

DevOps engenheiro

Atualize o bucket do S3 para armazenamento.

Atualize as informações do bucket do S3 na sua versão local de environments/development/main.tf para que correspondam ao nome e à região do bucket que você criou na etapa anterior e especifique um prefixo de chave. Por exemplo:

terraform { ... backend "s3" { bucket = "startup-name-product-terraform" key = "network/dev" region = "ap-southeast-1" } }

Para este exemplo, configure o Terraform para usar o prefixo de chave network/dev para organizar o arquivo de estado do Terraform. É possível alterar o valor para prod ou staging para corresponder ao ambiente que deseja criar. Para obter informações sobre o uso de diversos ambientes, consulte a última etapa desta seção.

Para obter mais informações sobre os prefixos de chave do Amazon S3, consulte Organizar objetos usando prefixos na documentação do Amazon S3.

DevOps engenheiro

Defina as variáveis do Terraform.

A zona de pouso de amostra define os valores das variáveis de entrada usando arquivos de definição de variáveis do Terraform.

O arquivo da variável está localizado em environments/development/variables.tf. Você pode definir os valores das variáveis no environments/development/terraformarquivo.tfvars. Configure essas variáveis conforme descrito no arquivo Readme do GitHub repositório.

DevOps engenheiro

Configure as variáveis de ambiente.

Se você planeja executar o script do Terraform na sua máquina local, configure as seguintes variáveis de ambiente:

  • AWS_ACCESS_KEY_ID: ID da chave de AWS acesso

  • AWS_SECRET_ACCESS_KEY: chave de acesso AWS secreta

  • AWS_DEFAULT_REGION: Região da AWS

  • TF_LOG: nível de log do Terraform (DEBUG ou INFO)

Para mais informações sobre como configurar variáveis de ambiente, consulte a documentação da AWS Command Line Interface (AWS CLI).

DevOps engenheiro

Verifique as configurações da VPC.

Para seguir as melhores práticas recomendadas por AWS, defina as configurações de VPC e sub-rede CIDRs, gateways NAT, rotas e tabelas de rotas no script do Terraform para atender às necessidades da sua organização. Para obter detalhes, consulte o arquivo Readme do repositório. GitHub

DevOps engenheiro

Marcar recursos do .

Você pode marcar seus AWS recursos para monitorá-los quando eles são implantados pelo script Terraform. Para ver exemplos, consulte o arquivo Readme do GitHub repositório. Para obter informações sobre o monitoramento de recursos por meio de tags de custo, uso e assim por diante, consulte Ativação de etiquetas de alocação de custos definidas pelo usuário na documentação. AWS Billing

DevOps engenheiro

Use vários ambientes.

O GitHub repositório fornece uma pasta de development ambiente. Você também pode adicionar seus próprios ambientes na pasta de ambientes.

Para adicionar um ambiente, copie a pasta development para uma nova pasta (por exemplo, prod ou staging) dentro de environments. Em seguida, atualize o arquivo terraform.tfvars com o novo valor.

DevOps engenheiro
TarefaDescriptionHabilidades necessárias

Iniciar o diretório de trabalho do Terraform.

Para inicializar o diretório de trabalho e fazer o download dos pacotes necessários, execute o comando:

terraform init
DevOps engenheiro

Crie um plano de execução.

Para criar um plano de execução e visualizar as alterações que o Terraform fará na sua infraestrutura, execute o comando:

terraform plan
DevOps engenheiro

Implante as alterações.

Para implantar as alterações em sua infraestrutura, conforme descrito no código, execute o comando:

terraform apply
DevOps engenheiro

Valide a implantação.

Valide os componentes que o Terraform criou ou modificou na sua infraestrutura.

Para testar a configuração, provisione um recurso computacional (por exemplo, uma EC2 instância ou AWS Lambda função da Amazon) na VPC ou anexada a ela.

DevOps engenheiro, desenvolvedor de aplicativos
TarefaDescriptionHabilidades necessárias

Limpeza.

Quando terminar os testes, execute o seguinte comando para remover os recursos que o Terraform implantou na sua infraestrutura:

terraform destroy
DevOps engenheiro

Recursos relacionados

Descoberta e avaliação

Configurando o MongoDB Atlas e ambientes AWS

Implantação da zona de pouso