backend.tf 구성 예시
terraform {
backend "remote" {
hostname = "app.terraform.io"
organization = "ghpark"
workspaces {
name = "GH_ECS_STAGING"
}
}
}
위의 코드처럼 Terraform Cloud에 적용 시킬 수 있다.
organization = "ghpark" : ghpark이란 조직이 생성 된다.
name = "GH_ECS_STAGING" : GH_ECS_STAGING이란 workspace가 생성 된다.
Module 이해
관련있는 리소스 구성을 패키징하고 재사용하는 방법이다.
module "gh_ecs_module" {
source = "../modules/aws-gh_ecs_module"
}
위의 코드 처럼 module이름과 경로를 지정한다.
주의! : 모듈 폴더를 만들어 줘야 한다.
- gh_ecs_module : module의 이름이다.
- source = "../modules/aws-gh_ecs_module" : module이 위치하고 있는 상대 경로이다.
Data 이해
Terraform 외부에서 정의된 정보, 다른 별도의 Terraform 구성에서 정의된 정보를 사용할 수 있다.
data "aws_subnets" "ghpark_subnets" {
filter {
name = "subnet-id"
values = [ "subnet-064695f3ad5baec1a", "subnet-0181b1063d5785bc4" ]
}
}
위의 코드처럼 data 블록을 만들어 줬다.
- ghpark_subnets : 서브넷 블록의 이름이다.
- filter : 특정 리소스를 검색하는데 사용한다.
- 위의 코드에선 subnet-id를 검색 한 것이다.
module "gh_ecs_module" {
source = "../modules/aws-gh_ecs_module"
vpc_id = var.seoul_vpc
service_subnets = data.aws_subnets.ghpark_subnets.ids
}
위의 코드처럼 data를 호출 할 수 있다.
'DevOps > Terraform' 카테고리의 다른 글
[Terraform] RDS Snapshot (0) | 2024.10.16 |
---|---|
[Terraform] ALB (Security Group, Subnet) (1) | 2024.10.14 |
[Terraform] 다양한 이름 설정 (2) | 2024.09.30 |
[Terraform] Variable 및 Output 이해하기 (1) | 2024.09.27 |
[Terraform] Terraform 기초 지식 (3) | 2024.09.24 |