ALB Security Group 생성
alb Security Group 생성 코드이다.
resource "aws_security_group" "gh_security" {
name = "gh_sg"
description = "alb Security Group"
vpc_id = var.seoul_vpc
tags = {
Name = "gh_sg"
Service = "SecurityGroup"
}
egress {
from_port = 0
to_port = 0
protocol = "-1"
cidr_blocks = [ "0.0.0.0/0" ]
}
}
Tags
태그는 리소스에 붙이는 간단한 식별 코드이다.
간단하게, 라벨이라고 생각하면 된다.
egress
트래픽 규칙을 정의한다.
AWS Security Group에서는 ingress와 egress가 있다.
ingress : 리소스에 들어오는 트래픽을 제어한다.
egress : 리소스에 나가는 트래픽을 제어한다.
- from_port = 0 : 시작 포트를 의미합니다. 0은 모든 포트를 포함한다는 의미입니다.
- to_port = 0 : 끝 포트를 의미하며, 이는 모든 포트를 허용합니다.
- protocol = "-1" : -1은 모든 것을 허용한다는 뜻이다.
- cidr_block = [ “0.0.0.0/0”] : 모든 IP를 허용한다는 뜻이다.
ALB Subnet
Subnet을 2개를 사용하는 간단한 코드를 제작 했다.
provider "aws" {
region = var.aws_region //vars.tf에 지정해 두었다.
}
Application LoadBalancer Resource block
//간단하게 alb를 resource block을 설정한다.
resource "aws_lb" "alb" {
name = "gh-lb"
internal = false
load_balancer_type = "application"
security_groups = [
aws_security_group.gh_sg.id
]
// subnet을 mapping 해준다.
subnet_mapping {
subnet_id = var.alb_subnet_a //vars.tf에 지정해 두었다.
}
subnet_mapping {
subnet_id = var.alb_subnet_b //vars.tf에 지정해 두었다.
}
//순서는 상관 없지만 이제 tags를 붙여준다.
tags = {
Name = "gh-lb"
Service = "Load Balancer GH"
Environment = "Staging"
}
}
Load Balancer는 리스너가 없는 경우 클라이언트로부터 트래픽을 수신할 수 없기 때문에
https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lb_listener
위에 링크를 보고 똑같이 설정하면 된다.
vars.tf 설정 예시
variable "aws_region" {
description = "AWS Region"
default = "ap-northeast-2"
}
variable "alb_subnet_a" {
description = "Subnet ID"
default = "subnet-0cea****"
}
variable "alb_subnet_b" {
description = "Subnet ID"
default = "subnet-0cfa****"
}
대충 청정라거 Terraform 5까지 읽으면 ALB 구성 Terraform은 할 수 있게 된다.
'DevOps > Terraform' 카테고리의 다른 글
[Terraform] RDS Snapshot (0) | 2024.10.16 |
---|---|
[Terraform] backend.tf 예시 및 Module, Data (0) | 2024.10.11 |
[Terraform] 다양한 이름 설정 (2) | 2024.09.30 |
[Terraform] Variable 및 Output 이해하기 (1) | 2024.09.27 |
[Terraform] Terraform 기초 지식 (3) | 2024.09.24 |