로드 밸런싱
- 부하 분산: 로드 밸런서는 여러 서버나 리소스에 걸쳐 들어오는 요청 분배
- 가용성 및 내구성 증대: 하나의 서버나 리소스에 문제가 발생 시 전체 시스템의 가동 중단 없이 계속 작동 가능
- 확장성: 로드 밸런싱은 시스템에 더 많은 서버를 추가함으로써 확장성을 제공
→ 로드 밸런서가 자동으로 트래픽을 새 서버로 분산 시키므로, 추가적인 서버를 네트워크에 쉽게 통합 가능, - 성능 최적화: 서버의 부하를 적절히 분산 → 각 서버를 최적의 성능으로 운영 가능
NGINX
- 로드 밸런싱: NGINX는 여러 서버로 들어오는 트래픽을 분산시키는 로드 밸런서 역할
- 효율성 향상 : 서버 하나가 과부하되는 것을 방지, 서버 간에 균등하게 트래픽을 분배
→ 전체 시스템의 효율성 향상 - SSL/TLS 종단 처리: NGINX는 SSL/TLS 종단 지점으로서 작동
즉, HTTPS를 통해 암호화된 트래픽을 처리하고, 내부적으로 서버로의 트래픽을 HTTP로 전환 가능
→ 보안 유지, 네트워크 복잡성 감소 - 세션 지속성: 특정 사용자의 세션이 특정 서버에 지속적으로 연결되도록 관리, 이는 사용자 경험을 개선하고, 서비스 중단 없이 애플리케이션을 이용 가능하게 함
- 무중단 배포 지원
- NGINX는 새로운 버전의 애플리케이션으로 트래픽 이동
- 문제 발생 시 즉시 이전 버전으로 롤백하여 트래픽을 전환할 수 있습니다.
ELB
AWS에서 제공하는 로드 밸런서 서비스
1. Application Load Balancer (ALB)
- HTTP 및 HTTPS 트래픽 최적화: 7계층 로드 밸런싱(애플리케이션 계층)을 제공하여 HTTP 및 HTTPS 트래픽을 지능적으로 관리합니다.
- 고급 요청 라우팅: URL, 헤더, HTTP 메소드, 소스 IP 등을 기반으로 요청을 라우팅 할 수 있습니다.
- 웹소켓 및 HTTP/2 지원: 최신 웹 표준을 지원합니다.
- 컨테이너화 된 애플리케이션 지원: ECS(Elastic Container Service) 및 EKS(Elastic Kubernetes Service)와 통합하여 컨테이너 인스턴스 간의 로드 밸런싱을 수행할 수 있습니다.
2. Network Load Balancer (NLB)
- 고성능, 저지연 처리: 4계층 로드 밸런싱(전송 계층)을 제공하며, 수백만 개의 요청을 초당 처리할 수 있는 능력을 갖추고 있습니다.
- TCP, UDP, TLS 트래픽 지원: 다양한 프로토콜을 지원하여, TCP 및 UDP 트래픽 라우팅이 가능합니다.
- 정적 IP 주소 할당: 고정 IP 주소를 사용할 수 있어, 방화벽 규칙 설정에 용이합니다.
- 극대화된 성능: 초당 초고속 연결을 맺을 수 있어 게임 서버, IoT 디바이스 통신 등에 이상적입니다.
3. Classic Load Balancer (CLB)
- 단순한 로드 밸런싱: HTTP, HTTPS, TCP 및 SSL 프로토콜을 지원합니다.
- 자동 스케일링: 트래픽 부하에 따라 자동으로 EC2 인스턴스를 추가 또는 제거합니다.
- 헬스 체크: 등록된 인스턴스의 상태를 주기적으로 확인하여, 실패한 인스턴스로는 트래픽을 보내지 않습니다.
'web 개발' 카테고리의 다른 글
데이터베이스 lock (0) | 2024.06.18 |
---|---|
트랜젝션 격리수준 (0) | 2024.06.16 |
Docker와 Jenkins를 이용한 CD/CI 과정 (feat WebHooks) (0) | 2024.06.10 |
로드 밸런서와 로드 밸런싱 방식 (0) | 2024.06.10 |
CI/CD 지속적 통합 및 배포 (0) | 2024.06.10 |