logotype

Criando Subnet

Leitura estimada: 4 minutos 65 views

Nos já criamos uma subnet conforme documentação criando vpc, 

É óbvio que podemos ir até o console da AWS, verificar qual VPC iremos utilizar e inserir manualmente na receita do Terraform. No entanto, essa não é uma boa prática, pois queremos reutilizar o código futuramente. A melhor maneira de fazer isso é utilizando um componente do provider chamado “Data Sources”, que permite consultar recursos e componentes da AWS. No Terraform, temos “Resources” para criar recursos e “Data sources” para consultar recursos já criados.

Agora vamos no registry do terraform e vamos procurar por VPC e depois “Data Sources” conforme baixo.

				
					data "aws_vpc" "vpc_existente" {
    tags = {Name = "vpc_dev"}
}

				
			

Nós estamos falando para aws que queremos verificar se a vpc existe seguindo os critérios acima, ou seja, o bloco data é usado para definir data sources. Data sources permitem que você acesse informações sobre recursos externos ao seu Terraform, que não são gerenciados diretamente pelo Terraform. Isso pode incluir informações de recursos existentes na infraestrutura ou informações de serviços externos. Utilizar data sources é essencial para integrar e utilizar dados existentes sem recriar ou duplicar esses recursos. Neste caso acima eu estou pegando a tag “Name” como fonte de pesquisa do recurso na aws.

# vim subnet.tf

				
					resource "aws_subnet" "subnet_dev_a" {
  vpc_id = data.aws_vpc.vpc_existente.id
  cidr_block = "10.0.2.0/24"
  
  tags = {
    Name = "subnet_dev_a"
  }
}

				
			

Explicação Detalhada

1. resource "aws_subnet" "subnet_dev_a"

  • aws_subnet: Este é o tipo de recurso que está sendo criado, ou seja, uma sub-rede (subnet) na AWS.
  • subnet_dev_a: Esse é o nome lógico do recurso dentro do código Terraform. Esse nome é usado internamente pelo Terraform para se referir à sub-rede, por exemplo, quando você precisa interagir com essa sub-rede em outros recursos ou módulos.

2. vpc_id = data.aws_vpc.vpc_existente.id

  • vpc_id: Este parâmetro indica a qual VPC a sub-rede será associada.

    O que está acontecendo aqui é que a sub-rede está sendo associada a uma VPC existente, e não criada diretamente no recurso. Isso é indicado pelo uso de data.aws_vpc.vpc_existente.id.

  • data.aws_vpc.vpc_existente: Aqui, data é uma fonte de dados no Terraform. As fontes de dados são usadas para obter informações sobre recursos existentes na AWS ou em outro provedor. Ou seja, a VPC chamada vpc_existente já foi criada em outro lugar, e o Terraform está apenas referenciando essa VPC existente para associar a sub-rede a ela.

3. cidr_block = "10.0.2.0/24"

  • cidr_block: Define o bloco de endereços IP que será alocado para esta sub-rede.

    • O bloco CIDR 10.0.2.0/24 especifica que a sub-rede terá 256 endereços IP disponíveis, com o primeiro IP sendo 10.0.2.0 e o último IP sendo 10.0.2.255.
    • O /24 significa que os primeiros 24 bits do endereço IP são usados para identificar a sub-rede, deixando 8 bits para os endereços individuais. Isso resulta em 256 endereços (de 10.0.2.0 até 10.0.2.255).
  • Esse bloco CIDR deve estar dentro do bloco CIDR da VPC existente. Por exemplo, se a VPC existente tem o CIDR 10.0.0.0/16, você pode criar várias sub-redes, cada uma com um bloco CIDR como 10.0.1.0/24, 10.0.2.0/24, etc.

4. tags = { Name = "subnet_dev_a" }

  • tags: As tags são metadados que você pode associar a um recurso na AWS. As tags são úteis para organização, identificação e gerenciamento de recursos.

    • Name = "subnet_dev_a": Isso cria uma tag chamada Name e atribui a ela o valor "subnet_dev_a". Isso serve para dar um nome à sub-rede, facilitando a identificação dela no Console da AWS ou em outras ferramentas de gerenciamento.
    • As tags são úteis para organização, especialmente quando você tem múltiplas sub-redes, VPCs ou outros recursos.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Compartilhe este documento

Criando Subnet

Ou copie o link

    CONTEÚDO