A. 고가용성
VPC 내 단일 서버를 통한 서비스 구성하여 사용자가 접근하는 환경에서 단일 서버가 장애가 발생 되면 서비스를 받을 수 없습니다.
지속적인 서비스 제공을 위해 서버를 다중화 구성하여 서비스의 연속성을 보장하여야 하는데 이게 고가용성 구성입니다.
그림과 같이 다수의 서버를 구성하여 서비스를 제공하면, 인스턴스 A에 장애 발생시에도 인스턴스 B나 인스턴스 C를 통해 서비스를 받을 수 있습니다. 하지만 서비스 타깃을 사용자 입장에서 일일이 지정을 해주어야 한다는 문제가 존재합니다.
이는 서비스 연속성을 보장하는 고가용성 구성이라 할 수 없습니다. 이러한 문제를 해결하기 위해 로드 밸런서가 존재하며, 로드밸런서는 서버의 상태를 파악하고 데이터 분산하여 전달한느 접점 역할을 수행합니다.
B. ELB(Elastic Load Balancing)
1. ELB란?
ELB는 AWS에서 제공하는 로드 밸런싱 기술입니다. EC2 인스턴스의 상태를 확인하고 데이터를 분산하여 전달하는 단일 접점역할을 수행합니다. 상기의 사진과 같이 로드 밸런서를 타깃으로 하며 로드 밸런서에서 알아서 정상적인 서버로 부하 분산을 처리합니다.
2. ELB의 구성
상기의 사진은 로드 밸런서의 구성에 대해 도식화 하여 보여주고 있습니다. 로드 밸런서는 크게 리스너와 대상그룹으로 구성되어 있습니다.
- 리스너
- 자신이 서비스하는 대상을 정의함.
- 프로토콜 및 포트를 사용하여 연결 요청을 확인하는 프로세스.
- 프로토콜 및 포트를 지정하는 규칙을 생성.
- 대상그룹
- 부하 분산 대상을 정의함.
- 대상 그룹에 속한 대상에 대해 주기적으로 상태 확인을 수행함.
- 정상적인 상태의 대상에게만 데이터를 전달함.
3. ELB 종류
구분 | ALB | NLB | CLB |
프로토콜 | HTTP, HTTPS | TCP,UDP,TLS | TCP,TLS,HTTP,HTTPS |
플랫폼 | VPC | VPC | VPC, EC2-Classic |
처리속도 | 느림 | 빠름 | 중간 |
OSI 계층 | 7계층 | 4계층 | - |
동일 인스턴스로 다수의 포트 전달 |
지원 | 지원 | 미지원 |
IP를 통한 관리 | 미지원 | 지원 | 미지원 |
프라이빗링크 지원 | 미지원 | 지원 | 미지원 |
경로 기반 라우팅 | 지원 | 미지원 | 미지원 |
호스트 기반 라우팅 | 지원 | 미지원 | 미지원 |
* 3가지 유형의 로드 밸런서 중에 CLB는 EC2-Classic 네트워크에 구축된 기본 로드 밸런서 입니다. 일반적인 VPC 환경에서는 ALB나 NLB를 사용하는 것이 추천됩니다.
4. ALB 와 NLB
4-1. ALB(Application Load Balancer)
ALB는 HTTP와 HTTPS에 특화된 애플리케이션 레벨의 로드 밸런서입니다. 다른 로드 밸런서에 비해 처리 속도가 조금 느릴 수 있으나 HTTP(S)에 대해 세부적이고 다양한 정책으로 라우팅을 할 수 있습니다.
URL 경로 기반 라우팅, 호스트 기반 라우팅,HTTP 헤더 기반 라우팅 등 과 같이 다양한 규칙을 생성하여 포워드, 리다이렉션, 지정 HTTP 응답 등의 작업을 수행할 수 있습니다.
ALB는 Lambda 함수를 호출하여 HTTP(S) 요청을 처리할 수 있습니다.
4-2. NLB(Network Load Balancer)
NLB는 TCP,UDP,TLS 프로토콜에 대하여 로드 밸런싱을 수행하는 4계층 레벨의 로드밸런서입니다.
가장 빠른 처리 속도가 가능하며 고정IP나 탄력적 IP를 보유할 수 있습니다. 그리고 VPC 엔드포인트 서비스로 연결하여 프라이빗 링크 구성을 할 수 있습니다.
5. ELB 통신 방식
ELB는 내외부 모두 통신이 가능합니다.
5-1. Internet Facing Load Balancer
퍼블릭 주소를 가지고 있어, 인터넷을 통해 요청을 로드 밸런서에 등록된 EC2 인스턴스로 라우팅합니다.
5-2. Internal Load Balancer
프라이빗 주소만 가지고 있어, 로드 밸런서를 위한 VPC 내부에 액세스하여 등록된 EC2 인스턴스 등 컴퓨팅 자원으로 라우팅합니다.
6. ELB 특징
- 고가용성 : ELB로 인입되는 트랙피을 다수의 대상으로 분산하여 고가용성을 유지합니다.
- 상태확인 : 대상 그룹에 대한 Keepalive를 통해 주기적으로 상태를 확인합니다.
- 보안기능: 보안 그룹을 적용하여 보안 옵션을 부여할 수 있습니다. (단, NLB는 보안 그룹이 적용되지 않습니다.)
- 모니터링 : ELB 애플리케이션 성능을 실시간으로 모니터링 할 수 있습니다.
[Linux] chmod 명령어 사용법 - 파일 권한 변경하기
[용어/개념] 개인정보보호법 개념, 구성도 및 주요 조항