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을 이용하여 생성합니다.

circle-info

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?