Se você precisar de mais controle ou deseja otimizar custos, pode configurar seu próprio MongoDB em instâncias EC2 da AWS.
Neste artigo vamos detalhar o processo para configurar o MongoDB em instâncias EC2 da AWS de maneira acessível, mesmo para quem tem pouca experiência. O objetivo é seguir um passo a passo simples, desde a criação da instância EC2 até a instalação do MongoDB, incluindo configurações de segurança e rede.
1.1. Acesse o console da AWS
- Faça login na sua conta da AWS e vá para o Amazon EC2 (você pode procurar no menu de serviços da AWS).
1.2. Lançar uma nova instância
- Clique em Launch Instance.
- Escolha uma Amazon Machine Image (AMI): Selecione uma imagem do Ubuntu (recomendo Ubuntu 20.04 LTS). Essa versão tem suporte amplo e é fácil de trabalhar.
- Escolha um tipo de instância: Para um banco de dados MongoDB de pequeno porte, escolha uma instância t2.medium (2 vCPUs e 4GB de RAM). Se o volume de dados for grande, pode optar por uma instância maior.
- Configurações de armazenamento: Adicione um volume SSD com, pelo menos, 20GB de armazenamento (ou mais, se necessário para o seu banco de dados).
1.3. Configurar a rede (VPC e Security Group)
- VPC: Utilize a VPC padrão ou crie uma nova, se já estiver familiarizado. Por enquanto, manter a padrão funciona.
- Security Group (Firewall): Configure as regras de segurança para permitir o acesso ao MongoDB.
- Permita o tráfego na porta 27017 (porta padrão do MongoDB) somente do seu IP (evite liberar para "0.0.0.0/0" por questões de segurança).
- Permita o tráfego SSH na porta 22 para seu IP, para que você possa se conectar à instância remotamente.
1.4. Criar ou usar um par de chaves (SSH)
- Se já tiver um par de chaves (.pem), use-o para conectar via SSH. Caso contrário, crie um novo par de chaves e faça o download do arquivo `.pem`.
1.5. Lançar a instância
- Clique em Launch Instance e aguarde a inicialização. Isso pode levar alguns minutos.
2.1. Acesse o terminal no seu computador
- Navegue até o diretório onde você salvou o arquivo `.pem` e execute o comando SSH no terminal para se conectar à instância. O comando será algo como:
```bash ssh -i "caminho_para_o_seu_arquivo.pem" ubuntu@seu-endereco-ip ```
Exemplo: ```bash ssh -i "~/Downloads/meu-arquivo.pem" ubuntu@18.XXX.XXX.XXX ```
2.2. Permissões para o arquivo .pem
Caso receba uma mensagem de erro sobre permissões do arquivo `.pem`, execute este comando para corrigir:
```bash chmod 400 caminho_para_o_seu_arquivo.pem ```
3.1. Atualizar pacotes e instalar MongoDB
Após se conectar à instância via SSH, execute os seguintes comandos para atualizar os pacotes e instalar o MongoDB:
```bash # Atualizar pacotes sudo apt update && sudo apt upgrade -y # Importar a chave pública do MongoDB wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add - # Adicionar o repositório do MongoDB à lista de fontes echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
# Atualizar novamente a lista de pacotes sudo apt update # Instalar MongoDB sudo apt install -y mongodb-org ```
3.2. Iniciar o serviço do MongoDB
Após a instalação, inicie o MongoDB e configure-o para iniciar automaticamente com o sistema:
```bash # Iniciar o MongoDB sudo systemctl start mongod
# Habilitar para iniciar automaticamente sudo systemctl enable mongod ```
3.3. Verificar se o MongoDB está funcionando
Execute o seguinte comando para verificar se o MongoDB está em execução:
```bash sudo systemctl status mongod ```
Se estiver tudo correto, você verá uma mensagem indicando que o MongoDB está "active (running)".
4.1. Editar o arquivo de configuração
Por padrão, o MongoDB só permite conexões locais. Para habilitar o acesso remoto, edite o arquivo de configuração do MongoDB:
```bash sudo nano /etc/mongod.conf ```
No arquivo de configuração, encontre a linha `bindIp` e altere para o seguinte:
```yaml # Original bindIp: 127.0.0.1 # Modificado bindIp: 0.0.0.0 ```
Isso permitirá que o MongoDB aceite conexões de qualquer IP. Salve e feche o arquivo (`Ctrl + X`, depois `Y` e `Enter`).
4.2. Reiniciar o MongoDB
Após a alteração, reinicie o MongoDB para aplicar as mudanças:
```bash sudo systemctl restart mongod ```
5.1. Criar um usuário administrador
Por padrão, o MongoDB não tem autenticação habilitada. É importante criar um usuário administrador para proteger seu banco de dados:
1. Acesse o shell do MongoDB:
```bash mongo ```
2. Crie o usuário administrador:
```javascript use admin db.createUser({ user: "admin", pwd: "senhaSegura", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] }) ```
3. Habilite a autenticação no arquivo de configuração:
Edite o arquivo `/etc/mongod.conf` novamente e adicione a seguinte linha sob a seção `security`:
```yaml security: authorization: "enabled" ```
4. Reinicie o MongoDB para aplicar as mudanças:
```bash sudo systemctl restart mongod ```
Agora, você terá que fornecer credenciais sempre que se conectar ao MongoDB.
- Agora, você pode conectar-se ao MongoDB de um computador externo usando um cliente MongoDB como o MongoDB Compass ou via terminal, fornecendo as credenciais que você criou.
Exemplo de comando no terminal para conectar-se remotamente:
```bash mongo --host seu-endereco-ip --port 27017 -u "admin" -p "senhaSegura" --authenticationDatabase "admin" ```
7.1. Backups automáticos
Você pode usar scripts cron ou soluções de backup como o Amazon S3 para fazer backup dos seus dados periodicamente.
7.2. Monitoramento
Ferramentas como o MongoDB Monitoring Service (MMS) ou soluções como Prometheus podem ser usadas para monitorar o desempenho do banco de dados.
Após finalizar esses passos, você terá um servidor MongoDB configurado e seguro rodando na AWS EC2.