리눅스

Terraform으로 AWS VPC와 서브넷 가져오기

변군이글루 2023. 8. 20. 23:55
반응형

Terraform으로 AWS VPC와 서브넷 가져오기(Import)

Terraform은 인프라를 코드로 관리하는 IaC 도구이지만, 이미 생성된 AWS 리소스를 Terraform 코드로 가져와 관리하려는 경우에는 terraform import 기능을 활용할 수 있습니다.

단, import는 단순히 상태(state)에 리소스를 등록하는 것이며, HCL 코드까지 자동으로 생성해주지는 않습니다.

1. Terraform 설정 파일 작성

vim main.tf
provider "aws" {
  region = "us-west-2"  # 원하는 리전으로 변경
}

resource "aws_vpc" "existing_vpc" {
  # AWS에서 생성한 VPC의 ID를 입력하세요.
  id = "vpc-1234567890abcdef0"
}

resource "aws_subnet" "existing_subnet_1" {
  # AWS에서 생성한 서브넷의 ID를 입력하세요.
  id = "subnet-abcdefgh12345678"
}

resource "aws_subnet" "existing_subnet_2" {
  # AWS에서 생성한 다른 서브넷의 ID를 입력하세요.
  id = "subnet-ijklmnop12345678"
}

2. Terraform 초기화

terraform init
728x90

3. AWS 리소스를 Terraform 상태에 import

terraform import aws_vpc.existing_vpc vpc-1234567890abcdef0
terraform import aws_subnet.existing_subnet_1 subnet-abcdefgh12345678
terraform import aws_subnet.existing_subnet_2 subnet-ijklmnop12345678

위의 예시 코드에서 vpc-1234567890abcdef0, subnet-abcdefgh12345678, subnet-ijklmnop12345678을 실제 AWS 리소스의 ID로 대체해야 합니다.

4. import 결과 확인

terraform show를 통해 리소스가 정상적으로 상태에 반영되었는지 확인할 수 있습니다.

terraform show

import 명령을 실행하면 Terraform은 AWS 리소스를 가져와서 .terraform.tfstate 파일에 상태를 저장합니다. 그 후에는 해당 리소스를 Terraform으로 관리할 수 있습니다.

resource "aws_vpc" "existing_vpc" {
  cidr_block           = "10.0.0.0/16"
  enable_dns_support   = true
  enable_dns_hostnames = true
  tags = {
    Name = "my-imported-vpc"
  }
}

 

728x90
반응형