• Home

    Escolha seu Plano

    Carreiras Alura

    Evolua com profundidade técnica, direção clara e aplicação prática.

    Jornadas guiadas do básico ao avançado com checkpoints práticos, desenhadas para quem busca profundidade e protagonismo técnico.

    Iniciante

    Comece do zero com uma trilha clara e progressiva.

    Fundamentos práticos para dar os primeiros passos com segurança e construir uma base sólida.

    Intermediário

    Continue sua evolução com cursos que conectam fundamentos, ferramentas e prática profissional. Ganhe autonomia, e avance para projetos mais completos.

    Avançado

    Aprofunde temas técnicos e estratégicos para enfrentar desafios mais complexos. Explore boas práticas, arquitetura, performance com visão profissional.

    Cursos

    Ver mais cursos de Back-end
    • Pensamento computacional: fundamentos da computação e lógica de programação
    • Lógica de programação: mergulhe em programação com JavaScript
    • DDD: fundamentos do design orientado a domínio
    • ASP.NET: autenticação e autorização em APIs e aplicações web
    • Microsserviços: migração de monólitos e modularização

    Cursos

    Ver mais cursos de Dados
    • Python para Dados: primeiros passos
    • Excel: domine o editor de planilhas
    • Engenharia de Dados: Orquestração de Pipelines com Apache Airflow
    • Power BI Desktop: construindo meu primeiro dashboard
    • Governança e Arquitetura de Dados

    Cursos

    Ver mais cursos de Inteligência Artificial
    • IA: Explorando o Potencial da Inteligência Artificial Generativa
    • Engenharia de Prompt: Criando Prompts Eficazes para IA Generativa
    • Claude para Análise de Dados: prompts, integrações e automações
    • Agno: criando agentes e sistemas multiagente
    • Engenharia de software na era da IA: segurança de aplicações com agentes, MCPs e código gerado por IA

    Cursos

    Ver mais cursos de Front-end
    • HTML e CSS: ambiente, estrutura e estilo
    • React: realizando testes avançados com Jest e Testing Library
    • React: integrando TypeScript em projetos
    • JavaScript: aprendendo a programar
    • React: aplicando arquiteturas de Micro frontends

    Cursos

    Ver mais cursos de DevOps
    • Sistema Operacional Linux: fundamentos e administração prática
    • Containers e Docker: empacotamento, isolamento e gestão
    • Redes: dos conceitos iniciais à criação de uma intranet
    • Linux: gerenciando diretórios, arquivos, permissões e processos
    • Cibersegurança: Fundamentos e práticas integradas

    Cursos

    Ver mais cursos de UX & Design
    • UX Research: mapeando a experiência da pessoa usuária
    • UX/UI Design: Entregando produtos digitais com IA
    • UI Design: Prototipação e animações interativas
    • Figma: Conhecendo o programa
    • Product Design: métricas e ciclo de vida do produto

    Cursos

    Ver mais cursos de Gestão & Negócios
    • Canva: Criação de landing pages e e-mail marketing
    • Agilidade: como ela pode ajudar a criar um time de alta performance
    • Google Analytics 4: Extrair insights e configurar eventos
    • Management 3.0: gerencie o ambiente, não as pessoas
    • Automação de processos com n8n: Inteligência de dados para Marketing

    Cursos

    Ver mais cursos de Mobile
    • React Native: Estilização e Layouts com Flexbox e StyleSheet
    • Flutter: Graphql e suporte offline
    • Android com Gemini: Trabalhando com textos e imagens na IA
    • Dart: trabalhando com orientação a objetos
    • React Native: Dominando Listas com FlatList e ScrollView

    Carreiras

    Ver mais carreiras
    • Especialista em IA
    • Engenharia de IA
    • Ai native software engineering
    • Arquitetura de Soluções com IA
    • AI Product Design
    • Engenharia de Machine Learning
    • Desenvolvimento Front-End React
    • Engenharia de Dados
    • Cloud Security
    • Social Media Marketing
    • Engenharia de Agentes de IA

    Cursos

    • Engenharia de Prompt: Prompts Eficazes para IA Generativa
    • Claude Code: Criando sua Primeira Aplicação
    • Python: Crie sua Primeira Aplicação
    • Git e GitHub: Compartilhando e Colaborando
    • N8N: Fluxos de Trabalho Avançados

    Cursos

    • Copilot Studio: Solução Multiagentes
    • Padrões de API HTTP e Modelagem de APIs
    • Python para Análise de Dados com SQL
    • Docker: Criando e Gerenciando Containers
    • Design com IA: Otimizando o Processo Criativo

    Cursos

    • Model Context Protocol (MCP)
    • Spec-Driven Development: Dev Assistido por Agentes
    • Arquitetura de Sistemas Distribuídos com Java
    • Governança de Modelos e Reprodutibilidade
    • Pentest: Vulnerabilidades em Aplicações Web

    Escolha seu Plano

    Skills & Go

    O Skills & Go é para Tech Leads, Product Managers, estrategistas e early adopters que transformam ideias em soluções de alto impacto. Em cursos ao vivo e 100% online, você domina a nova era da IA em tempo real.

    Aulas ao vivo

    Saiba mais
    • Agentic Engineering: orquestre múltiplos agentes com confiabilidade
    • Building AI Products: transforme ideias em produtos reais com IA
    • AI Data Strategy: transforme dados em decisões estratégicas com IA

    Escolha seu Plano

    Eventos Alura

    Nossos eventos são pensados para quem quer estar à frente das mudanças em tecnologia, IA e inovação. Em experiências presenciais, você acompanha tendências e se conecta com especialistas que estão moldando o futuro.

    Próximos eventos

    • Imersão Engenharia de Software: Dev na Era da IA
    • IA Conference
    • Alura Signals
  • Talent Lab
  • IA

    Escolha seu Plano

    Conteúdos gratuitos

    Explore conteúdos gratuitos para aprender tecnologia no seu ritmo. Encontre artigos com conteúdos técnicos para aprender na prática, notícias para acompanhar as principais tendências do mercado e o Alura Labs, com análises e reflexões de especialistas sobre tecnologia, IA e carreira.

    Conteúdos gratuitos

    • Artigos
    • Notícias
    • Alura Labs
  • Para Empresas
