본문 바로가기
AWS

aws Public ALB 생성하기 (https)

by 오렌지마끼야또 2025. 3. 19.
728x90
반응형

 

 

 

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 을 선택해주었습니다.

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

https://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/load-balancer-stickiness/subnets-routing.html

 

 

 

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 (통합) 탭에서도 추가할 수 있습니다.

 

 

 

생성 완료~!

 

 

728x90
반응형

댓글