본문 바로가기

리눅스

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

반응형

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
반응형