Tutorial Mão na Massa sobre o banco de dados como serviço Amazon RDS Este tutorial irá abordar o lançamento de uma instância de banco de dados relacional RDS e a configuração de uma EC2 para usar o RDS para as necessidades de bancos de dados. • • • Iniciar um banco de dados RDS Modificar nossos web servers para usar esse novo serviço de banco de dados relacional Backup e recuperação de um banco de dados RDS Iniciando um instância RDS Nós iremos inicialmente lançar nossa Instância RDS no mesmo AZ que usamos no outro tutorial. Localize o AZ na qual os seus Lab Web Servers estão rodando e substitua <your-AZ> onde for apropriado seguindo as instruções a seguir: Navegue pela aba RDS no console AWS e clique em Launch DB Instance Nós iremos usar um banco de dados MySQL, então clique em Select perto da opção MySQL Preencha os detalhes da instância de BD de acordo com as informações abaixo e clique em Continue: • • • • • • • DB Engine Version: Use a versão default (5.5.20 (default) neste exemplo) DB Instance Class: db.m1.small Multi-AZ Deployment: No Allocated Storage: 5 GB DB Instance Identifier: aws201db Master User Name: awsuser Master User Password: aws201pwd Insira um nome de BD e escolha a AZ onde suas instâncias estão rodando (us-east-1a neste exemplo): Deixe o valor padrão em Backup Retention Period e Backup/Maintenance Window, e Continue. Depois disso revise suas configurações e clique em Launch DB Instance. Nas instâncias RDS, monitore sua nova instância de BD até que o status mude de creating para available. Adicionando Um Security Group de uma Instância EC2 a um RDS Security Group Observação: Essa seção do tutorial só precisa ser feita caso você tenha realizado os tutoriais anteriores. Os servidores RDS tem o mesmo modelo de segurança do Amazon EC2: não confiar em ninguem. Adicione seu EC2 security group, como mostrado abaixo. Esta tela pode ser um pouco confusa para novos usuários. O nome deste security group (o que esta associado com a instância RDS) é “default”; contudo o nome que deve ser preenchido é o nome do security group associado com sua instância EC2. Se você seguiu corretamente todas as nossas sugestões nestes tutoriais, o nome deverá ser “Lab Web Tier”. No primeiro menu dropdown, selecione EC2 Security Group. Seu account ID será automaticamente selecionado por padrao, e você deve selecionar Lab Web Tier como o EC2 Security Group. Note que o RDS lhe dá flexibilidade para você especificar regras de conectividade associadas com outros security groups de outras contas AWS, assim como endereços de IP. Se tudo correr bem, levara alguns minutos para autorizar sua conta, depois disso o status irá mudar para “authorized”. A principal causa de falha neste tipo de autorização é causada por sua instância EC2 estar rodando em um security group diferente do que você selecionou. Configurar a Instância para usar o RDS Observação: Essa seção do tutorial só precisa ser feita caso você tenha realizado os tutoriais anteriores. Nós disponibilizados uma tabela de banco de dados de exemplo e uma amostra de código para criar uma simples lista de contatos. Depois de configurar sua instância (criada em tutoriais anteriores), você deve pegar a URL para o seu banco de dados. Na aba RDS, selecione seu banco de dados e procure por endpoint. Lembre-se dessa URL porque você irá precisar dela em alguns minutos. Conecte via SSH na sua instância EC2 (não se esqueça de mudar o usuário para “ec2-user”). Navegue até /var/www/html cd /var/www/html Execute os seguintes comandos todos em uma linha (substituindo na sua URL de RDS, o user name se ele não for “awsuser”, e o password se não for “aws201pwd” pelos valores apropriados). Isso irá inserir alguns dados iniciais no seu banco de dados da lista de contatos: > mysql -u awsuser -paws201pwd --database=aws201 --host=<RDS_URL> < sql/addressbook.sql Perceba que você esta usando o client MySQL de uma instancia EC2 para carregar os dados no banco de dados RDS que está funcionando em outro servidor na AWS. Com o RDS você pode usar os clientes padrão MySQL ou Oracle para acessar seus dados. Após isso, edite o arquivo rds.conf.php e adicione sua RDS_URL na linha apropriada: > sudo vi rds.conf.php Exemplo do arquivo rds.conf.php depois de editado: <?php $RDS_URL="aws201db.cxlr5pujtsih.us-east-1.rds.amazonaws.com"; $RDS_user="awsuser"; $RDS_pwd="aws201pwd"; ?> Agora abra uma aba no navegador e vá até sua instância EC2 e você poderá ver a sua lista de contatos e interagir com ela: Esse é um exemplo bastante básico de uma interação de uma lista de contatos com um banco de dados MySQL gerenciado pela AWS. É claro que cenários muito mais complicados são suportados pelo RDS, mas nós esperamos que esse exemplo básico seja o suficiente para demonstrarmos o nosso ponto. Sinta-se a vontade para brincar com esta lista de endereços e adicionar/editar/remover conteudo de seu banco de dados RDS usando os links Add Contact, Edit, e Remove links no Address Book. Criando um Snapshot do RDS Agora é uma boa hora para tirar um snapshot de seu banco de dados RDS. Na aba RDS do seu painel de controle, clique com o botão direito na sua instância RDS e selecione Take Snapshot: Nota: Usando uma instância única RDS, você ficará fora do ar durante o tempo que durar o backup. É claro que nossa base de exemplo é muito pequena, dessa forma o tempo total de backup será muito pequeno também! Em produção recomendamos que você tenha um banco de dados Multi-AZ ou uma réplica de leitura para não causar impacto em sua base de produção. Os snapshots de BD irão aparecer no link DB Snapshots no lado esquerdo da sua tela. Perceba que você pode facilmente lançar instâncias RDS com qualquer snapshot obtido previamente! Isso é util para, por exemplo, restaurar um banco de dados ou então para criar uma base de dados para testes ou homologação. Modificando o Tamanho da Instância RDS Escalar para cima ou para baixo o seu RDS via console AWS é muito simples. Você pode aumentar seu banco de dados ou modificar o tamanho do servidor, etc. tudo pelo painel de controle AWS. Selecione sua instância de banco de dados RDS e clique em Modify. Tente mudar para uma instância Large e, se você quiser, aumente o tamanho do banco de dados ao mesmo tempo. Não esqueça de clicar em “Apply Immediately” – caso contrario as modificações só serão aplicadas na próxima janela de manutenção. Dica: Você pode mudar o tamanho das intancias para cima ou para baixo a qualquer momento. Entretando você não pode diminuir o tamanho do storage de um banco de dados uma vez que você o aumentou. Da mesma forma que com os backups, haverá uma interrupção da instância enquanto as modificações são aplicadas. No geral, recofigurações no RDS, como aumento de tamanho do banco de dados ou aumento da máquina levam entre 4 e 12 minutos. Atualize o Auto Scaling Group Observação: Essa seção do tutorial só precisa ser feita caso você tenha realizado os tutoriais anteriores. Agora que nós já conectamos uma das nossas intancias ao RDS, vamos atualizar nosso Auto Scaling group e enviar essas modificações ao nosso conjunto de servidores. 1. Crie uma nova Amazon Machine Image a partir da instância EC2 modificada (clique com o botão direito na instância modificada e selecione Create Image (EBS AMI) ou reveja o tutorial de Auto Scaling para relembrar como criar uma Auto Scaling AMI para esse exemplo). 2. Grave o AMI ID e crie uma nova configuração de launch (configurações de launch já existentes não podem ser modificadas). Substitua seu <ami-id> nos comandos a seguir (tudo em uma linha). Note que essas instruções assumem que vocÊ criou um security group chamado “Lab Web Tier” e um par de chaves chamado “Lab” nos tutoriais anteriores. C:\ec2>as-create-launch-config --image-id <ami-id> --instance-type t1.micro --key Lab --group "Lab Web Tier" --launch-config aws201-config2 O resultado na linha de comando será parecido com: OK-Created launch config 3. Atualize seu Auto Scaling Group para usar as novas configurações de launch: C:\ec2> as-update-auto-scaling-group aws201-as-group --launch-configuration aws201-config2 O resultado na linha de comando será parecido com: OK-Updated AutoScalingGroup 4. Ative as novas mudanças incrementando o “minimum group size” então teremos 2 web servers com nossas configurações de RDS par ao próximo tutorial. C:\ec2> as-update-auto-scaling-group aws201-as-group --min-size 2 O resultado na linha de comando será parecido com: OK-Updated AutoScalingGroup 5. Parabéns, você acabou de aplicar uma atualização ao seu conjunto de web servers. Sinta-se a vontade para conectar ao seu ELB através de outra aba do navegador e interagir com a sua lista de contatos usando multiplos servidores web. Encerrando os serviços pagos Nota: Tutoriais futuros da AWS precisarão de ambientes RDS configurados e rodando. Portanto, se você planeja fazer exercicios extras, deixe essa instância RDS rodando. Delete a instância RDS Na aba RDS, localizde e selecione sua instância RDS, e clique no botão Delete. Você terá a oportunidade de criar um último snapshot de backup da sua instância RDS se você quiser salvar esse banco de dados para uso futuro (você será cobrado para manter esse backup). Delete os Snapshots de BD Na aba RDS, selecione o link DB Snapshots a sua esquerda. Selecione qualquer snapshot de BD que queira deletar e clique no botão Delete. Para encerrar os serviços de Auto-Scaling veja o tutorial sobre Auto-Scaling. — Atenção: Reiteramos a importância de você desligar os recursos que você usou apenas para seguir esse tutorial. Não nos responsabilizamos por serviços não desligados. — Tutorial desenvolvido por José Papo (AWS Tech Evangelist para a América Latina) e evangelistas AWS com revisão e editoração da iMasters.