GNU/Linux >> Znalost Linux >  >> Linux

Vytvořte virtuální privátní cloud (VPC) na AWS pomocí Terraform

V tomto článku vám ukážu, jak vytvořit VPC spolu s podsítěmi, internetovou bránou, branami NAT a směrovacími tabulkami. Vyrobíme 1 VPC se 4 podsítěmi:2 soukromé a 2 veřejné, 2 brány NAT, 1 internetová brána a 4 směrovací tabulky.

Než budete pokračovat, předpokládám, že máte základní znalosti o Terraformu a VPC na AWS. Chcete-li se dozvědět VPC a jeho vytvoření z konzole AWS, klikněte sem a chcete-li se naučit základy Terraformu, můžete vyhledat „Co je Terraform a jak jej nainstalovat na instanci AWS EC2?“

Předpoklady

  1. Základní znalosti teraformu.
  2. Terraform nainstalovaný ve vašem systému.
  3. Účet AWS (vytvořte si jej, pokud jej nemáte).
  4. 'access_key' a 'secret_key' uživatele AWS IAM. (Kliknutím sem se dozvíte, jak vytvořit uživatele IAM pomocí 'access_key' a 'secret_key' na AWS, )

Co uděláme

  1. Zapište konfigurační soubory Terraform pro vytvoření VPC s dalšími závislými zdroji.
  2. Vytvořte VPC a další závislé zdroje pomocí konfiguračních souborů Terraform
  3. Vymažte vytvořené VPC a další závislé zdroje pomocí Terraform

Zapište konfigurační soubory Terraform pro vytvoření VPC s dalšími závislými zdroji.

Vytvořte vyhrazený adresář, kde můžete vytvářet konfigurační soubory terraform.

Pomocí následujícího příkazu vytvořte adresář a změňte na něj svůj současný pracovní adresář.

mkdir terraform
cd terraform/

Používám "vim" jako editor pro zápis do souborů. Chcete-li vytvořit proměnné.tf, terraform.tfvars a main.tf, můžete použít editor podle svého výběru a zkopírovat a vložit následující konfigurace.

Vytvořte 'main.tf', který je zodpovědný za vytváření VPC na AWS se závislými zdroji. Tento main.tf bude číst hodnoty proměnných z variables.tf a terraform.tfvars.

vim main.tf 
poskytovatel "aws" { region ="${var.region}" access_key ="${var.access_key}" secret_key ="${var.secret_key}"}# zdroje VPC:Tím se vytvoří 1 VPC se 4 Podsítě, 1 internetová brána, 4 směrovací tabulky. zdroj "aws_vpc" "výchozí" { cidr_block =var.cidr_block enable_dns_support =true enable_dns_hostnames =true}zdroj "aws_internet_gateway" "výchozí" { vpc_id =aws_vpc.default.id}zdroj "aws_route_table" =délka(var. private_subnet_cidr_blocks) vpc_id =aws_vpc.default.id}resource "aws_route" "private" { count =length(var.private_subnet_cidr_blocks) route_table_id =aws_route_table.private[count.index].id destination_cidr_gateway_block ="0wt.gateway_block ="0. .default[count.index].id}zdroj "aws_route_table" "public" { vpc_id =aws_vpc.default.id}zdroj "aws_route" "public" { route_table_id =aws_route_table.public.id destination_cidr_block ="0.0.0.0/0.0.0.0 gateway_id =aws_internet_gateway.default.id}resource "aws_subnet" "private" { count =length(var.private_subnet_cidr_blocks) vpc_id =aws_vpc.default.id cidr_block =var.private_subnet_cidr_blocks[count.index ] dostupnost_zone =var.availability_zones[count.index]}zdroj "aws_subnet" "public" { count =length(var.public_subnet_cidr_blocks) vpc_id =aws_vpc.default.id cidr_block =var.public_subnet_cidr_blocks[count.index] dostupnost [count.index] map_public_ip_on_launch =true}resource "aws_route_table_association" "private" { count =length(var.private_subnet_cidr_blocks) subnet_id =aws_subnet.private[count.index].id route_table_id =aws_route_count.table. zdroj "aws_route_table_association" "public" { count =length(var.public_subnet_cidr_blocks) subnet_id =aws_subnet.public[count.index].id route_table_id =aws_route_table.public.id}# prostředky NAT:Tím se vytvoří 2 veřejné brány NAT ve 2 pro 2 různé soukromé podsítě.zdroj "aws_eip" "nat" { count =length(var.public_subnet_cidr_blocks) vpc =true}zdroj "aws_nat_gateway" "default" { Depend_on =["aws_i nternet_gateway.default"] count =length(var.public_subnet_cidr_blocks)location_id =aws_eip.nat[count.index].id subnet_id =aws_subnet.public[count.index].id}   

