Untitled
unknown
plain_text
8 months ago
1.5 kB
5
Indexable
# Task: Deploy a simple VPC on AWS
# 1. Define the variables: vpc_name, vpc_cidr, private_subnet_cidrs, public_subnet_cidrs
# 2. Create a VPC
# 3. Create the corresponding public subnets and private subnets
# 4. Setup an internet gateway and associate to the public subnets
# 5. Output the internet_gateway ID
# 1. Define Variables
variable "vpc_name" {
  description = "Name of the VPC"
  type        = string
}
variable "vpc_cidr" {
  description = "CIDR for the VPC"
  type        = string
}
variable "private_subnet_cidrs" {
  description = "List of Private Subnets CIDRs"
  type        = list(string)
}
variable "public_subnet_cidrs" {
  description = "List of Public Subnets CIDRs"
  type        = list(string)
}
# The AWS module provider
terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = ">= 2.7.0"
    }
  }
}
# Create VPC and related subnet using aws module
module "vpc" {
  source = "terraform-aws-modules/vpc/aws"
  name = var.vpc_name
  cidr = var.vpc_cidr
  azs             = ["ap-east-1a", "ap-east-1b"]
  private_subnets = var.private_subnet_cidrs
  public_subnets  = var.public_subnet_cidrs
  tags = {
    Terraform = "true"
    Environment = "dev"
  }
}
# 4. Create IGW in vpc
resource "aws_internet_gateway" "gw" {
  vpc_id = module.vpc.vpc_id
  tags = {
    Name = "main"
  }
}
# 5. output the igw id
output "igw_id" {
  value = try(ws_internet_gateway.gw.id, null)
  description = "The ID of the IGW"
}Editor is loading...
Leave a Comment