O Amazon RDS é a base de dados "que a Amazon mantém": você escolhe o motor e o tamanho e eles ocupam-se de instalar, atualizar, copiar e vigiar. É o passo natural quando um site cresce ou quando quer que a base de dados não viva na mesma máquina que o site. O formulário tem muitas opções e uma armadilha: a caixa de acesso público. Se a marcar, a base de dados fica exposta à internet; se não a marcar e não fizer o resto bem, o site não se liga e não sabe porquê. Este guia percorre o caminho correto.
Antes de começar: o que significa cada coisa
- RDS
- Relational Database Service, o serviço de bases de dados geridas da Amazon. Suporta MySQL, PostgreSQL, MariaDB e outros.
- Instância de base de dados
- Cada base de dados que cria no RDS, com o seu tamanho e o seu endereço.
- Motor
- O sistema de base de dados: o MySQL é o habitual para sites; o PostgreSQL para muitas aplicações à medida.
- Ponto final (endpoint)
- O endereço ao qual o seu site se liga, em vez de "localhost".
- Acesso público
- Se a base de dados tem endereço na internet. Deve estar desativado: só as suas máquinas da AWS devem chegar lá.
- Grupo de segurança
- A firewall da AWS. A base de dados terá um que deve permitir a entrada a partir do grupo da sua máquina web.
- Multi-AZ
- Opção para ter uma réplica noutro centro de dados que assume o serviço se o principal falhar. Custa o dobro; para começar não é preciso.
- Utilizador principal
- O utilizador principal da base de dados. A palavra-passe é definida por si ou gerida pela AWS.
Passo a passo
Prepare o grupo de segurança da base de dados
Antes do formulário, no EC2, Security Groups, Create: nome
bd-interna, uma regra de entrada do tipo MYSQL/Aurora (porta 3306) com origem o grupo de segurança da sua máquina web (escolha o grupo na lista em vez de um IP). Assim, só as máquinas que tenham esse grupo poderão ligar-se. Se preferir, no formulário do RDS há um atalho que faz isto por si ("Connect to an EC2 compute resource"), mas saber fazê-lo à mão será útil mais tarde.Abra o formulário do RDS
Consola do RDS, mesma região que a sua máquina, Create database. Escolha Standard create (a fácil esconde a caixa de acesso público), motor MySQL, a versão recomendada. Nos modelos, Free tier se a sua conta o tiver e for para testar, ou Dev/Test para um site pequeno; Production ativa o Multi-AZ e custa mais.
Nome, utilizador e tamanho
Identificador
bd-web. Utilizador principaladminou um seu; palavra-passe: deixe que a gira o AWS Secrets Manager se não se importar com um pequeno custo, ou defina uma sua, longa, e guarde-a num gestor de palavras-passe. Classe de instância: a mais pequena da família t (db.t4g.microoudb.t3.micro) para começar; muda-se depois. Armazenamento gp3, 20 GB, com escalamento automático ativado e um limite razoável (por exemplo 100 GB) para que não encha.Conectividade: a parte que importa
Em Connectivity: recurso de computação Don't connect (faz isso com o grupo de segurança), a VPC predefinida, Public access: No. No grupo de segurança, Choose existing e selecione
bd-interna; retire odefault. Deixe a porta 3306. Mais abaixo, em Additional configuration, escreva um nome de base de dados inicial (tienda) para não ter de a criar à mão, deixe ativadas as cópias automáticas com 7 dias e uma janela de madrugada, e ative a encriptação. Crie. Demora uns 5 a 10 minutos.Teste a ligação a partir da máquina web
Quando o estado for "Available", abra a base de dados e copie o ponto final do separador Connectivity. Entre por SSH na sua máquina web e teste:
mysql -h tu-endpoint.eu-west-1.rds.amazonaws.com -u admin -p tiendaSe entrar, está tudo bem. Se ficar pendurado sem responder, é o grupo de segurança (passo 1); se disser "Access denied", é o utilizador ou a palavra-passe.
Ligue o site e faça uma cópia
Na configuração da sua aplicação mude o servidor para esse ponto final, com o utilizador e a palavra-passe. Se trouxer dados de outra base, exporte-os com
mysqldumpe importe-os commysqlcomo em qualquer migração. Quando funcionar, faça um instantâneo manual a partir do RDS: o seu primeiro ponto de retorno seguro. As cópias automáticas continuarão todos os dias.
O que pode correr mal
O site não se liga e a base está "Available"
Grupo de segurança em 95 % dos casos: a regra de entrada da 3306 não tem como origem o grupo da sua máquina web, ou a máquina web não tem esse grupo. Reveja os dois lados.
Quero ligar-me a partir do meu computador com um programa gráfico
Sem acesso público, não pode fazê-lo diretamente. O correto é um túnel SSH através da máquina web (os programas gráficos costumam tê-lo integrado). Ativar o acesso público "por um bocado" esquece-se e fica.
A fatura é mais alta do que pensava
Veja se o Multi-AZ foi ativado (modelo Production), se o armazenamento escalou sozinho ou se o Secrets Manager e o Performance Insights estão ativos. E lembre-se de que o RDS é cobrado por horas mesmo que ninguém o use: há um guia sobre como o parar.
Pede-me uma palavra-passe que não tenho
Se deixou a palavra-passe no Secrets Manager, está lá (consola do Secrets Manager, o segredo da base). Se a definiu você e a perdeu, no RDS pode Modify a instância e definir uma nova sem reiniciar.
No Simplio
No Simplio cria a base de dados RDS a partir de um formulário curto, escolhendo a que máquina deve poder ligar-se: o Simplio cria o grupo de segurança correto, deixa o acesso público fechado e as cópias ativas, e mostra-lhe o ponto final pronto a colar no site. As bases de dados aparecem ao lado das suas máquinas com o estado, as cópias e um botão de instantâneo, e cada pessoa só vê as que lhe atribuiu.
O mesmo, na AWS e no Simplio
| Na consola da AWS | No Simplio | |
|---|---|---|
| Criar a base de dados bem | Grupo de segurança no EC2 mais formulário do RDS de 8 blocos: 30 minutos e saber o que é o acesso público | Formulário de 4 campos com acesso público fechado e firewall aberta só à máquina que escolher |
| Testar a ligação | SSH à máquina web e comando mysql | Botão "Testar ligação" a partir da máquina escolhida |
| Cópias e estado | Separadores do RDS | No mesmo cartão que a máquina, com aviso se faltar uma cópia |