Vytvořte soubor 'variables.tf', který obsahuje deklaraci a definici proměnných.

vim variables.tf
proměnná "access_key" { description ="Přístupový klíč ke konzole AWS" }proměnná "secret_key" { description ="Tajný klíč ke konzole AWS" }proměnná "region" { default ="eu-west-3" typ =řetězec description ="Region of the VPC"}proměnná "cidr_block" { default ="10.0.0.0/16" type =string description ="CIDR blok pro VPC"}proměnná "public_subnet_cidr_blocks" { default =["10.0.0.0/24 ", "10.0.2.0/24"] typ =popis seznamu ="Seznam bloků CIDR veřejné podsítě"}proměnná "private_subnet_cidr_blocks" { výchozí =["10.0.1.0/24", "10.0.3.0/24"] typ =list description ="Seznam bloků privátní podsítě CIDR"}proměnná "availability_zones" { default =["eu-west-3a", "eu-west-3b"] type =list description ="Seznam zón dostupnosti"}  

Vytvořte 'terraform.tfvars', který obsahuje definici proměnných access_key a secret_key definovaných ve výše uvedeném souboru. Uchovali jsme deklaraci těchto dvou proměnných v souboru „terraform.tfvars“.

Následující klíče je třeba změnit pomocí klíčů vašeho uživatele IAM.

vim terraform.tfvars 
access_key ="AKIAQ6GAIA5XIHHM2GJM"secret_key ="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"

Nyní byste měli mít 3 soubory, viz, variables.tf, terraform.tfvars a main.tf

Vytvořte VPC a další závislé zdroje pomocí konfiguračních souborů Terraform

Než provedete následující příkazy, ujistěte se, že jste nakonfigurovali platný access_key a secret_key.

První příkaz, který se má použít, je 'terraform init'. Tento příkaz stáhne a nainstaluje pluginy pro poskytovatele používané v rámci konfigurace. V našem případě je to AWS.

terraform init

Druhý příkaz, který se má použít, je 'terraform plan'. Tento příkaz se používá k zobrazení změn, ke kterým dojde v infrastruktuře.

plán terraform

Příkaz „terraform apply“ vytvoří prostředky na AWS uvedené v souboru main.tf. Budete vyzváni, abyste poskytli svůj vstup pro vytvoření zdrojů.

použít Terraform

Když provedete výše uvedený příkaz,  můžete vidět, že bylo přidáno 20 nových zdrojů a ve výstupu bylo zničeno 0.

Můžete přejít do konzoly AWS VPC a ověřit, zda je VPC vytvořeno společně s podsítěmi, routovacími tabulkami, bránami NAT a internetovou bránou.

Smažte vytvořené VPC a další závislé zdroje pomocí Terraform

Pokud již nepotřebujete zdroje, které jste vytvořili pomocí konfigurace uvedené v souboru main.tf, můžete všechny tyto zdroje smazat pomocí příkazu „terraform zničit“.

zničit terraform

Když provedete výše uvedený příkaz, můžete vidět, že 20 vytvořených zdrojů je ve výstupu zničeno. Totéž můžete ověřit na stránce AWS na hlavním panelu VPC.

Závěr

V tomto článku jsme viděli kroky k vytvoření VPC se 4 podsítěmi, 4 směrovacími tabulkami, 2 bránami NAT a 1 internetovou bránou. Také jsme viděli, jak mohou být zdroje, které byly vytvořeny, zničeny.


Linux
  1. Vytvořte instanci EC2 na AWS pomocí Terraform

  2. Jak vytvořit instanci RDS na AWS pomocí Terraform

  3. Jak vytvořit roli IAM v AWS pomocí Terraform

  1. Jak vytvořit síť VPC (Virtual Private Cloud) v GCP

  2. Jak nakonfigurovat svůj vlastní VPC (Virtual Private Cloud) v AWS

  3. Jak spustit instanci AWS EC2 pomocí Terraform

  1. Jak vytvořit virtuální počítač (VM) na Google Cloud Platform (GCP)

  2. Spravujte AWS VPC pomocí aws-cli

  3. Jak používat Cloudformation k vytvoření VPC na AWS