♻ Terraform(테라폼) (45) 썸네일형 리스트형 Terraform -target 을 활용한 특정 리소스 생성 및 삭제 방법 # Terraform -target 을 활용한 특정 리소스 생성 및 삭제 방법주석 해제 방법은 간단하지만, 원하는 리소스만 생성하는 더 효율적인 방법이 있습니다. Terraform에서는 -target 옵션을 사용하여 특정 리소스나 모듈만 생성할 수 있습니다. 이 방법을 사용하면 주석을 해제하거나 다시 주석 처리할 필요 없이 원하는 리소스만 생성할 수 있습니다.예를 들어, 특정 모듈만 생성하려면 다음 명령어를 사용할 수 있습니다:terraform apply -target=module.vpc이 명령어는 module.vpc만 생성합니다. 다른 리소스나 모듈을 생성하려면 -target 옵션에 해당 리소스나 모듈을 지정하면 됩니다.또한, 여러 리소스를 동시에 생성하려면 -target 옵션을 여러 번 사용할 수 있.. Terraform으로 인프라를 구성할 때 알아야 할 기본 사항 # Terraform으로 인프라를 구성할 때 알아야 할 기본 사항AWS 리소스를 생성하고 구성할 때 필요한 요소들에 대한 정보는 주로 다음과 같은 출처에서 얻을 수 있습니다.공식 문서: AWS 공식 문서와 Terraform 공식 문서를 참고하면 각 리소스의 사용법과 구성 방법을 자세히 알 수 있습니다.AWS VPC 공식 문서Terraform AWS Provider 공식 문서예제 코드: Terraform Registry나 GitHub 등에서 제공하는 예제 코드를 참고하면 실제 사용 사례를 통해 필요한 리소스와 구성 방법을 알 수 있습니다.Terraform AWS VPC Module블로그 및 튜토리얼: 다양한 블로그와 튜토리얼에서 AWS 인프라를 구성하는 방법을 단계별로 설명합니다. 이를 통해 필요한 리소스.. Terraform 버전과 관련한 내용 정리 # Terraform 버전과 관련한 내용 정리terraform { required_version = ">= 1.0.0, terraform 블록에서 required_version을 ">= 1.0.0, 이 설정을 통해 호환되지 않는 Terraform 버전으로 인한 문제를 방지할 수 있습니다. - 끝 - terraform module (테라폼 모듈의 실행 Flow) # 현재 폴더의 구성은 아래와 같다.├── main.tf└── modules ├── ec2 │ └── main.tf ├── key-pair │ └── main.tf ├── nat-gateway │ └── main.tf ├── security-group │ └── main.tf ├── subnet │ └── main.tf └── vpc └── main.tf# Terraform module의 실행 Flow 정리Terraform은 모듈 간의 의존성을 자동으로 관리합니다. main.tf 파일에서 vpc_id와 route_table_id를 module.vpc에서 가져오도록 설정했기 때문에, Terraform은 vpc 모듈을 .. Terraform 리소스 값을 사용하기 위한 Module간 관계 정리 코드는 아래와 같다.# 사용되는 Flow를 블로그에 정리.module "subnet" { source = "./modules/subnet" # 서브넷 모듈 소스 경로 vpc_id = module.vpc.vpc_id # VPC 모듈에서 VPC ID 가져오기 route_table_id = module.vpc.route_table_id # VPC 모듈에서 라우트 테이블 ID 가져오기}module.vpc.route_table_id와 module.vpc.vpc_id 값을 가져오는 흐름은 다음과 같습니다:modules/vpc/main.tf 파일에서 VPC와 라우트 테이블 리소스 정의aws_vpc.main 리소스는 VPC를 생성하고, aws_route_table.main 리소스는 라우트 테이블을 생성합니다.. Terraform outputs와 variables의 관계 정리 # Terraform outputs와 variables의 관계 정리Terraform에서 outputs와 variables는 서로 다른 목적을 가지고 있으며, 다음과 같은 관계가 있습니다.Variables (변수)variables는 Terraform 구성에서 입력 값을 정의하는 데 사용됩니다.사용자가 Terraform 실행 시 값을 제공하거나, 기본값을 설정할 수 있습니다.예를 들어, main.tf 파일에서 모듈에 값을 전달할 때 사용됩니다.variable "vpc_id" { description = "The ID of the VPC" type = string}Outputs (출력)outputs는 Terraform 구성에서 생성된 리소스의 값을 출력하는 데 사용됩니다.다른 모듈이나 외부 시.. Terraformer를 통해 EKS 리소스 가져오기 (클러스터, 노드그룹) # EKS 클러스터에 Tag 정보를 추가 후 Terraformer를 통해 리소스를 Import 하기 1. EKS와 NodeGroup에 태그정보 추가하기 - EKS 클러스터에 Tag 정보를 보면 Name은 이미 다른 이름으로 태깅이 되어 있었다. 다른 키 값을 Name 값으로 입력을 해야하는데 뭐가 좋을까 고민하다가 re_seung 라는 유니크한 값으로 키값을 설정 하기로 했다. - 태그 추가는 태그 관리 항목에서 할 수 있으며 별도로 설명은 하지 않겠다. - 노드 그룹 같은 경우는 편집 → 태그를 추가 해야한다. 태그 결과는 아래와 같다. (클러스터 태깅) 태그 결과 (노드그룹 태깅) 2. Terraformer를 활용하여 위에서 설정한 태깅 정보를 기반으로 Import 하는 작업을 해보자. 마음 같아서는.. Terraformer 트러블 슈팅 Error: Failed to read state file # 오류내용은 아래와 같다. │ Error: Failed to read state file │ │ The state file could not be read: read ../../../generated/aws/route_table/terraform.tfstate: The │ process cannot access the file because another process has locked a portion of the file. - 리소스를 콘솔에서 클릭 클릭 해서 만들고 라우트 테이블에 igw 라우팅 정보 입력하고 서브넷 까지 연결해줬다 그리고 아래의 명령어를 수행하여 import를 하고 로컬로 가져와서 terraform init / plan 했는데 위의 오류가 발생 했다. terraformer im.. 이전 1 2 3 4 ··· 6 다음