[AWS 입문] 프론트엔드의 AWS 걸음마: AWS 로드 밸런서와 OSI 7계층 쉽게 이해하기

AWS 로드 밸런서에 대해 알아보겠습니다. 이를 이해하기 위해 반드시 알아야 할 네트워크 개념인 OSI 7계층도 함께 정리했습니다. AWS 서비스를 효과적으로 활용하려면 기본적인 네트워크 지식이 필요합니다.

OSI 7계층이란 무엇인가?

OSI 7계층은 네트워크 통신을 단계별로 나눠 설명하는 모델입니다.
각 계층이 서로 협력해 데이터를 주고 받습니다.

osi 7계층 설명 이미지

OSI 7계층 구조와 설명

1계층: 물리 계층

데이터를 전기 신호로 변환. (예: LAN 케이블, 스위치 등)

2계층: 데이터 링크 계층

물리 계층이 이미 존재하는 네트워크를 통해 두 시스템을 연결.
주요 초점: 데이터 전송 오류를 감지하고 수정. (예: MAC 주소)

3계층: 네트워크 계층

데이터를 목적까지 라우팅. (예: IP 주소)

4계층: 전송 계층

데이터 분할 및 재조립, 오류처리. (예: TCP/UDP)

5계층: 세션 계층

한 세션에서 서로 다른 두 애플리케이션 간의 네트워크 조정.

6계층: 표현 계층

데이터 암호화/복호화. (예: SSL/TLS)

7계층: 애플리케이션 계층

사용자와 직접 상호작용. (예: HTTP, FTP)

ELB 란? (Elastic Load Balancer)

Elastic Load Balancer는 AWS에서 제공하는 트래픽 분산 서비스로, 로드 밸런서가 자동으로 확장되며 애플리케이션의 고가용성을 지원합니다.

예시: 사용자가 급증해도 ELB는 더 많은 서버를 추가해 부하를 분산합니다.

AWS 로드 밸런서 종류

ALB (Application Load Balancer)

사용계층: OSI 7계층의 7계층 (애플리케이션 계층)

HTTP/HTTPS 트래픽 처리에 특화되어 있으며, 라우팅 규칙을 설정할 수 있습니다.

ALB는 7계층을 사용하므로 애플리케이션 단에서 세밀한 요청 처리가 가능하지만 속도는 NLB보다 느릴 수 있습니다.

ALB를 사용하는 경우

사용자가 접속한 URL에 따라 서버를 다르게 설정해야 할 때.
(예: /user는 사용자 서버로, /admin은 관리자 서버로)

ALB 특징

  • URL 패턴에 따라 요청 라우팅 가능.
  • SSL/TLS 암호화를 제공해 보안을 강화.

ALB 장점

  • 세밀한 트래픽 제어.
  • HTTPS 지원으로 데이터 암호화.
  • 요청 헤더와 쿠키 기반 라우팅
AWS 로드 밸런서 ALB 설명 이미지

HTTP/HTTPS 트래픽을 백엔드 서버로 분산하는 모습

NLB (Network Load Balancer)

사용계층: OSI 7계층의 4계층 (전송 계층)

고속 데이터 전송이 필요하거나 TCP/UDP 기반의 서비스에 적합합니다.

NLB를 사용하는 경우

실시간 게임 서버, 스트리밍 서비스

NLB 특징

  • 초저지연(빠른 응답 속도).
  • 고속 트래픽 처리에 최적화.

GWLB (Gateway Load Balancer)

사용계층: OSI 7계층의 3계층 (네트워크 계층)

네트워크 보안 장치와 연동하여 트래픽을 관리합니다.

GWLB 특징

  • 방화벽이나 침입 탐지 시스템과 통합 가능.
  • 대규모 네트워크 트래픽 관리에 적합.

CLB (Classic Load Balancer)

사용계층: OSI 7계층의 4계층 (전송 계층)과 7계층 (애플리케이션 계층).

AWS의 초기 로드 밸런싱 서비스로 간단한 트래픽 분산에 사용됩니다.

