리눅스
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
반응형