Como implementar o MongoDB Atlas com o AWS CDK no TypeScript
Zuhair Ahmed, Andrea Angiolillo5 min read • Published Mar 13, 2025 • Updated Mar 13, 2025
Avalie esse Tutorial
MongoDB Atlas, o banco de dados moderno líder do setor, simplifica o desenvolvimento de aplicação e o trabalho com dados para uma ampla variedade de casos de uso, dimensiona globalmente e otimiza o preço/desempenho à medida que suas necessidades de dados evoluem com o tempo. Com o Atlas, você pode atender às necessidades de aplicativos modernos com mais rapidez para acelerar os cronogramas de entrada no mercado e, ao mesmo tempo, reduzir a complexidade da infraestrutura de dados. O Atlas oferece uma variedade de funcionalidades, como backups na nuvem, pesquisa e fácil integração com outros serviços na nuvem.
O AWS Cloud Development Kit (CDK) é uma ferramenta fornecida pela Amazon Web Services (AWS) que permite definir a infraestrutura como código usando linguagens de programação conhecidas, como TypeScript, JavaScript, Python, Java, Go e C#.
A MongoDB anunciou recentemente o GA para Atlas Integrations for CDK. Esse é um caso de uso ideal para equipes que desejam aproveitar o ecossistema TypeScript e não desejam mais provisionar manualmente os modelos doAWS CloudFormation em YAML ou JSON. Não é um grande seguidor do TypeScript? Sem preocupações! As integrações do MongoDB Atlas CDK também agora suportam Python, Java, C# e Go.
Neste guia passo a passo, iremos orientá-lo por todo o processo. Vamos começar!
Antes de começar, você precisará fazer o seguinte:
- Abra uma conta MongoDB Atlas ✅ Já tem uma conta AWS? O Atlas oferece suporte ao pagamento por uso por meio do AWS Marketplace (AWS MP) sem qualquer compromisso inicial - simplesmente Inscreva-se no MongoDB Atlas por meio do AWS Marketplace.
- Instalar e configurar uma Amazon Web Services conta + Amazon Web Services CLI
- MongoDB::Atlas::Projeto
- MongoDB::Atlas::Cluster
- MongoDB::Atlas::DatabaseUser
- MongoDB::Atlas::ProjectIpAccessList
O AWS CDK é uma estrutura de desenvolvimento de software de código aberto (OSS) para definir a infraestrutura de nuvem como código e provisioná-la por meio do AWS CloudFormation. Ele fornece componentes de alto nível que pré-configuram recursos de nuvem com padrões testados, para que você possa criar aplicativos de nuvem sem precisar ser um especialista. Você pode instalá-lo globalmente usando npm:
1 npm install -g aws-cdk
Este comando instala o AWS CDK. O sinalizador opcional -g permite que você o use globalmente em qualquer lugar do seu computador.
Em seguida, precisamos inicializar nosso ambiente AWS para criar os recursos necessários para gerenciar os aplicativos CDK. O comando
cdk bootstrap cria um bucket do Amazon S3 para armazenar arquivos e uma pilha do CloudFormation para gerenciar os recursos.1 cdk bootstrap aws://ACCOUNT_NUMBER/REGION
Substitua ACCOUNT_NUMBER pelo número da sua conta da AWS e REGION pela região da AWS que você deseja usar.
Agora podemos inicializar um novo aplicativo CDK usando o TypeScript. Isso é feito usando o comando
cdk init :1 cdk init app --language typescript
Este comando inicializa um novo aplicativo CDK na linguagem TypeScript. Ele cria um novo diretório com os arquivos e diretórios necessários para um aplicativo CDK.
Para gerenciar os recursos do MongoDB Atlas, precisaremos de um módulo CDK específico chamado awscdk-resources-mongodmatlas (veja mais detalhes sobre este pacote em nossa página Construir Hub). Vamos instalá-lo:
1 npm install awscdk-resources-mongodbatlas
Este comando instala o módulo MongoDB Atlas CDK, que nos permitirá definir e gerenciar recursos do MongoDB Atlas em nosso aplicativo CDK.
Sinta-se à vontade para começar a programar se você já estiver familiarizado com o CDK ou se for mais fácil, poderá aproveitar o exemplo de recurso AtlasBasic CDK em nosso repositório (também incluído abaixo). Esse é um recurso simples de nível CDK 3 MongoDB Atlas implanta um projeto, cluster, usuário de banco de dados e recursos de lista de acesso IP do projeto em seu nome. Tudo que você precisa fazer é colar isso em seu diretório "lib/YOUR_FILE.ts", certifique-se de substituir o arquivo gerado que já está lá (que foi criado na etapa 3).
Certifique-se de substituir a linha
export class CdkTestingStack extends cdk.Stack pelo nome da pasta específica usado em seu ambiente específico. Nenhuma outra alteração é necessária.1 // This CDK L3 example creates a MongoDB Atlas project, cluster, databaseUser, and projectIpAccessList 2 3 import * as cdk from 'aws-cdk-lib'; 4 import { Construct } from 'constructs'; 5 import { AtlasBasic } from 'awscdk-resources-mongodbatlas'; 6 7 interface AtlasStackProps { 8 readonly orgId: string; 9 readonly profile: string; 10 readonly clusterName: string; 11 readonly region: string; 12 readonly ip: string; 13 } 14 15 //Make sure to replace "CdkTestingStack" with your specific folder name used 16 export class CdkTestingStack extends cdk.Stack { 17 18 constructor(scope: Construct, id: string, props?: cdk.StackProps) { 19 super(scope, id, props); 20 21 const atlasProps = this.getContextProps(); 22 const atlasBasic = new AtlasBasic(this, 'AtlasBasic', { 23 clusterProps: { 24 name: atlasProps.clusterName, 25 replicationSpecs: [ 26 { 27 numShards: 1, 28 advancedRegionConfigs: [ 29 { 30 analyticsSpecs: { 31 ebsVolumeType: "STANDARD", 32 instanceSize: "M10", 33 nodeCount: 1 34 }, 35 electableSpecs: { 36 ebsVolumeType: "STANDARD", 37 instanceSize: "M10", 38 nodeCount: 3 39 }, 40 priority: 7, 41 regionName: atlasProps.region, 42 }] 43 }] 44 }, 45 projectProps: { 46 orgId: atlasProps.orgId, 47 }, 48 ipAccessListProps: { 49 accessList:[ 50 { ipAddress: atlasProps.ip, comment: 'My first IP address' } 51 ] 52 }, 53 profile: atlasProps.profile, 54 }); 55 } 56 57 getContextProps(): AtlasStackProps { 58 const orgId = this.node.tryGetContext('orgId'); 59 60 if (!orgId){ 61 throw "No context value specified for orgId. Please specify via the cdk context." 62 } 63 64 const profile = this.node.tryGetContext('profile') ?? 'default'; 65 const clusterName = this.node.tryGetContext('clusterName') ?? 'test-cluster'; 66 const region = this.node.tryGetContext('region') ?? "US_EAST_1"; 67 const ip = this.node.tryGetContext('ip'); 68 69 if (!ip){ 70 throw "No context value specified for ip. Please specify via the cdk context." 71 } 72 73 return { 74 orgId, 75 profile, 76 clusterName, 77 region, 78 ip 79 } 80 } 81 }
É sempre uma boa ideia verificar quais alterações o CDK fará antes de realmente implantar a pilha. Use o comando
cdk diff para fazer isso:1 cdk diff --context orgId="YOUR_ORG" --context ip="YOUR_IP"
Substitua sua_ORG pelo ID da organização do MongoDB Atlas e sua_IP pelo seu endereço IP. Este comando mostra as alterações propostas a serem feitas em sua infraestrutura entre a pilha implantada e o estado atual de seu aplicativo, observe os destaques de quaisquer recursos a serem criados, excluídos ou modificados. Isso é apenas para fins de revisão. Nenhuma alteração será feita em sua infraestrutura.
Por fim, se tudo estiver configurado corretamente, você poderá implantar o aplicativo:
1 cdk deploy --context orgId="YOUR_ORG" --context ip="YOUR_IP"
Mais uma vez, substitua Your_ORG pelo ID da organização do MongoDB Atlas e Your_IP pelo seu endereço IP. Este comando implementa seu aplicativo usando o AWS CloudFormation.
Depois de terminar a configuração do MongoDB Atlas, convém limpar os recursos provisionados para evitar incorrer em custos desnecessários. Você pode destruir os recursos criados usando o comando cdk Destruir:
1 cdk destroy --context orgId="YOUR_ORG" --context ip="YOUR_IP"
Esse comando destruirá a pilha do CloudFormation associada ao seu aplicativo CDK, excluindo efetivamente todos os recursos criados durante o processo de implantação.
Parabéns! Você acabou de implantar o MongoDB Atlas com AWS CDK no TypeScript. Em seguida, acesse o YouTube para assistir a um vídeo passo a passo completo e uma demonstração.
Os recursos do MongoDB Atlas CDK são de código aberto sob o Apache-2.0 licença e aceitamos contribuições da comunidade. Para saber mais, consulte nossas diretrizes de contribuição.
A maneira mais rápida de começar é criar uma conta MongoDB Atlas a partir do AWS Marketplace. Go construir com o MongoDB Atlas e o AWS CDK hoje mesmo!
Relacionado
Tutorial
API de pesquisa de texto completo facetada Java usando o Atlas Search
Jan 17, 2025 | 18 min read
Tutorial
Configurar autenticação de e-mail/senha no MongoDB Atlas App Services
Mar 13, 2025 | 3 min read