Post

Criando e Implantando um Cluster AWS EKS com Terraform

Criando e Implantando um Cluster AWS EKS com Terraform

alt text Terraform-AWS-EKS-Cluster

Neste artigo, vamos explorar como criar e implantar um cluster Amazon EKS com Terraform, oferecendo uma solução automatizada e escalável para gerenciar sua infraestrutura Kubernetes na AWS.

O Amazon EKS (Elastic Kubernetes Service) é o serviço gerenciado da AWS que simplifica a execução e o dimensionamento de aplicativos Kubernetes, tanto na nuvem quanto em ambientes on-premises, tornando a gestão de containers mais ágil e eficiente.

Por outro lado, o Terraform, da HashiCorp, é a ferramenta que vai transformar sua maneira de trabalhar com infraestrutura. Com ela, você define e provisiona recursos na nuvem ou on-premises através de arquivos de configuração declarativos, garantindo versionamento, reutilização e facilidade de compartilhamento da infraestrutura.

1.Pré-requisitos

Conta AWS

Se você ainda não tem uma conta AWS, crie uma acessando o site oficial da AWS aqui e siga as instruções para configurar sua conta. Lembre-se de fornecer informações de cobrança precisas, mesmo que estejamos utilizando o Free Tier.

Nota: É crucial escolher a região onde você implantará os recursos. Por exemplo, vou provisionar recursos para este projeto na região us-east-1. Certifique-se de verificar a região, pois se você esquecer de encerrar os recursos, poderá enfrentar custos indesejados. Recursos não utilizados em regiões não verificadas continuarão gerando cobranças 💰. Verificar novamente a região pode ajudar a evitar custos desnecessários e garantir um gerenciamento eficiente dos recursos.

Instale o Terraform

Se você ainda não tem o Terraform instalado na sua máquina, faça o download da versão mais recente aqui.

Após a instalação, certifique-se de configurar as variáveis de ambiente para que o Terraform possa ser utilizado de qualquer diretório. Para verificar se o Terraform foi instalado corretamente, abra um terminal ou prompt de comando e digite o seguinte comando:

1
terraform version

Configurar Credenciais da AWS

Nota: Essa etapa envolve a configuração de credenciais da AWS, o que é essencial para o Terraform interagir com nossa conta da AWS. O Terraform usa essas credenciais para se autenticar e fazer chamadas de API para criar e gerenciar recursos em nosso nome.

Para aumentar a segurança e evitar o uso da conta de administrador para tarefas regulares, siga os passos abaixo para criar um novo usuário IAM.

  • Faça login no AWS Management Console.
  • Pesquise por “IAM” na barra de pesquisa.
  • No painel do IAM, clique em “Usuários” na barra lateral.
  • Clique no botão “Criar usuário”.
  • Escolha um nome para o novo usuário e clique em Next.
  • Selecione a opção Adicionar usuário ao grupo.
  • Clique em Criar grupo.
  • Digite o nome do grupo e, em Permissões, selecione AdministratorAccess.
  • Clique em Criar grupo de usuário.
  • Marque a caixa do grupo criado e clique em Next e depois em Criar usuário.
  • Será exibida uma faixa verde informando que o usuário foi criado. Clique em Ver.
  • Clique em Criar chave de acesso.
  • Selecione o tipo de chave Interface de linha de comando (CLI) e clique em Next.
  • Insira uma tag para a chave (opcional) e clique em Criar chave de acesso.
  • As credenciais access_key e secret_key serão exibidas na tela.

Nota: Importante: certifique-se de salvar a chave de acesso secreta em um local seguro. Ela só é mostrada uma vez. Se você a perder, precisará gerar um novo par de chaves.

2. Criando Recursos no Terraform

Para começar, crie um diretório específico para o seu projeto, onde você armazenará todos os arquivos de configuração do Terraform. Esse diretório servirá como a base do seu ambiente de infraestrutura.

Providers.tf

Vamos criar um arquivo de providers.tf no Terraform. Esse arquivo é essencial, pois nos permite interagir com os recursos da AWS.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# Definindo o providers
terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 5.0"
    }
  }
}

# Configuração do providers AWS
provider "aws" {
  region = var.region

  access_key = var.aws_access_key
  secret_key = var.aws_secret_key
}

Backend.tf

Configurar o estado remoto no Terraform significa armazenar o arquivo de estado em um local central, como o S3, e usar o DynamoDB para garantir que ninguém altere o estado ao mesmo tempo. Isso permite que todos os membros da equipe acessem e trabalhem com a versão mais atual do estado da infraestrutura.

Essa configuração é importante para evitar conflitos, melhorar a segurança e garantir que a infraestrutura seja gerida de forma eficiente em projetos colaborativos. Com o estado remoto, a equipe pode garantir que as mudanças sejam feitas de forma controlada e sem erros.

Esta postagem está licenciada sob CC BY 4.0 pelo autor.