Meu caminho de estudos para a AWS Certified Database – Specialty 
Tags: aws, career, database
Published: 2020-09-16 13:39:18

Na última semana [eu passei no exame](https://www.youracclaim.com/earner/earned/badge/d94a472c-ceb6-4a45-a137-1868ad9a9e8c) para certificação Database Specialty (DBS-C01). Neste texto vou compartilhar algumas impressões sobre o exame e o material que utilizei para me preparar.

## Visão geral

Não é um exame fácil. O que o torna um desafio é encontrar o equilíbrio entre se dedicar a detalhes específicos de cada serviço e saber como operá-los e executá-los de forma segura, econômica e eficiente. Vou compartilhar algumas páginas/documentos contendo detalhes que foram importantes sobre cada serviço, mas ler os **white papers sobre AWS Well-Architected Framework** vai facilitar muito a vida. 

Visão geral do exame (baseado unicamente na minha experiência): 

* Há muitas questões que exigem conhecimento detalhado sobre DynamoDB, RDS, Aurora, migrações, segurança e alta disponibilidade.
* Há muitas questões que exigem conhecimento superficial sobre ElastiCache, Redshift, VPC (security groups e subredes públicas e privadas) e custo.
* Há apenas algumas poucas questões sobre Neptune, DocumentDB.

## Este exame em relação aos exames do nível Professional

As certificações do nível Professional não são pré-requisitos para este exame. Aliás, nenhum outro exame é. No entanto, **no meu caso**, a preparação para a [Solutions Architect (Professional)](https://aws.amazon.com/pt/certification/certified-solutions-architect-professional/) certamente tornou *mais fácil* interpretar e responder questões sobre custo, segurança, continuidade do negócio, escalabilidade, tolerância a falhas e confiabilidade. 

Outro ponto de comparação é a complexidade das perguntas. O exame para certificação Database Specialty é composto por 65 questões e tanto as questões quanto as possíveis respostas **não são tão complexas** quanto aquelas encontradas nos exames do nível Professional. Dá tempo para fazer numa boa, ao contrário da Professional. :) 

Você pode dar uma olhada em algumas questões de exemplos [aqui](https://d1.awsstatic.com/training-and-certification/docs-database-specialty/AWS-Certified-Database-Specialty_Sample-Questions.pdf). 

## O guia do exame

Comecei pelo [guia do exame](https://d1.awsstatic.com/training-and-certification/docs-database-specialty/AWS-Certified-Database-Specialty_Exam-Guide.pdf). Li o guia e, sem estudar **absolutamente nada**, fiz o **exame simulado oficial da AWS**. O valor é salgado (40 dólares), mas as 20 questões mapeiam bem todos os domínios e são um ótimo ponto de partida para entender quais domínios devem receber mais atenção. 

O resultado no exame simulado foi 50%. Para passar é necessário pelo menos 75%.

## Entendendo os domínios e fazendo a análise do resultado no exame simulado

Depois de fazer uma análise cuidadosa dos [domínios que fazem parte do exame](https://d1.awsstatic.com/training-and-certification/docs-database-specialty/AWS-Certified-Database-Specialty_Exam-Guide.pdf), comparei com o resultado no simulado, que indicou que eu precisava estudar **Deployment and Migration** (o que fazia muito sentido), **Monitoring and Troubleshooting** (o que era esperado) e **Database Security** (o que me surpreendeu um pouco). 

## Separando material para estudo

As duas páginas abaixo ajudaram demais. A primeira centraliza todos os recursos de uma determinada certificação, enquanto a segunda facilita encontrar os artigos e guias necessários conforme a necessidade.

* [Recursos centralizados para cada certificação](https://aws.amazon.com/pt/certification/certification-prep/) 
* [Artigos e guias](https://aws.amazon.com/pt/whitepapers/?whitepapers-main.sort-by=item.additionalFields.sortDate&whitepapers-main.sort-order=desc)

No meio do caminho, acabei lendo os documentos abaixo para apoiar nos estudos. 

* [Amazon Aurora Migration Handbook](https://d1.awsstatic.com/whitepapers/Migration/amazon-aurora-migration-handbook.pdf?did=wp_card&trk=wp_card)
* [Migrating AWS Resources to a New AWS Region](https://d1.awsstatic.com/whitepapers/aws-migrate-resources-to-new-region.pdf?did=wp_card&trk=wp_card)
* [AWS Database Migration Service Best Practices](https://d1.awsstatic.com/whitepapers/RDS/AWS_Database_Migration_Service_Best_Practices.pdf?did=wp_card&trk=wp_card)
* [Best Practices for Migrating MySQL Databases to Amazon Aurora](https://d1.awsstatic.com/whitepapers/RDS/Best-Practices-for-Migrating-MySQL-Databases-to-Amazon-Aurora.pdf?did=wp_card&trk=wp_card)
* [Best Practices for Migrating from RDBMS to Amazon DynamoDB](https://d1.awsstatic.com/whitepapers/migration-best-practices-rdbms-to-dynamodb.pdf?did=wp_card&trk=wp_card)

E também passei por algumas das sessões de banco de dados do re:Invent 2019 e pelos vídeos sobre banco de dados da [Webfor](https://webfor.com.br/).

* [AWS re:Invent 2019 Breakout Sessions | Databases](https://www.youtube.com/watch?v=cSPLC-BY7Vc&list=PL2yQDdvlhXf8j0dn2Eji_gRtWnRB9rK-G)
* [Webfor | Bancos de dados na AWS](https://www.youtube.com/watch?v=ueXedY25RVw&list=PLHXZ-ZPxfADrmdNw6fLH60kjI2uNfWlCS)

## RDS

**Muitas questões** se baseiam no RDS. 

* [Parameter groups](https://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html) x [options groups](https://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/USER_WorkingWithOptionGroups.html)
* [RDS e IAM](https://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/UsingWithRDS.IAM.html)
* [Backups/Snapshots/compartilhamento/cópias](https://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/CHAP_CommonTasks.BackupRestore.html)
* [Criptografar e descriptografar](https://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/DataDurability.html)
* [Réplicas de leitura](https://aws.amazon.com/pt/rds/features/read-replicas/)
* [Estrategias de disaster recovery](https://aws.amazon.com/blogs/database/implementing-a-disaster-recovery-strategy-with-amazon-rds/)
* [Enhanced Monitoring](https://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html) 
* [Performance Insights](https://aws.amazon.com/pt/rds/performance-insights/)

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/65bexqr3frx94agomtbo.png)

**Coisas específicas do Aurora:**

* [Aurora Serverless e seus casos de uso](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html)
* [Backtracking](https://aws.amazon.com/blogs/aws/amazon-aurora-backtrack-turn-back-time/) (isso aqui é uma coisa linda, né?)
* [Clone](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Managing.Clone.html) (e isso aqui também!)
* [Formas de simular falhas](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Managing.FaultInjectionQueries.html) (você já viu isso?! Caramba...) 
* [Migração do RDS para o Aurora](https://docs.aws.amazon.com/dms/latest/sbs/CHAP_MySQL2Aurora.RDSMySQL.html)

**Comparando RDS MySql x Aurora:**

* Algumas questões caem nisso. Especificamente em relação às diferenças entre as réplicas de um e de outro.

## AWS DMS (Database Migration Service) e SCT (Schema Conversion Tool)

Isso é muito particular, mas dediquei um tempo considerável de estudo nestes serviços e, devo dizer, foi um tempo bem investido. 

Além de fazer diversas simulações, assisti este [excelente vídeo](https://www.youtube.com/watch?v=1KG4wHbnjqc) da [Webfor](https://webfor.com.br/) do meu amigo Diogo Guedes e este outro [aqui](https://www.youtube.com/watch?v=zb4GcjEdl8U) do re:Invent 2019.

Fora isso, também "esbarrei" nas páginas abaixo enquanto estudava sobre migrações de banco de dados para a AWS:

* https://aws.amazon.com/blogs/database/database-migration-what-do-you-need-to-know-before-you-start/
* https://aws.amazon.com/blogs/database/how-to-solve-some-common-challenges-faced-while-migrating-from-oracle-to-postgresql/
* https://aws.amazon.com/dms/resources/?nc=sn&loc=5
* https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html
* https://aws.amazon.com/blogs/database/validating-database-objects-after-migration-using-aws-sct-and-aws-dms/

## DynamoDB

Logo atrás do RDS vem o DynamoDB, com um número considerável de perguntas. Além dos White papers, indico o ótimo [DynamoDB Guide](https://www.dynamodbguide.com/) do [Alex De Brie](https://twitter.com/alexbdebrie?lang=en). 

* [Casos de uso](https://aws.amazon.com/blogs/database/how-to-determine-if-amazon-dynamodb-is-appropriate-for-your-needs-and-then-plan-your-migration/)  
* [Capacity Provisioned vs On Demand](https://www.youtube.com/watch?v=NU74jNiMPsE)
* [Global tables](https://aws.amazon.com/pt/dynamodb/global-tables/)
* [Modelos de consistência] (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadConsistency.html)
* [Capacity units](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html) (inclusive como calcular)

## Outras coisas "em volta" e que ajudaram

* [KMS e RDS](https://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/Overview.Encryption.html)
* [VPC e RDS](https://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/USER_VPC.Scenarios.html) 
* [Tipos de volumes EBS/IOPS] (https://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/CHAP_Storage.html)
* [RTO/RPO](https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/recovery-time-objective-rto-and-recovery-point-objective-rpo.html) 
* [PITR (DynamoDB)](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/PointInTimeRecovery_Howitworks.html) 
* [PITR (RDS)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PIT.html)
* [Curso gratuito da Webfor sobre AWS Well-Architected Framework](https://webfor.com.br/curso-aws-well-architected-framework/)
* [Performance Efficiency Pillar](https://docs.aws.amazon.com/wellarchitected/latest/performance-efficiency-pillar/wellarchitected-performance-efficiency-pillar.pdf#welcome)
* [Operational Excellence Pillar](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/wellarchitected-operational-excellence-pillar.pdf#welcome)
* [Reliability Pillar](https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/welcome.html?did=wp_card&trk=wp_card)
* [Cost Optimization Pillar](https://docs.aws.amazon.com/wellarchitected/latest/cost-optimization-pillar/welcome.html?did=wp_card&trk=wp_card)
* [Security Pillar](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/welcome.html?did=wp_card&trk=wp_card)

## Curiosidades

**Serviços não tiveram nenhuma questão:**

* [Amazon QLDB](https://aws.amazon.com/pt/qldb/)
* [Amazon Timestream](https://aws.amazon.com/pt/timestream/)
* [Amazon Keyspaces](https://aws.amazon.com/pt/keyspaces/)

**Serviços não esperados e que tiveram ao menos uma questão:**

* [AWS Backup](https://aws.amazon.com/pt/backup/) 
* [Amazon DocumentDB](https://aws.amazon.com/pt/documentdb/)

## Conclusão

O exame é muito focado em RDS, Aurora, e DMS. Muito mesmo! Por isso foquei o texto em coisas que eu lembrei e estudei sobre estes serviços. Houve uma ou outra questão sobre Neptune, DocumentDB e Redshift.   

Se você vai fazer o exame e "caiu" aqui como eu caí em [diversos posts semelhantes](https://medium.com/@ajinkyakiransoitkar/how-to-prepare-and-pass-the-aws-database-specialty-exam-and-chill-2b100a50319f) (todos em inglês), fica aqui o meu desejo de boa sorte! 

Por fim, se você encontrar algum erro no texto ou souber de algo importante que deixei de fora, por favor me dê um toque! :)