AWS ALB and NLB 생성하기
Load Balancer 생성
Load Balancer는 여러 인스턴스에 트래픽을 분배해주기 위해서 반드시 필요한 리소스입니다. EC2 위에 올라가 있는 대부분의 서비스는 LB를 앞 단에 두는 것이 보통인데, LB의 경우에는 설정할 것이 상당히 많아 코드로 한 번 정리해놓으면 편리하게 생성/관리하실 수 있습니다.
Load Balancer는 NLB/ALB 선택해서 생성하시면 됩니다.
ALB (Application Load Balancer): Layer 7 로드밸런서로, Security Group으로 접근제어가 가능하며, URI 별로 라우팅을 할 수 있습니다.
NLB (Network Load Balancer): Layer 4 로드밸런서로, ALB보다 전송 속도는 빠르지만 Security Group으로 과거에는 접근제어가 되지 않았지만, 현재는 가능합니다.
실습에서 생성할 리소스는 아래와 같습니다.
Load Balancer
Target Group
https(443) : redirect to instance
http(80) : redirect to 443
Route53 Record
A record for ELB
Module 구성
보통 서비스를 위한 리소스는 환경별로 동일하게 생성하는 경우가 많습니다. 따라서 같은 코드를 변수만 바꿔서 사용할 수 있도록 Module을 이용하여 생성합니다.
Module을 사용할 때는 최대한 고유 명사를 없애고 변수처리하는 것이 좋습니다. 고유 명사를 변수로 대체하면 이후에 다른 서비스를
_module 폴더의 구조는 아래와 같습니다.
outputs.tf : 모듈내에서의 output.
service.tf : ALB 및 SG 와 관련된 리소스가 포함된 파일
var_lb.tf : Load Balancer 관련 변수 정의 파일
var_sg.tf : Security Group 관련 변수 정의 파일
variables.tf : 기타 변수 정의 파일
ALB 리소스 생성
ALB 생성을 위한 리소스는 terraform/services/hello/_module/hello/alb.tf 에 있습니다. ALB 생성을 위해서는 일단 LB에 붙일 Security Group(보안 그룹)과 Load Balancer, 그리고 Target group입니다.
ALB 관련 태그 및 설정
위 리소스를 생성하기 위해서는 기본적인 설정과 태그가 필요합니다.
실제 설정값은 아래와 같습니다.
Last updated
Was this helpful?