베하~~ 수 지 타 산 입니다
다들 무더운 여름은 잘 이겨내고 계신가요?
아침 저녁으로는 조금씩 선선해지고 있네요
조금만 더 힘내보아요!!
그럼 오늘은 저번주에 이어
LB의 종류와 장애 발생 상황에 대해 공부해볼까요?
팔로팔로팔로미
ELB(Elastic Load Balancer)
Elastic Load Balancing은 둘 이상의 가용 영역에서 EC2 인스턴스, 컨테이너, IP 주소 등 여러 대상에 걸쳐 수신되는 트래픽을 자동으로 분산합니다. 등록된 대상의 상태를 모니터링하면서 상태가 양호한 대상으로만 트래픽을 라우팅합니다. Elastic Load Balancing은 수신 트래픽이 시간이 지남에 따라로드 밸런서를 확장합니다.
로드 밸런서는 클라이언트에서 오는 트래픽을 허용하고, 하나 이상의 가용 영역에서 등록된 대상(예: EC2 인스턴스)으로 요청을 라우팅합니다. 또한, 로드 밸런서는 등록된 대상의 상태를 모니터링하고 정상 대상으로만 트래픽이 라우팅되도록 합니다. 로드 밸런서가 비정상 대상을 감지하면, 해당 대상으로 트래픽 라우팅을 중단합니다. 그런 다음 대상이 다시 정상으로 감지되면 트래픽을 해당 대상으로 다시 라우팅합니다.
하나 이상의 리스너를 지정하여 들어오는 트래픽을 허용하도록 로드 밸런서를 구성합니다. 리스너는 연결 요청을 확인하는 프로세스입니다. 클라이언트와 로드 밸런서 간의 연결을 위한 프로토콜 및 포트 번호로 구성됩니다. 마찬가지로 로드 밸런서와 대상 간의 연결을 위한 프로토콜 및 포트 번호로 구성됩니다.
- AWS 사용 설명서 -
ELB의 경우 네트워크 레이어 4와 네트워크 레이어7에 대한 부하를 제어할 수 있습니다.
그리고 서버의 기본주소가 바뀌면 로드밸런서를 새로 생성해야하며 하나의 주소에 하나의 타겟그룹으로 보내게 됩니다.
ALB(Application Load Balancer)
Application Load Balancer는 개방형 시스템 간 상호 연결(OSI) 모델의 일곱 번째 계층인 애플리케이션 계층에서 작동합니다.
로드 밸런서는 요청을 받으면 우선 순위에 따라 리스너 규칙을 평가하여 적용할 규칙을 결정한 다음, 규칙 작업의 대상 그룹에서 대상을 선택합니다. 애플리케이션 트래픽의 콘텐츠를 기반으로 다른 대상 그룹에 요청을 라우팅하도록 리스너 규칙을 구성할 수 있습니다. 대상이 여러 개의 대상 그룹에 등록이 된 경우에도 각 대상 그룹에 대해 독립적으로 라우팅이 수행됩니다. 대상 그룹 레벨에서 사용되는 라우팅 알고리즘을 구성할 수 있습니다. 기본 라우팅 알고리즘은 라운드 로빈입니다. 그 대신 최소 미해결 요청 라우팅 알고리즘을 지정할 수 있습니다.
리스너는 구성한 프로토콜 및 포트를 사용하여 클라이언트의 연결 요청을 확인합니다. 리스너에 대해 정의한 규칙에 따라 로드 밸런서가 등록된 대상으로 요청을 라우팅하는 방법이 결정됩니다. 각 규칙은 우선 순위, 하나 이상의 작업, 하나 이상의 조건으로 구성됩니다. 규칙에 대한 조건이 충족되면 작업이 수행됩니다. 각 리스너에 대한 기본 규칙을 정의해야 하며, 필요에 따라 추가 규칙을 정의할 수 있습니다.
각 대상 그룹은 지정한 프로토콜과 포트 번호를 사용하여 EC2 인스턴스 같은 하나 이상의 등록된 대상으로 요청을 라우팅합니다. 여러 대상 그룹에 대상을 등록할 수 있습니다. 대상 그룹 기준으로 상태 확인을 구성할 수 있습니다. 로드 밸런서의 리스너 규칙에서 지정한 대상 그룹에 등록된 모든 대상에서 상태 검사가 수행됩니다.
- AWS 사용 설명서 -
ALB의 경우는 포트 단위로 연결해줄 수 있기 때문에 도커에서 유용하게 작동할 수 있고 하나의 대상그룹에 더 많은 컨테이너를 넣을 수 있어 비용을 최적화할 수 있습니다. EC2 인스턴스, AWS 람다, IP로도 연결이 가능하고 특정한 요청에 대해서는 서버없이 응답메세지를 작성할 수 있습니다.
하지만 ALB는 IP가 끊임없이 변화하기 때문에 ALB의 Public IP를 목적지로 삼아 접근 제어(ACL)를 실시하는 네트워크 장비에겐 매우 난감할 수도 있습니다.
NLB(Network Load Balancer)
Network Load Balancer는 오픈 시스템 상호 연결(OSI) 모델의 네 번째 계층에서 작동합니다. 초당 수백만 개의 요청을 처리할 수 있습니다. 로드 밸런서가 연결 요청을 받으면 기본 규칙의 대상 그룹에서 대상을 선택합니다. 리스너 구성에 지정된 포트에서 선택한 대상에 대한 TCP 연결을 열려고 시도합니다.
- AWS 사용 설명서 -
NLB는 L4 로드 밸런싱을 하는 로드 밸런서 입니다. L4 로드 밸런싱이기 떄문에 TCP와 UDP에 대한 트래픽을 처리할 수 있고, TLS(SSL Offload)까지 가능한 로드밸런서입니다. NLB는 사용자와 인스턴스간의 논리적인 연결이 생성될 수 있도록 돕습니다. 부하분산을 함과 동시에 사용자와 인스턴스의 커넥션을 생성하도록 돕고 자신 또한 커넥션을 가지며 관리합니다. 무엇보다 NLB의 가장 큰 특징은 ALB와 다르게 고정 IP를 갖는다는 것입니다. Private IP뿐만 아니라 Public IP까지 고정된 IP로 제공합니다.
Load Balancer 장애 대비는 어떻게 할까요?
- Load Balancer를 이중화하여 장애를 대비할 수 있습니다.
장애가 났을 경우 시나리오
- 이중화된 Load Balancer들은 서로 Health Check를 합니다.
- Main Load Balancer가 동작하지 않으면 가상IP(VIP, Virtual IP)는 여분의 Load Balancer로 변경됩니다.
- 여분의 Load Balancer로 운영하게 됩니다.
여기까지 LB의 종류와 장애 발생 상황을 살펴보았어요!
다음주도 수지타산과 함께 공부해요
제에에에에발 ~
'CSP (Cloud Service Provider) > AWS' 카테고리의 다른 글
[AWS] Amazon EC2와 Amazon Lightsail의 차이점 (0) | 2022.08.21 |
---|---|
[AWS] CodeDeploy (0) | 2022.08.21 |
AWS SNS (0) | 2022.08.19 |
AWS EC2에 EBS 볼륨 추가하기 (0) | 2022.08.17 |
Amazon EC2 인스턴스 유형 (0) | 2022.08.16 |
댓글