Elastic Load Balancer
ELB라고 불리기도 하는 이놈은 AWS에서 제공하는 로드밸런서 서비스 입니다. Load Balancing기능 뿐만 아니라 대상에 대한 헬스 체크(health-check), 고정 세션(sticky-session), SSL 등의 기능을 수행합니다. 추가로 ELB를 활용하여 트래픽 양에 따라 유동적으로 인스턴스 수를 조절해 주는 AutoSaciling 서비스를 이용할 수도 있습니다.
종류
ELB는 OSI 7계층에서 동작하는 위치에 따라 총 4개로 나뉩니다. (자세한 비교는 여기)
Application Load Balancer (ALB)
- 7계층에 해당하는 Application Layer에서 동작한다.
- 일반적인 웹 서버의 경우 가장 일반적으로 사용된다.
- SSL 인증서를 추가할 수 있다.
- HTTP, HTTPS의 헤더 정보를 이용해 로드밸런싱을 진행한다.
Network Load Balancer (NLB)
- 4계층에 해당하는 Transport Layer에서 동작한다.
- UDP를 사용하는 서버가 있다면 NLB를 고려해 보자
- TCP, UDP…
Classic Load Balancer (CLB)
- 4계층 또는 7계층에서 동작한다.
- 가장 기본적인 형태의 로드밸런서이며 EC2 Classic이 대상이다.
- 현재는 없어지는 추세이다.
Gateway Load Balancer (GWLB)
- 3계층에 해당하는 Network Layer에서 동작한다.
- 네트워크 트래픽이 애플리케이션으로 이동하기 전에 모든 트래픽을 검사하기 위해 사용한다.
- 기존 3rd-party를 이용하여 방화벽을 구축하는 경우에 발생하는 운영 복잡도 증가 및 제약 사항에 대한 문제점들을 해결할 수 있다.
- 방화벽, 침입 탐지 및 방지 시스템, 심층 패킷 검사 시스템 등 보안과 관련된 작업을 수행할 수 있다.
- 2020년 11월에 출시되어 가장 최근에 생긴 로드밸런서이다.
간단한 동작 과정 (ALB)
실제로 사용자는 LB와 통신하게 됩니다. 마치 프록시 서버처럼 동작하는 것을 볼 수 있습니다. 대략적인 통신 과정은 아래와 같습니다.
- 사용자와 ALB의 3-way handshake
- ALB와 EC2 인스턴스의 3-way handshake
- 사용자가 ALB에 요청을 보내면 ALB가 EC2(그룹)에 전달
- EC2의 응답을 사용자에게 전달
AWS-ACM 인증서
AWS에서 제공하는 무료 SSL 인증서 발급 서비스입니다. 자동적으로 인증서를 업데이트 해주며 ALB를 통해 배포한 웹 서비스에 HTTPS를 적용하기 위해 주로 쓰입니다. 추가로 인증서 발급을 위해선 유효한 도메인 주소가 있어야 하기 때문에 Route53과 함께 사용합니다.
References
로드 밸런서 유형 - https://docs.aws.amazon.com/ko_kr/AmazonECS/latest/developerguide/load-balancer-types.html
ELB - https://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/userguide/what-is-load-balancing.html