AWS 로드 밸런서 추가 기능

AWS 로드 밸런서는 단순히 트래픽을 분산하는 것 외에도 다양한 추가 기능을 통해 고도화된 서비스를 제공합니다.

Sticky Session

Sticky Session은 사용자가 특정 인스턴스에 고정되어 요청을 계속 보내도록 설정하는 기능입니다.
로드 밸런서가 기본적으로는 트래픽을 여러 인스턴스로 분산하지만,
Sticky Session이 활성화되면 사용자가 동일한 인스턴스에 연결된 상태를 유지하게 됩니다.
주로 로그인 상태를 유지하거나 세션 데이터를 특정 인스턴스에 저장해야 하는 경우에 사용됩니다.

Corss-Zone Load balancing

Cross-Zone Load Balancing트래픽을 가용 영역(Availability Zone) 간에 고르게 분산하는 기능입니다. 이를 통해 특정 가용 영역에 과부하가 걸리는 것을 방지할 수 있습니다.

ALB, NLB, GWLB, CLB 별로 Cross-Zone Load Balancing 정의

  • ALB (Application Load Balancer): 기본적으로 활성화되어 있으며 트래픽이 모든 가용 영역에 균등하게 분배됩니다.
  • NLB (Network Load Balancer): 선택적으로 활성화할 수 있습니다. 네트워크 레벨의 로드 밸런싱에 적합합니다.
  • GWLB (Gateway Load Balancer): 가상 네트워크 장치를 사용하여 트래픽을 관리하며, Cross-Zone Load Balancing 기능을 지원합니다.
  • CLB (Classic Load Balancer): 사용자가 직접 활성화해야 하며, 예전 버전의 로드 밸런서입니다.

인증 (SSL 과 TLS)

SSL

SSL (Secure Sockets Layer)은 인터넷 상에서 데이터를 암호화하여 전송하는 프로토콜입니다.

이를 통해 전송 중 데이터가 외부에 노출되지 않도록 보안성을 제공합니다.

TLS

TLS (Transport Layer Security)SSL의 업그레이드된 버전입니다.
TLS는 더 강력한 암호화와 보안성을 제공하며, 현재 대부분의 시스템에서 SSL 대신 TLS를 사용하고 있습니다.

Load Balancer에서 SSL 인증 동작 방식

로드 밸런서는 SSL 인증서를 사용하여 클라이언트와의 연결을 암호화합니다.
SSL 인증 동작 방식은 다음과 같습니다:

  1. 사용자가 로드 밸런서에 HTTPS 요청을 보냅니다.
  2. 로드 밸런서는 사전에 설정된 SSL 인증서를 사용해 연결을 암호화합니다.
  3. 인증이 완료되면 데이터를 암호화된 채로 전송합니다.

SNI (server name indication) 란

SNI는 클라이언트가 로드 밸런서에 연결할 때 호스트 이름을 지정할 수 있도록 하는 확장 기능입니다.
이를 통해 하나의 로드 밸런서에서 여러 도메인의 SSL 인증서를 관리할 수 있습니다.

예를 들어, example.comapi.example.com의 인증서를 각각 설정할 수 있습니다.

ELB 서비스별 SSL 인증

  • ALB: SNI를 지원하며, 여러 SSL 인증서를 설정할 수 있습니다.
  • NLB: SNI를 지원하지 않지만, 단일 SSL 인증서를 통해 암호화가 가능합니다.
  • GWLB: SSL 인증을 처리하지 않고 데이터 패킷 전달에 중점을 둡니다.
  • CLB: 제한된 SSL 인증 기능을 제공합니다.

Connection Draining

Connection Draining은 인스턴스를 종료하거나 연결을 해제할 때, 기존 연결을 안전하게 마무리하도록 도와주는 기능입니다.

예를 들어, 서버가 업데이트 중일 때도 기존 사용자의 요청이 갑자기 끊기지 않도록 처리 시간을 제공합니다.

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Scroll to Top