For the complete documentation index, see llms.txt. This page is also available as Markdown.

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?