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

Resumo

Esse padrão descreve como criar uma AWS landing zone integrada a um cluster MongoDB Atlas. A infraestrutura é implantada automaticamente usando 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. Ele serve como base para a rápida implantação de cargas de trabalho e aplicativos e ajuda a garantir a confiança na segurança e na infraestrutura. A construção de uma landing zone exige uma análise cuidadosa de fatores técnicos e comerciais, incluindo estrutura da conta, rede, segurança e gerenciamento de acesso. Essas considerações devem estar alinhadas com o crescimento futuro e os objetivos comerciais da sua organização.

Os casos de uso desse padrão incluem o seguinte.

  • 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 dos 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 design Multi-AZ garante que nenhuma falha única na Zona de Disponibilidade interrompa as cargas de trabalho. Uma réplica do Atlas definida em todas as zonas de disponibilidade garante o failover automático. Isso é fundamental para serviços sempre ativos, como aplicativos de tecnologia financeira (fintech), bancos digitais ou monitoramento de saúde.

Pré-requisitos e limitações

Pré-requisitos

  • Acesso do 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 Gerenciar o acesso da organização na documentação do MongoDB.

  • Um ativo Conta da AWS.

  • Terraform, instalado e configurado.

  • Um cluster MongoDB Atlas, criado com o MongoDB versão 6.0 ou posterior.

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

Limitações

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 o AWS landing zone integrada ao MongoDB Atlas.

Essa arquitetura consiste no seguinte:

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 cargas de trabalho para alta disponibilidade.

Acesso à Internet

  • Um gateway de Internet fornece conectividade de saída com a Internet para recursos que precisam dela, como aplicativos ou hosts Bastion.

  • As sub-redes públicas podem abrigar gateways NAT, que permitem que cargas de trabalho de sub-redes privadas baixem atualizações, patches e outros pacotes necessários sem expô-los diretamente à Internet pública.

Sub-redes privadas e tabelas de rotas

  • Componentes de aplicativos, microsserviços ou outros recursos confidenciais geralmente residem em sub-redes privadas.

  • Tabelas de rotas dedicadas controlam os fluxos de tráfego. Encaminha o tráfego de saída direto de sub-redes privadas para gateways NAT para acesso seguro e somente de saída à Internet.

  • As solicitações de entrada da Internet fluem por meio de balanceadores de carga elásticos ou bastion hosts (se usados) 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ário e secundário e fornece um ambiente seguro e isolado para seu cluster de banco de dados gerenciado.

Implantação multi-AZ

  • Os componentes críticos da infraestrutura (como gateways NAT e sub-redes de aplicativos) são distribuídos em pelo menos três zonas de disponibilidade. Se uma zona de disponibilidade sofrer uma interrupção, essa arquitetura garante que as cargas de trabalho nas demais zonas de disponibilidade 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 tolerante a falhas. A infraestrutura crítica está espalhada por pelo menos três zonas de disponibilidade para maior resiliência.

Ferramentas

Serviços da AWS

  • AWS Secrets Managerajuda você a substituir as credenciais codificadas em seu código, incluindo senhas, por uma chamada de API para recuperar o segredo programaticamente.

Outros produtos e ferramentas

  • O MongoDB Atlas é um banco de dados como serviço (DBaaS) totalmente gerenciado para implantar e gerenciar bancos de dados 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

TarefaDescriçãoHabilidades necessárias

Identifique as principais partes interessadas.

Identifique todas as principais partes interessadas e membros da equipe envolvidos em seu projeto de landing zone. Isso pode incluir funções como:

  • Administradores de banco de dados () DBAs

  • DevOps engenheiros

  • Desenvolvedores de aplicativos

  • Arquitetos de aplicativos

Líder de migração

Crie um plano 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.

Trabalhe com seus arquitetos de aplicativos para analisar os requisitos e projetar uma arquitetura resiliente e tolerante a falhas. Esse padrão fornece um modelo de arquitetura inicial para sua referência. Você pode personalizar esse modelo para atender às necessidades de segurança e infraestrutura da sua organização.

Arquiteto de nuvem

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

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

Líder de migração, DevOps engenheiro, DBA
TarefaDescriçãoHabilidades 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 seu ID da organização Atlas.

  1. Se você não tiver uma conta MongoDB Atlas, cadastre-se em uma.

  2. Siga as etapas 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 no nível da organização no Atlas, siga as instruções na documentação do MongoDB.

DBA

Crie um segredo em AWS Secrets Manager.

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

DevOps engenheiro

Selecione a camada do cluster Atlas.

Para selecionar a camada correta do cluster Atlas, siga as instruções na documentação do MongoDB.

DBA
TarefaDescriçãoHabilidades 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 mínimo de privilégios necessários, mas, nesse caso, selecione a AdministratorAccess política.

Depois de criar sua chave de acesso, revise as melhores práticas de segurança no IAM para aprender sobre as melhores práticas 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 S3 para armazenar o estado da sua implantação do Terraform seguindo as instruções 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" } }

Neste exemplo, você pode configurar o Terraform para usar o network/dev prefixo de chave para organizar o arquivo de estado do Terraform. Você pode alterar o valor para prod ou staging para corresponder ao ambiente que deseja criar. Para obter informações sobre o uso de vários ambientes, consulte a última etapa desta seção.

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

DevOps engenheiro

Defina as variáveis do Terraform.

O exemplo de landing zone 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 variáveis de ambiente.

Se você planeja executar o script do Terraform em 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 registro do Terraform (DEBUGouINFO)

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

DevOps engenheiro

Verifique as configurações de 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 do ambiente.

Para adicionar um ambiente, copie a development pasta para uma nova pasta (por exemplo, prod oustaging) emenvironments. Em seguida, você pode atualizar o terraform.tfvars arquivo com o novo valor.

DevOps engenheiro
TarefaDescriçãoHabilidades necessárias

Iniciar o diretório de trabalho do Terraform.

Para inicializar o diretório de trabalho e baixar os 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 mudanças que o Terraform fará em sua infraestrutura, execute o comando:

terraform plan
DevOps engenheiro

Implante as mudanças.

Para implementar 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 em 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
TarefaDescriçãoHabilidades necessárias

Limpeza.

Ao terminar o teste, execute o comando a seguir para destruir os recursos que o Terraform implantou em sua infraestrutura:

terraform destroy
DevOps engenheiro

Recursos relacionados

Descoberta e avaliação

Configurando o MongoDB Atlas e ambientes AWS

Implantando a landing zone