ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • terraform (vpc, subnet, nat_gateway, route table)
    terraform 2023. 11. 23. 10:04
    terraform {
      backend "local" {
        path "/root/test/terraform.tfstate"
     }
    }
    
    provider "aws" {
      region = "ap-northeast-2"
    }
    
    resource "aws_vpc" "main" {
      cidr_block     = "10.0.0.0/16"
    
     tags = {
       Name = "terra_test02"
     }
    }

     

     

     

    terraform {
      backend "local" {
        path "/root/test/terraform.tfstate"
     }
    }
    
    provider "aws" {
      region = "ap-northeast-2"
    }
    
    resource "aws_vpc" "main" {
      cidr_block     = "10.0.0.0/16"
    
     tags = {
       Name = "terra_test02"
     }
    }
    
    resource "aws_subnet" "public_subnet" {
      vpc_id  = aws_vpc.main.id
      cidr_block = "10.0.1.0/24"
      availability_zone = "ap-northeast-2a"
      tags = {
        Name = "public_subnet"
     }
    }
    
    resource "aws_subnet" "private_subnet" {
      vpc_id  = aws_vpc.main.id
      cidr_block = "10.0.2.0/24"
      availability_zone = "ap-northeast-2b"
      tags = {
        Name = "private_subnet"
     }
    }

     

    서브넷을 추가 해주었다

     

     

     

    terraform {
      backend "local" {
        path = "/root/test/terraform.tfstate"
      }
    }
    
    provider "aws" {
      region = "ap-northeast-2"
    }
    
    resource "aws_vpc" "main" {
      cidr_block       = "10.0.0.0/16"
    
      tags = {
        Name = "terra_test02"
      }
    }
    
    resource "aws_subnet" "public_subnet" {
      vpc_id = aws_vpc.main.id
      cidr_block = "10.0.1.0/24"
      availability_zone = "ap-northeast-2a"
      tags = {
        Name = "public_subnet"
      }
    }
    
    resource "aws_subnet" "private_subnet" {
      vpc_id = aws_vpc.main.id
      cidr_block = "10.0.2.0/24"
      availability_zone = "ap-northeast-2b"
      tags = {
        Name = "private_subnet"
      }
    }
    
    resource "aws_eip" "nat" {
      domain = "vpc"
      lifecycle {
        create_before_destroy = true
      }
    }
    
    resource "aws_nat_gateway" "nat_gateway" {
      allocation_id = aws_eip.nat.id
      subnet_id = aws_subnet.public_subnet.id
      tags = {
        Name = "NAT-GW"
      }
    }

     

    nat_gateway 추가 nat_gateway 는 유료이기 때문에 명령어만 확인했다 

     

    terraform {
      backend "local" {
        path = "/root/test/terraform.tfstate"
      }
    }
    
    provider "aws" {
      region = "ap-northeast-2"
    }
    
    resource "aws_vpc" "main" {
      cidr_block       = "10.0.0.0/16"
    
      tags = {
        Name = "terra_test02"
      }
    }
    
    resource "aws_subnet" "public_subnet" {
      vpc_id = aws_vpc.main.id
      cidr_block = "10.0.1.0/24"
      availability_zone = "ap-northeast-2a"
      tags = {
        Name = "public_subnet"
      }
    }
    
    resource "aws_subnet" "private_subnet" {
      vpc_id = aws_vpc.main.id
      cidr_block = "10.0.2.0/24"
      availability_zone = "ap-northeast-2b"
      tags = {
        Name = "private_subnet"
      }
    }
    
    resource "aws_internet_gateway" "igw" {
      vpc_id = aws_vpc.main.id
      tags = {
        Name = "test-igw"
     }
    }
    
    resource "aws_eip" "nat" {
      domain = "vpc"
      lifecycle {
        create_before_destroy = true
      }
    }
    
    resource "aws_nat_gateway" "nat_gateway" {
      allocation_id = aws_eip.nat.id
      subnet_id = aws_subnet.public_subnet.id
      tags = {
        Name = "NAT-GW"
      }
    }

     

    gateway를 추가 해주었다

     

    terraform {
      backend "local" {
        path = "/root/test/terraform.tfstate"
      }
    }
    
    provider "aws" {
      region = "ap-northeast-2"
    }
    
    resource "aws_vpc" "main" {
      cidr_block       = "10.0.0.0/16"
    
      tags = {
        Name = "terra_test02"
      }
    }
    
    resource "aws_subnet" "public_subnet" {
      vpc_id = aws_vpc.main.id
      cidr_block = "10.0.1.0/24"
      availability_zone = "ap-northeast-2a"
      tags = {
        Name = "public_subnet"
      }
    }
    
    resource "aws_subnet" "private_subnet" {
      vpc_id = aws_vpc.main.id
      cidr_block = "10.0.2.0/24"
      availability_zone = "ap-northeast-2b"
      tags = {
        Name = "private_subnet"
      }
    }
    
    resource "aws_internet_gateway" "igw" {
      vpc_id = aws_vpc.main.id
      tags = {
        Name = "test-igw"
     }
    }
    
    resource "aws_eip" "nat" {
      domain = "vpc"
      lifecycle {
        create_before_destroy = true
      }
    }
    
    resource "aws_nat_gateway" "nat_gateway" {
      allocation_id = aws_eip.nat.id
      subnet_id = aws_subnet.public_subnet.id
      tags = {
        Name = "NAT-GW"
      }
    }
    
    resource "aws_route_table" "public_RT" {
      vpc_id = aws_vpc.main.id
      
      route {
        cidr_block = "0.0.0.0/0"
        gateway_id = aws_internet_gateway.igw.id
    }
    
      tags = {
        Name = "public_RT"
     }
    }
    
    resource "aws_route_table" "public_RT" {
      vpc_id = aws_vpc.main.id
      tags = {
        Name = "private_RT"
     }
    }
    
    resource "aws_route_table_association" "association_public" {
      subnet_id = aws_subnet.public_subnet.id
      route_table_id = aws_route_table.public_RT.id
    }
    
    resource "aws_route_table_association" "association_private" {
      subnet_id = aws_subnet.private_subnet.id
      route_table_id = aws_route_table.private_RT.id
    }

     

    route table 추가를 해주었다

     

    terraform {
      backend "local" {
        path = "/root/test/terraform.tfstate"
      }
    }
    
    provider "aws" {
      region = "ap-northeast-2"
    }
    
    resource "aws_vpc" "main" {
      cidr_block       = "10.0.0.0/16"
    
      tags = {
        Name = "terra_test02"
      }
    }
    
    resource "aws_subnet" "public_subnet" {
      vpc_id = aws_vpc.main.id
      cidr_block = "10.0.1.0/24"
      availability_zone = "ap-northeast-2a"
      tags = {
        Name = "public_subnet"
      }
    }
    
    resource "aws_subnet" "private_subnet" {
      vpc_id = aws_vpc.main.id
      cidr_block = "10.0.2.0/24"
      availability_zone = "ap-northeast-2b"
      tags = {
        Name = "private_subnet"
      }
    }
    
    resource "aws_internet_gateway" "igw" {
      vpc_id = aws_vpc.main.id
      tags = {
        Name = "test-igw"
     }
    }
    
    resource "aws_eip" "nat" {
      domain = "vpc"
      lifecycle {
        create_before_destroy = true
      }
    }
    
    resource "aws_nat_gateway" "nat_gateway" {
      allocation_id = aws_eip.nat.id
      subnet_id = aws_subnet.public_subnet.id
      tags = {
        Name = "NAT-GW"
      }
    }
    
    resource "aws_route_table" "public_RT" {
      vpc_id = aws_vpc.main.id
      
      route {
        cidr_block = "0.0.0.0/0"
        gateway_id = aws_internet_gateway.igw.id
    }
    
      tags = {
        Name = "public_RT"
     }
    }
    
    resource "aws_route_table" "public_RT" {
      vpc_id = aws_vpc.main.id
      tags = {
        Name = "private_RT"
     }
    }
    
    resource "aws_route_table_association" "association_public" {
      subnet_id = aws_subnet.public_subnet.id
      route_table_id = aws_route_table.public_RT.id
    }
    
    resource "aws_route_table_association" "association_private" {
      subnet_id = aws_subnet.private_subnet.id
      route_table_id = aws_route_table.private_RT.id
    }
    
    resource "aws_route" "private_nat" {
      route_table_id = aws_route_table.private_RT.id
      destination_cidr_block = "0.0.0.0/0"
      nat_gateway_id = aws_nat_gatway.nat_gateway.id
    }

     

    route rule 입력

    'terraform' 카테고리의 다른 글

    terraform (backend)  (0) 2023.11.22
    terraform (remote state)  (0) 2023.11.21
    terraform 반복문(count, for_each)  (1) 2023.11.21
    terraform 인스턴스 생성  (0) 2023.11.21
Designed by Tistory.