Toolkit de Exploração de Dados na AWS¶
Visão Geral¶
O datadelivery é um módulo Terraform que permite com que seus usuários criem recursos de infraestrutura em suas respectivas contas AWS visando aprimorar os primeiros passos na exploração de dados utilizando serviços de Analytics. Isto é feito através de processos já embarcados no módulo, tais como:
- 🪣 Criação de buckets S3 seguindo uma arquitetura Data Mesh ou arquitetura medalhão
- 🎲 Upload automático de datasets públicos em bucket S3
- 📦 Upload opcional de datasets customizados fornecidos pelo usuário
- ⏳ Agendamento automático de um Glue Crawler para criação de tabelas para os datasets
- 🔒 Criação de policies e roles IAM para execução do Glue Crawler
- 📈 Criação de um workgroup do Athena para facilitar a execução de queries
Um ambiente de bolso! Como um módulo Terraform, todos os recursos proporcionados pelo datadelivery podem ser implantados através de um único comando (terraform apply). Da mesma forma, os usuários podem simplesmente eliminar todos estes recursos sempre que quiserem também com um único comando (terraform destroy).
Pré Requisitos¶
Para utilizar o datadelivery, usuários precisam:
In order to start using datadelivery, users will need:
- ☁️ Ter uma conta AWS disponível para uso
- 🔑 Acesso programático nessa conta AWS via chaves
access_key_idesecret_access_key - ⛏ Terraform instalado
Chamando o Módulo¶
Com o ambiente preparado, usuários podem criar um arquivo Terraform de extensão .tf e chamar o módulo datadelivery no seguinte formato:
# Chamando o módulo datadelivery com as configurações padrão
module "datadelivery" {
source = "git::https://github.com/ThiagoPanini/datadelivery"
}
Dica: se você tem dúvidas sobre como configurar um projeto Terraform para a chamada de módulos, expanda o bloco abaixo para visualizar demonstrações práticas em um passo a passo completo utilizando o módulo datadelivery.
Configuração básica de um projeto Terraform (passo a passo datadelivery)
Para quem possui pouca experiência com o Terraform e precisa de um guia detalhado sobre como utilizar o módulo datadelivery na prática, o processo poderia ser resumido nos seguintes passos:
- Criação de um diretório para organizar seu projeto Terraform
- Criação de um arquivo Terraform neste diretório (ex: arquivo
main.tf) - Escrever o código Terraform neste arquivo para chamar o módulo
datadelivery(ver código acima) - Usando um terminal ou uma IDE, execute o comando
terraform initpara inicializar os módulos chamados - Para visualizar os recursos a serem criados em sua conta AWS, execute o comando
terraform plan - Por fim, para implantar os recursos, execute o comando
terraform apply
Um módulo Terraform pode ser chamado através de uma série de origens em qualquer projeto Terraform.
Um projeto Terraform pode ser qualquer diretório que possua arquivos Terraform e que, nada mais são, do que arquivos de extensão .tf onde os recursos de infraestrutura são configurados através de uma linguagem declarativa chamada HCL (Hashicorp Configuration Language).
Assim, vamos estruturar este passo a passo criando um arquivo Terraform chamado main.tf para armazenar nosso código Terraform.
Uma vez criado o projeto Terraform (isto é, pelo menos um arquivo .tf em um diretório qualquer), podemos declarar os recursos a serem implantados. Neste caso, os recursos estão encapsulados em um módulo Terraform. A chamada de módulos exige, essencialmente, apontar para a origem onde o código fonte do módulo está armazenado e isto pode ser diretórios locais, URLs HTTP, repositórios no GitHub, buckets no S3 e muitos outros.
O código fonte do módulo datadelivery está hospedado em um repositório no GitHub e, dessa forma, sua chamada pode ser realizada conforme o exemplo abaixo:
E assim, podemos executar os comandos Terraform para obter os recursos encapsulados no módulo datadelivery na conta AWS alvo. O primeiro desses comandos atua como uma espécie de "aperte play para continuar" e auxilia os usuários a obterem toda a lógica do módulo em seu diretório/workspace de trabalho. Trata-se do terraform init e veremos como ele funciona no exemplo abaixo:
Após isso, nós podemos verificar exatamente quais recursos AWS serão criados, alterados ou até mesmo eliminados através da chamada deste módulo. O comando para ter essa visão é o terraform plan e seu retorno é um verdadeiro plano de implantação do Terraform no provider alvo.
Por fim, após inicializar o módulo e validar o plano de implantação, podemos seguir, de fato, com a implantação através do comando terraform apply.
E é assim que podemos criar um projeto Terraform e chamar módulos em qualquer ambiente de trabalho. No caso do datadelivery, o usuário poderá, após sua implantação, navegar até sua conta AWS e verificar os recursos criados para facilitar a jornada de exploração de dados com serviços de Analytics, tais como buckets no S3, tabelas no Glue Data Catalog, entre outros.
Recursos Implantados¶
Uma vez chamado o módulo datadelivery, por padrão, alguns recursos são disponibilizados instantaneamente na conta AWS alvo da chamada. O GIF abaixo demonstra uma navegação em uma conta AWS através do management console e passa por alguns dos recursos criados pelo módulo.
Recursos criados pelo módulo datadelivery
O GIF acima, apesar de extenso, mostra toda uma navegação no AWS Management Console e evidencia os recursos criados, tais quais:
- Buckets no S3 (guidados pela variável
var.bucket_names_mapdo módulo) - Arquivos físicos separados em diferentes prefixos e que simulam datasets públicos previamente escolhidos
- Glue Crawler agendado automaticamente (delay de agendamento guiado pela variável
var.delay_to_run_crawlerdo módulo) - Tabelas no Glue Data Catalog geradas através da execução do Glue Crawler
Variáveis do Módulo¶
O módulo datadelivery possui variáveis que podem ser configuradas pelos usuários para personalizar os recursos a serem implantados na conta AWS alvo. Para visualizar quais variáveis são aceitas e suas respectivas descrições, navegue até a página de variáveis desta documentação.






