Skip to content

4linux/terraform-docs-4labs

Repository files navigation

Infra as Code - Projeto Final GCP

Esse projeto vai contemplar um conjuto de recursos na GCP, que serão criados via Terraform.

Teremos um balanceador de cargas que irá atender todas as requisições em um IP único. Essas requisições serão enviadas para um conjunto de máquinas nos Estados Unidos (em duas zonas distintas), ou, para um região da Ásia (apenas uma zona), isso vai depender de onde o usuário estiver fazendo as requisições e com base nisso o usuário será direcionado para a região mais perto (Estados Unidos ou Ásia) da sua localização física. Em caso de uma região inteira acabar ficando offline, o tráfego será enviado automaticamente para outra região

Módulos necessários (Pode haver variações)

  • firewall
  • health-check
  • instance
  • instance-groups
  • instance-templates
  • load-balancer
  • load-balancer-backend
  • load-balancer-frontend
  • load-balancer-target-http-proxy
  • network
  • router
  • router-nat
  • subnetwork
  • tcp-health-check

Requirements

No requirements.

Providers

Name Version
google 6.46.0

Modules

No modules.

Resources

Name Type
google_compute_backend_service.backend_projeto resource
google_compute_firewall.fw_projeto resource
google_compute_global_forwarding_rule.global_projeto resource
google_compute_http_health_check.health_projeto resource
google_compute_instance_template.template_projeto resource
google_compute_network.vpc_projeto resource
google_compute_region_instance_group_manager.app-server resource
google_compute_subnetwork.subnets_projeto resource
google_compute_target_http_proxy.target_projeto resource
google_compute_url_map.url_map_projeto resource

Inputs

Name Description Type Default Required
allow_rules Regras de permissão para o firewall list(string)
[
"22",
"80",
"443"
]
no
default_region The default region for Google Cloud resources. string "us-central1" no
fw_name The name of the firewall rule. string "fw-projeto" no
gcp_project_id The Google Cloud project ID to use for resources. string "gcp-4linux" no
health_check_interval_sec The interval in seconds between health checks. number 1 no
health_check_name The name of the HTTP health check. string "http-health-check-projeto" no
health_request_path The request path for the health check. string "/" no
health_timeout_sec The timeout in seconds for the health check. number 1 no
machine_type The machine type for the instance template. string "e2-medium" no
source_image The source image for the instance template. string "projects/debian-cloud/global/images/family/debian-12" no
subnetworks Map of subnetwork configurations.
map(object({
name = string
region = string
ip_cidr_range = string
}))
{
"asia-subnet-a": {
"ip_cidr_range": "10.222.0.0/24",
"name": "asia-subnet-a",
"region": "asia-east1"
},
"us-subnet-a": {
"ip_cidr_range": "10.220.0.0/24",
"name": "us-subnet-a",
"region": "us-central1"
},
"us-subnet-b": {
"ip_cidr_range": "10.221.0.0/24",
"name": "us-subnet-b",
"region": "us-central1"
}
}
no
template_name The name of the instance template. string "template" no
vpc_name The name of the VPC network. string "vpc-projeto" no

Outputs

No outputs.

About

repositório para demonstração no blog da 4Linux

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published