https 를 받는 서비스이므로 ALB 를 선택하겠습니다.

Application Load Balancer (ALB)
- L7 (애플리케이션 계층) 로드 밸런서
- HTTP, HTTPS 트래픽을 처리하며, URL 기반 라우팅 가능
- WebSocket 및 HTTP/2 지원
- SSL/TLS 종료 가능
- ALB에서 HTTPS를 처리하고 백엔드(ECS/EC2 등)로 HTTP를 전달 가능
Network Load Balancer (NLB)
- L4 (전송 계층) 로드 밸런서
- TCP, UDP, TLS 트래픽을 처리
- 고성능 및 저지연 처리 가능
- ALB보다 처리 속도가 빠름
- 정적 IP 제공
- NLB는 하나의 고정된 퍼블릭 IP를 가짐 (ALB는 동적으로 변경됨)
- TLS 패스스루 가능
- ALB는 HTTPS 요청을 해제(TLS Termination)하지만, NLB는 암호화된 요청을 그대로 전달 가능
- 게임 서버 (TCP/UDP), VPN 서버, IoT 서버 등
Gateway Load Balancer (GWLB)
- L3 (네트워크 계층) 로드 밸런서
- 보안 및 네트워크 장비(VPN, IDS, IPS)와 함께 사용
- VPC 간 트래픽을 필터링하거나 특정 네트워크 장비를 경유하도록 설정 가능
Scheme 는 Internet-facing 으로 선택했습니다.

Scheme (체계)
Internet-facing | 인터넷에서 접근 가능한 로드 밸런서 퍼블릭 IP 주소를 가짐 퍼블릭 서브넷에 배치되어야 함 외부(인터넷)에서 오는 트래픽을 수신하고 이를 백엔드로 전달 |
Internal | 인터넷에서 접근 불가 프라이빗 IP 주소를 가짐 프라이빗 서브넷에 배치되어야 함 VPC 내부 리소스, 서비스들 간의 로드 밸런싱 |
CloudFront와 연계할 경우 Internal 로 생성해도 외부 트래픽을 받을 수 있습니다. 2024년 11월에 aws에서 CloudFront VPC Origins 라는 기능을 발표했습니다. CloudFront 에서 private subnet에 있는 리소스를 origin으로 사용할 수 있게 해주는 기능입니다. 이것을 이용해서 private alb를 만들고 origin으로 연결할 수 있습니다.
IP address type 은 IPv4만 쓸건지, IPv6도 쓸건지에 따라 선택하면 됩니다.
VPC

alb를 위치시킬 vpc를 선택합니다.
IP pools

2025년 3월 7일에 발표된 새로운 기능으로, ALB와 Amazon VPC IP Address Manager(IPAM)을 통합한 기능입니다. IPAM pool 은 사용자가 직접 정의한 특정 IP 주소 범위입니다. 특정 범위의 고정 IP 를 사용할 수 있어, 보안 정책 관리가 용이합니다.
선택하지 않으면 aws에서 자동으로 할당하고 관리하는 IP 주소로 설정됩니다.
Availability Zones and subnets

2개 이상의 AZ(=2개 이상의 서브넷) 필요합니다. AZ 하나에 문제가 생겨도 다른 AZ로 서비스하기 위함입니다.(고가용성) 각 AZ의 subnet 에 loab balancer node 가 배치됩니다. 트래픽은 라운드 로빈 라우팅 알고리즘에 따라 분산됩니다. 저는 AZ 두개 모두 선택하고 각각의 pubilc subnet 을 선택해주었습니다.

로드밸런서 트래픽 경로 참고
Security groups

기존에 미리 만든 security group을 선택해주었습니다.
https://orange-makiyato.tistory.com/130
cloudfront 로부터 트래픽을 받을 것이기 때문에 Inbound : cloudfront.origin-facing 선택하기!
Listeners and routing

리스너는 로드 밸런서로 들어오는 트래픽을 확인하는 프로세스입니다. 리스너는 트래픽을 감지하고 그 트래픽을 어디로 보낼지 결정합니다.
저는 cloudfront로부터 https로 들어오기 때문에 https로 선택했고, blue green 배포용으로 만든 target gruop 2개 중에 하나를 지정해주었습니다.
https 로 리스너를 설정했더니 Secure listener settings 가 생겼습니다.

Security policy 는 클라이언트와 SSL 연결을 관리하는 Secure Socket Layer (SSL) negotiation configuration (SSL 협상 구성) 입니다. (뭔소리야..) 쉽게 말하면 ALB가 SSL/TLS 연결할 때 사용하는 암호화 프로토콜 및 알고리즘 입니다. 네 그냥 SSL 연결할 때 어떤 보안 정책 사용할건지 고르랍니다. 아묻따 recommended 로 가겠습니다.
Default SSL/TLS server certificate

인증서는 이전에 ACM (AWS Certificate Manager) 을 통해 만든 인증서를 선택해줍니다.
Client certificate handling

상호 인증 할거니? 하고 묻는겁니다.
위에 선택한 ACM 은 서버 인증서입니다. 클라이언트에게 '나는 신뢰할 수 있는 서버입니다!' 증명하는 것이죠. 그런데 이걸 선택하면 클라이언트 인증서도 받겠다는 겁니다. 서버도 '야 넌 안전한 클라이언트냐?' 를 확인하겠다는 겁니다. 그래서 클라이언트는 클라이언트 인증서를 같이 보내야 합니다.
저는 안할거니까 가볍게 패스~
Optimize with service integrations

같이 만들면 구조를 최적화해준답니다. 셋중에 필요한 조합이 없어서 패스하겠습니다. 로드밸런서 생성 후 Integrations (통합) 탭에서도 추가할 수 있습니다.
생성 완료~!

'AWS' 카테고리의 다른 글
aws blue green 배포를 위한 ALB target group 만들기 (0) | 2025.03.17 |
---|---|
aws ACM으로 SSL/TLS 인증서 발급하기(feat. 가비아) (0) | 2025.03.13 |
aws route53(hosted zone) 생성하기(feat.가비아) (0) | 2025.03.10 |
가비아에서 도메인 구매하기(aws route53 비싸서) (0) | 2025.03.10 |
aws Security Group 만들기 (0) | 2025.03.05 |
댓글