Pular para o conteúdo principal

AWS Brasil - Deploy n8n na Nuvem

Este guia mostra como fazer deploy do n8n na AWS Brasil, aproveitando a infraestrutura local para melhor performance e compliance com regulamentações brasileiras.

Configuração de Recursos AWS

Terraform Configuration

# main.tf
provider "aws" {
  region = "us-east-1"
}

# VPC Resource
resource "aws_vpc" "n8n_vpc" {
  cidr_block = "10.0.0.0/16"
  
  tags = {
    Name = "n8n-vpc"
    Environment = "production"
    Project = "n8n-automation"
  }
}

# EC2 Instance
resource "aws_instance" "n8n_server" {
  ami           = "ami-0c02fb55956c7d316" # Amazon Linux 2
  instance_type = "t3.medium"
  
  vpc_security_group_ids = [aws_security_group.n8n_sg.id]
  subnet_id              = aws_subnet.n8n_public.id
  
  user_data = <<-EOF
              #!/bin/bash
              yum update -y
              yum install -y docker
              systemctl start docker
              systemctl enable docker
              docker run -d --name n8n -p 5678:5678 n8nio/n8n:latest
              EOF
  
  tags = {
    Name = "n8n-server"
  }
}

# RDS PostgreSQL
resource "aws_db_instance" "n8n_database" {
  identifier = "n8n-db"
  
  engine         = "postgres"
  engine_version = "13.7"
  instance_class = "db.t3.micro"
  
  allocated_storage     = 20
  storage_type         = "gp2"
  storage_encrypted    = true
  
  db_name  = "n8n"
  username = "n8n_user"
  password = var.db_password
  
  vpc_security_group_ids = [aws_security_group.rds_sg.id]
  db_subnet_group_name   = aws_db_subnet_group.n8n_db_subnet.name
  
  backup_retention_period = 7
  backup_window          = "03:00-04:00"
  maintenance_window     = "sun:04:00-sun:05:00"
  
  tags = {
    Name = "n8n-database"
  }
}

Monitoramento e Alertas

CloudWatch Métricas Essenciais

# Configurar alarme de CPU
aws cloudwatch put-metric-alarm \
  --alarm-name "n8n-cpu-high" \
  --alarm-description "CPU alta na instância n8n" \
  --metric-name CPUUtilization \
  --namespace AWS/EC2 \
  --statistic Average \
  --period 300 \
  --threshold 85 \
  --comparison-operator GreaterThanThreshold \
  --evaluation-periods 2 \
  --alarm-actions arn:aws:sns:us-east-1:123456789012:n8n-alerts

SNS Notification

{
  "Subject": "Alerta n8n - CPU alta",
  "Message": "A instância n8n está com CPU em 85%. Verifique imediatamente."
}

Troubleshooting

Problemas Comuns

Instância não inicia

# Verificar logs do sistema
aws ec2 get-console-output --instance-id i-1234567890abcdef0

# Verificar status da instância
aws ec2 describe-instances --instance-ids i-1234567890abcdef0

Problemas de conectividade

# Testar conectividade com RDS
aws rds describe-db-instances --db-instance-identifier n8n-db

# Verificar security groups
aws ec2 describe-security-groups --group-ids sg-1234567890abcdef0