Ver planos
Links principais
  • Planos e Promoções
  • Links complementares do menu mobile
  • Talent lab
  • Inteligência Artificial
  • Pós Graduações
  • Para Empresas
  • Sobre a Alura
  • Grupo Alun
  • Entrar
    • Home
    • Carreiras
    • Skills & Go
    • Talent Lab
    • Inteligência Artificial
    • Pós Graduações
    • Artigos
    • Sobre a Alura
    • Grupo Alun
    LoginContato
    • LinkedIn
    • Instagram
    • YouTube
    1. Página inicial
    2. Back-end
    3. Usando um banco de dados no serviço RDS da Amazon

    Usando um banco de dados no serviço RDS da Amazon

    12 min12 minutos de leitura

    12 min12 minutos de leitura

    Publicado: 22/06/2015

    Nos dias de hoje, é normal encontrar diversas aplicações web que utilizam algum banco de dados para armazenar suas informações. Enquanto o sistema está sendo desenvolvido, é relativamente simples configurar a sua máquina para rodar algum dos bancos de dados, como o MySQL. Assim, basta que a aplicação web, que está rodando localmente, aponte para o banco de dados instalado na sua máquina. No entanto, quando for necessário hospedar a aplicação em um servidor, onde ficará o banco de dados?

    Uma solução rápida para este problema é instalar o banco de dados na própria máquina onde estará rodando o servidor de aplicação ou servlet container. Por exemplo, a AWS (Amazon Web Services) oferece o serviço de EC2 (Elastic Compute Cloud), que são máquinas redimensionáveis na nuvem para uso de serviços da web. Desta forma, é possível acessá-las usando ferramentas de acesso remoto através da rede, como o SSH. Então, se a aplicação que está hospedada em um EC2 precisar de um banco, basta fazer o SSH para a máquina e executar os comandos necessários para instalá-lo. Por exemplo, se esta máquina está usando um sistema operacional Ubuntu, é possível instalar o MySQL com essas duas linhas de comando:

     $ sudo apt-get install mysql-server $ sudo apt-get install mysql-client 
    

    Assim, fica faltando apenas o arquivo de configuração do banco de dados apontar para o MySQL da EC2. Como eles estão na mesma máquina, esta configuração é similar a utilizada durante o desenvolvimento no seu computador. Ou seja, é possível rodar a aplicação com banco de dados em produção praticamente da mesma forma que é feita localmente. Mas o que acontece se alguém acidentalmente desligar a máquina EC2? Ou se ocorre alguma falha na Amazon e a instância é perdida? Nestes casos, não apenas a aplicação fica fora do ar, como o banco de dados é perdido. Isto ocorre pois, ao desligar uma instância da EC2, tudo que estava salvo no disco efêmero da máquina enquanto ela estava rodando acaba sendo apagado quando a máquina é desligada.

    Banner do Guia Tático Alura sobre carreira em tecnologia, destacando o mapa da carreira tech. A imagem convida a explorar diferentes caminhos profissionais, comparar possibilidades e encontrar a próxima fase da carreira na área de tecnologia, com chamada “Explore o mapa”.

    Essa é apenas a ponta do iceberg. Qualquer arquitetura mais robusta vai precisar da separação desses componentes. Assim, mesmo que a instância do servidor seja perdida, o banco de dados ficará intacto. No entanto, por estarem em diferentes lugares, é criado um custo de comunicação entre as informações que são enviadas que não existe quando tudo está na mesma máquina. Inicialmente, este custo pode não ser significativo, porém podem surgir problemas de performance conforme o sistema avança. Por exemplo, queries que devolvem muitos resultados precisarão de mais tempo para transferir a grande quantidade de dados entre as máquinas.

    Pensando nisso, a Amazon criou um serviço específico para o gerenciamento de bancos de dados relacionais, conhecido como RDS (Relational Database Service). Desta forma, é possível contratar uma máquina feita especificamente para rodar seu banco de dados a parte do servidor. E como ele foi desenvolvido para ser usado em conjunto com outros serviços web da Amazon, é possível criar redes de acesso de baixa latência entre uma máquina EC2 e um RDS, diminuindo o custo de comunicação. Além disso, por se tratar de um serviço específico para bancos de dados, muitos problemas que eram resolvidos manualmente, como a criação de backups, são tratados automaticamente pelo RDS. No entanto, criar toda essa estrutura é bem mais complexo do que simplesmente contratar os dois serviços.

    A primeira coisa a se fazer é escolher a região. Como na Amazon só é possível criar uma rede entre instâncias que estão na mesma região, tudo que for necessário criar a partir de agora terá que estar no mesmo lugar. No entanto, algumas delas não oferecem todos os serviços da Amazon, ou seja, é necessário escolher uma que possua tanto o serviço EC2 quanto o RDS. Além disso, os preços cobrados variam de região para região. A região utilizada para os exemplos a seguir é a Virgínia do Norte.

    Depois escolher onde ficará a máquina, o próximo passo é criar uma forma em que somente pessoas autorizadas conseguirão acessá-la remotamente via SSH. Para isto utiliza-se o serviço de chaves privadas. Assim, somente quem tiver a chave poderá se conectar com o servidor. Para criar esta chave, são necessários os seguintes passos:

    1. No dashboard da AWS, abrir o console da Amazon EC2.
    2. Clicar em Key Pairs > Create Key Pair.
    3. Escolher o nome da chave no campo Key pair name.criandoChave1
    4. Clicar em Create. Ela será automaticamente baixada no computador depois que for criada.
    5. Configurar as permissões da chave no computador, que deve ser somente de leitura para o usuário. Por exemplo, para colocar esta permissão na chave acima no Linux, basta fazer o comando:
     chmod 400 minha-chave.pem 
    

    No entanto, apenas a chave não é suficiente para conectar na máquina remotamente por SSH.  Para isto, é preciso liberar os endereços por onde será possível acessá-la, seja por SSH como também por HTTP para os usuários da aplicação. Estes endereços são feitos a partir do serviço VPC da Amazon, que constroi a rede utilizada pelas máquinas. Para criá-la, basta:

    1. No dashboard do AWS, abrir o console do serviço VPC.
    2. Clicar em Start VPC Wizard.
    3. Em Select a VPC Configuration, verificar que a opção Single Public Subnet esteja selecionada.
    4. Clicar em Select.
    5. Em VPC with a Single Public Subnet, fazer o seguinte:
      1. Escolher um nome para o VPC em VPC name.
      2. Em Availability Zone, escolher a primeira zona que aparecer na lista.
      3. Em Subnet name, trocar de Public subnet para Public subnet 1.vpc4
      4. Clicar em Create VPC.
      5. Clicar em OK na página de confirmação.
    6. Voltar para o console do VPC e clicar em Route Tables. Na linha cujo valor na coluna Main for um Yes, clicar no campo da coluna Name, digitar o nome Main e depois apertar Enter. Na outra linha, cuja coluna Main aparece No, colocar o nome Custom.vpc10
    7. Agora será necessário criar uma segunda sub-rede para o seu servidor de aplicação:
      1. No menu de navegação, clicar em Subnets > Create Subnet.
      2. Em Name tag, colocar o nome Public subnet 2.
      3. Em VPC, selecionar a VPC criada acima.
      4. Em Availability Zone, selecionar a primeira zona da lista.
      5. Em CIRD block, digitar 10.0.1.0/24.vpc14
      6. Clicar em Yes, Create.
      7. Na tabela de sub-redes, selecionar a Public subnet 2. No menu que aparece logo abaixo, clicar na aba Route table e depois em Edit. Em Change to, selecionar o tabela de rotas Custom e clicar em Save.

    Com a VPC e as sub-redes para acesso público criadas, a próxima etapa é criar as sub-redes por onde o EC2 e o RDS irão se conectar. Os passos são parecidos com a etapa anterior:

    1. No menu de navegação, clicar em Subnets > Create Subnet.
    2. Em Name tag, colocar o nome Private subnet 1.
    3. Em VPC, selecionar a VPC criada anteriormente.
    4. Em Availability Zone, selecionar a primeira zona da lista.
    5. Em CIRD block, digitar 10.0.2.0/24.vpc19
    6. Clicar em Yes, Create.
    7. Clicar novamente em Create Subnet.
    8. Em Name tag, colocar o nome Private subnet 2.
    9. Em VPC, selecionar novamente a VPC.
    10. Em Availability Zone, selecionar a segunda zona da lista.
    11. Em CIRD block, digitar 10.0.3.0/24.vpc21
    12. Clicar em Yes, Create.

    Neste momento, já temos as chaves privadas para acesso via SSH e os endereços e sub-redes por onde serão feitos os acessos externos e entre as intâncias EC2 e RDS. Agora falta liberar o acesso externo via SSH ou HTTP nos grupos de segurança. Para isso:

    1. No dashboard do AWS, abrir o console do serviço EC2.
    2. Clicar em Security Group > Create Security Group.
    3. Escolher um nome e uma descrição para o grupo de segurança.
    4. Selecionar a VPC criada anteriormente.
    5. Na tabela Inbound, será necessário adicionar duas regras:
      1. Clicar em Add Rule, selecionar em Type a opção SSH. Caso apenas um computador específico possa acessar o EC2, o campo Source deve ser preenchido com o IP público deste computador. Caso contrário, o valor será 0.0.0.0/0, ou seja, qualquer um poderá realizar um SSH nesta instância.
      2. Clicar novamente em Add Rule e selecionar a opção HTTP em Type.ec2sg6
      3. Clicar em Create.

    Depois de preparar todos esses recursos, o próximo passo é criar uma instância da EC2:

    1. No dashboard do AWS, abrir o console do serviço EC2.
    2. Clicar em Instances > Launch Instances.
    3. Em Choose an Amazon Machine Image, escolher qual tipo de sistema operacional você deseja. O sistema escolhido neste caso foi o Ubuntu Server 14.04 LTS (HVM), SSD Volume Type.
    4. Em Choose an Instance Type, selecionar o tipo de instância necessário para a sua aplicação web. Neste exemplo, a opção foi o t2.micro. Para saber sobre cada um dos tipos a acesse a lista de instâncias da Amazon.
    5. Clicar em Next: Configure Instance Details. Nesta página, faça o seguinte:
      1. Escolher a sua VPC em Network e selecionar uma das sub-redes públicas em Subnet.
      2. Verificar que o Auto-assign Public IP está Enable, caso contrário a instância não terá um endereço IP público.ec2Instance6
      3. Clicar em Review and Launch. Se você precisar especificar qual o tipo de root volume, faça a sua seleção e clique em Next.
    6. Em Review Instace Launch, clicar em Edit security group. Em Configure Security Group, clicar em Select a existing group e selecionar o grupo de segurança criado acima.ec2Instance10
    7. Clicar em Review and Launch.
    8. Em Review Instance Launch, clicar em Launch.
    9. Na caixa Select an existing key pair or create a new key pair, selecionar Choose an existing key pair, passar chave criada anteriormente e clicar no checkbox de confirmação.ec2Instance13
    10. Clicar em Launch Instances.
    11. Voltar para o painel de navegação, clicar em Instances e aguardar o status da sua instância mudar de pending para running.

    Neste momento, a máquina EC2 está pronta para ser usada, então falta apenas o banco de dados no RDS. O processo é similar ao EC2, ou seja, criar um grupo de segurança e depois a instância. Para criar o grupo de segurança:

    1. Abrir o console do serviço EC2.
    2. Clicar em Security Group > Create Security Group.
    3. Escolher um nome e uma descrição para o grupo de segurança.
    4. Selecionar a VPC criada anteriormente.
    5. Na tabela Inbound, clicar em Add Rule. Então selecionar MySQL em Type. Em Source, será necessário escolher o Custom IP. Para isto, digite o nome do grupo de segurança do EC2 e selecione este grupo quando ele aparecer.rdssg6
    6. Clicar em Create.

    Por fim, falta criar a instância do RDS:

    1. Abrir o console do serviço Amazon RDS.
    2. Clicar em Subnet Groups > Create DB Subnet Group e siguir os seguintes passos:
      1. Escolher um nome e uma descrição.
      2. Selecionar a VPC.
      3. Em Availability Zone, selecionar a primeira zona disponível. Então, em Subnet ID, selecionar a sub-rede privada e clicar em Add.
      4. Em Availability Zone, selecionar a segunda zona disponível. Então, em Subnet ID, selecionar a sua sub-rede privada e clicar em Add.rdsInstance4
      5. Clicar em Create.
    3. Ainda no console do RDS, clicar em Instances > Launch DB Instance.
    4. Em Select Engine, selecionar o banco MySQL e clicar em Select.
    5. Em Do you plan to use this database for production purposes, decidir se a aplicação precisará do plano Multi-AZ Deployment. Neste exemplo, a opção foi por não utilizá-lo.
    6. Clicar em Next Step.
    7. Em Specify DB Details, faça:
      1. Manter a licença e versão do banco padrões.
      2. Em DB Instance Class selecionar o tipo de instância do RDS. Neste caso, foi escolhido o db.t2.micro. Para saber sobre os tipos de instância e seus preços, acesse a tabela de preços do RDS.
      3. Em Multi-AZ Deployment, selecionar se será usado o plano. Neste exemplo, foi escolhido o No.
      4. Selecionar o General Purpose (SSD) em Storage Type e definir o tamanho do banco em Allocated Storage.rdsInstance12
      5. Em DB Instance Identifier, escolher um nome para a instância.
      6. Em Master Username, digitar o nome do usuário do banco.
      7. Escolher a senha deste usuário em Master Password e Confirm Password.rdsInstance13
      8. Clicar em Next Step.
    8. Em Configure Advanced Settings, faça:
      1. Em Network & Security, selecionar a VPC criada anteriormente e selecionar o grupo de segurança do RDS em VPC Security Groups.rdsInstance15
      2. Em Database Options, escolher um nome para o Database Name.rdsInstance16
      3. Clicar em Launch DB Instance.
      4. Quando a mensagem que a instância está sendo criada aparecer, clicar em View Your DB Instances.
      5. Aguardar o status mudar de creating para available.

    Com a instância RDS pronta é possível usá-la a partir da máquina EC2. Para isto, primeiro será necessário fazer um SSH para a máquina:

    
    ssh -i minha-chave.pem [email protected]
    

    Como neste exemplo o banco é o MySQL, o servidor precisa do mysql-client instalado para conectar com o banco:

    
    sudo apt-get install mysql-core-client-5.6
    

    Agora o acesso ao banco pode ser feita de forma similar ao acesso a um banco MySQL local. A diferença é que será necessário passar o endereço e a porta do banco. Estas informções podem ser obtidas no campo Endpoint presente nas configurações da instância RDS no dashboard da AWS. O que aparece antes dos dois pontos corresponde ao endereço, enquanto que a porta aparece depois.rdsInstance20

    Assim, o comando para acessar o banco MySQL criado acima é:

    
    mysql -h meubancords.cyga6r27ef9x.us-east-1.rds.amazonaws.com -P 3306 -u root -p
    

    Criar toda esta estrutura é relativamente trabalhoso, já que demanda muitos passos. Por outro lado, o sistema não corre mais o risco de perder o banco junto com o servidor. E você já usou estes serviços da Amazon? De que formas você hospeda a sua aplicação?

    Banner do Guia Tático Alura sobre carreira em tecnologia, destacando o mapa da carreira tech. A imagem convida a explorar diferentes caminhos profissionais, comparar possibilidades e encontrar a próxima fase da carreira na área de tecnologia, com chamada “Explore o mapa”.

    Avalie este artigo

    • Foto de lucas.takeshi

      Autor(a)

      lucas.takeshi

    Explore por tópico

    • Back-end
    • Dados
    • DevOps
    • Front-end
    • Gestão & Negócios
    • Institucionais
    • Inteligência Artificial
    • Mobile
    • UX & Design

    Leia também

    • 10/01/2023

      Java: o que é, linguagem e um Guia para iniciar na tecnologia

      Ler mais
    • Alura
      20/03/2017

      Como criar um servidor HTTP com ExpressJS

      Ler mais
    • Alura
      07/10/2013

      Criando cenários de teste com Fixture Factory

      Ler mais
    Ver mais conteúdos

    Inscreva-se em nossa Newsletter

    Fique por dentro de conteúdos, insights e oportunidades do universo tech. Receba novidades e lançamentos direto no seu e-mail.

    Institucional

    • Sobre nós
    • Trabalhe Conosco
    • Para Empresas
    • Para Escolas
    • Política de Privacidade
    • Compromisso de Integridade
    • Termos de Uso
    • Canal de Ética
    • Código de Ética
    • Fale Conosco
    • Documentos Institucionais
    • Status
    Institucional
    • Sobre nós
    • Trabalhe Conosco
    • Para Empresas
    • Para Escolas
    • Política de Privacidade
    • Compromisso de Integridade
    • Termos de Uso
    • Canal de Ética
    • Código de Ética
    • Fale Conosco
    • Documentos Institucionais
    • Status

    A Alura

    • Como Funciona
    • Inteligência Artificial
    • Plataforma
    • Depoimentos
    • Instrutores(as)
    • Dev em <T>
    • Luri, a Inteligência Artificial da Alura
    • IA Conference
    • Cursos Imersivos
    • Perguntas Frequentes
    A Alura
    • Como Funciona
    • Inteligência Artificial
    • Plataforma
    • Depoimentos
    • Instrutores(as)
    • Dev em <T>
    • Luri, a Inteligência Artificial da Alura
    • IA Conference
    • Cursos Imersivos
    • Perguntas Frequentes

    Conteúdos

    • Alura Cases
    • Imersão Engenharia de Software: Dev na Era da IA
    • Artigos
    • Podcasts
    • Artigos de educação corporativa
    Conteúdos
    • Alura Cases
    • Imersão Engenharia de Software: Dev na Era da IA
    • Artigos
    • Podcasts
    • Artigos de educação corporativa
    Uma Empresa do GrupoLogo Grupo Alun

    Outras empresas do Grupo Alun

    • FIAP
    • STARTSE
    • PM3
    • LUMINA

    Ao submeter seu e-mail, você concorda com a política de privacidade da Alura.

    Redes Sociais & Apps

    instagram
    youtube
    tiktok
    x
    appStore
    googlePlay
    Uma Empresa do GrupoLogo Grupo Alun

    Outras empresas do Grupo Alun

    • FIAP
    • STARTSE
    • PM3
    • LUMINA

    Ao submeter seu e-mail, você concorda com a política de privacidade da Alura.

    Redes Sociais & Apps

    instagram
    youtube
    tiktok
    x
    appStore
    googlePlay
    Alura