반응형
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
반응형
'리눅스' 카테고리의 다른 글
nc 명령어 - 사용 예시 (0) | 2023.08.23 |
---|---|
ssh "Host key verification failed" 오류 해결 방법 (0) | 2023.08.22 |
기존 AWS 설정을 Terraform으로 가져오는 일반적인 절차 (0) | 2023.08.20 |
AWS 동적 인벤토리를 사용하여 AWS 인스턴스 목록을 가져오는 방법 (0) | 2023.08.14 |
PHP-FPM 로그 파일의 로테이션 설정하는 방법(php-fpm logrotate) (0) | 2023.08.10 |