Naver Cloud Platform

[NCP] 06 - ALB (Application Load Balancer)

sooondubu 2025. 11. 4. 14:35

네이버 클라우드 플랫폼 - Naver Cloud Platform
Application Load Balancer(ALB) 생성하기


Load Balancer란?

  • 수신 트래픽을 다수의 서버로 분산시키는 서비스
  • 등록된 멤버 서버로 수신 트래픽을 분산시켜 가용성을 높이고 시스템 가동률을 조절하는 역할을 수행
  • 다양한 서버 부하 분산 방식
    • Round Robin(순환 순서)
    • Least Connection(최소 연결)
    • Source IP Hash(IP 해시)
  • NCP의 Load Balancer는 SaaS 제품이라 직접 접근이 불가능 하다!

종류

  • Application Load Balancer
    • 계층: L7
    • HTTP, HTTPS를 사용하는 웹 애플리케이션에 보다 유연한 구성이 가능
  • Network Load Balancer
    • 계층: L4
  • Network Proxy Load Balancer
    • 계층: L4

구성도


Server 생성



기존의 my-public-server 로의 트래픽을 분산하기 위해 서버를 추가 생성한다

  • 이름: my-public-server-2
  • Subnet: Public Subnet
  • 공인 IP 할당 X
  • ACG: my-public-server-acg 선택



서버 생성 확인


ACG 설정



my-public-server-acg의 InBound Rule을 설정한다

  • 프로토콜: TCP
  • 접근 소스: 10.0.0.0/16
  • 허용 포트: 22

즉 VPC 대역에 대한 인바운드를 허용하는 것
→ 두개의 public server는 my-public-server-acg 를 적용하기 때문에 두 서버간의 통신(SSH)을 위함


NGINX 설치

apt update
apt install apache2 -y
systemctl status apache2
echo "Hi my-public-server-1" > /var/www/html/index.html 
curl localhost



  • my-public-server, my-public-server-2 에 각각 apache 설치
  • 기본 페이지 수정
  • curl 명령어로 응답 확인



ssh [my-public-server-2의 사설 IP] 로 위에서 생성한 서버 접근


apt update
apt install apache2 -y
systemctl status apache2
echo "Hi my-public-server-2" > /var/www/html/index.html 
curl localhost



2번째 서버도 동일하게 적용


Subnet 생성 - LB 전용



LB를 위한 전용 Subnet이 필요하다

  • Network ACL: default
  • Internet Gateway 전용 여부: Y
  • 용도: LoadBalancer

Target Group 생성



Load Balancer - Target Group 생성




Target 유형: VPC Server

VPC: my-vpc

프로토콜: HTTP

포트: 80 - Target이 서비스 중인 포트 번호




Target이 정상적으로 작동하는지 검사하기 위해 Health Check 설정

  • 프로토콜: HTTP
  • 포트: 80
  • URL Path: /
  • HTTP Method: HEAD
    • HEAD: 헤더만 요청하는 메서드
    • GET: 헤더 + 본문을 요청하는 메서드
  • Health Check 주기: 5
    • 너무 짧으면 부하 발생
    • 테스트 용도이기 때문에 5초
  • 정상 임계값: 2
    • 비정상 상태의 Target이 다시 서비스에 투입되기 위해 성공해야 하는 상태 확인 횟수
  • 실패 임계값: 2
    • 정상 상태의 Target이 실패하면 비정상 상태로 전환되어 부하 분산 Target에서 제외되는 횟수



로드 밸런싱 할 타겟 서버 두개를 선택하여 Target을 적용한다

  • my-public-server, my-public-server-2



Target Group 생성 확인


ALB 생성



Load Balancer - 로드밸런서 생성 - 애플리케이션 로드 밸런서 생성




  • 네트워크: Public
    • 외부의 요청을 받기 위해서 Public
  • 부하 처리 성능: Small
    • 각 성능은 초당30,000/60,000/90,000/120,000 개의 분산 처리를 보장.
  • VPC: my-vpc
  • 서브넷 선택: 위에서 생성한 LB 전용 서브넷
  • 공인 IP: 신청



로드밸런서의 리스너 설정

  • HTTP, 80 추가



위에서 생성한 Target Group 선택




생성된 Load Balancer 확인


Target 상태 확인



Load Balancer - Target Group - Target 상태 확인




Target Status 가 DOWN 으로 정상이 아니다.

ACG를 열어주지 않았기 때문에 LB → Server로의 통신 X




Target Server 에 적용되어 있는 ACG, 즉 my-public-server-acg 에서 InBound Rule을 추가해주어야 한다

  • 프로토콜: TCP
  • 접근 소스: 10.0.0.0/16
  • 허용 포트: 80



Target Status: UP 확인

바로 반영이 되지 않기 때문에 관련 작업을 할 경우 1분 이상 기다려야 한다


Load Balancer 작동 확인

브라우저에 Load Balancer의 접속 정보 URL 입력



새로고침을 계속 눌러보자! 두개의 Server로 로드밸런싱이 되는 것을 볼 수 있다.


모니터링



Load Balancer - Load Balancer 선택 - 모니터링




로드밸런서를 모니터링 할 수 있다.

'Naver Cloud Platform' 카테고리의 다른 글

[NCP] 04 - ACG (Access Control Group)  (0) 2025.10.30
[NCP] 03 - Server 생성하기  (0) 2025.10.29
[NCP] 02 - Subnet  (0) 2025.10.28
[NCP] 01 - VPC (Virtual Private Cloud)  (0) 2025.10.27