Application Load Balancer에 대하여

Haruu·2023년 12월 28일
0

☁️ Study AWS ☁️

목록 보기
2/3

ALB란 ? ? ?

ALB는 Application Load Balancer의 약자로 AWS에서 제공하는 서비스 중 하나이다.

ALB는 OSI 7 Layer의 최상단 계층에 해당하는 7계층에 해당하는 응용계층을 다루는 로드밸런서 이다.

응용 계층은 user와 직접 상호작용 하는 계층이기 때문에 주로 HTTP/HTTPS 프로토콜을 사용한다.

(이 외에도 FTP, DNS, DHCP 등 다양한 프로토콜을 사용한다.)


ALB가 하는 역할은 ? ? ?

  • 부하 분산
  • HTTP를 활용한 라우팅
  • SSL 인증서 탑재
  • 프록시 서버로서의 역할

1) 부하 분산

ALB는 여러 대상 그룹에 대한 트래픽을 자동으로 분산하여 웹 애플리케이션의 가용성과 성능을 향상시킨다.
ALB에 연결된 각각의 EC2는 부하 분산을 통해 트래픽을 균등하게 분산시킨다.

2) HTTP를 활용한 라우팅

ALB는 HTTP의 특성을 활용한다. HTTP Header에는 표준 헤더 , 요청 헤더 , 응답 헤더 , 일반 헤더
존재한다.

이때, 요청 상황과 응답 상황에 따라서 다른 헤더를 가지게 되며 그 헤더는 다양한 정보가 들어있다.

그리고 user는 헤더에 자신의 정보를 담아 서버로 전송할 수 있고, 서버는 헤더에 담긴 정보를 보고 사용자의
요구 사항을 알 수 있다.

ALB는 이 HTTP Header를 라우팅 규칙에 활용한다. 위의 4가지 Header 중 요청 헤더일반 헤더
활용한다.

요청 헤더에는 Host Header, Cookie Header, User-agent Header, Accept Header
사용자의 상태 정보나 사용자가 사용하는 디바이스의 정보들을 담을 수 있다.

그리고 일반 헤더에 해당하는 X-Fowarded-For로 user의 IP를 헤더에 담아 서버에게 전달한다.

다른 방식으로는 HTTP 요청 메서드를 활용하는 방법이 존재한다. 이 방법은 user가 WebServer에게 자신의
요청 목적 혹은 요청 종류를 알리는 방법으로 GET, PUT, POST, HEAD 등이 있다.
ALB는 요청 메서드를 기준으로 규칙을 생성후 각 규칙에 맞는 대상그룹에 라우팅을 실시할 수 있다.

3) SSL 인증서 탑재 기능

user와 EC2 인스턴스가 암호화 통신을 해야하는 경우, EC2 인스턴스의 비용을 줄이기 위해서 ALB 대신해서
SSL 인증서를 이용해 암호화 통신을 실시한다.
( 이를 실현하기 위해서는 사전 작업으로 Route53을 통해 자신이 사용할 도메인을 발급받은 후 AWS의 ACM를
통해 SSL 인증서를 발급 받아야한다.)

4) 프록시 서버로서의 역할

프록시 서버란 Client가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해주는
컴퓨터 시스템이나 응용 프로그램을 가리킨다.

실질적으로 서비스를 제공하는 것은 Server이지만 user와 통신하는건 ALB이다.

따라서 ALB는 server와 user의 중간에서 프록시 서버로서 양쪽으로 통신한다고 생각하면 된다.


이 외에도 다양한 역할을 수행한다. (필자가 생각하기에 중요하다고 생각하는 역할 4가지만 정리 해 보았다.)

profile
하루하루 열심히!

0개의 댓글