로드 밸런서는 서버 혹은 서버셋으로 트래픽을 백엔드나 다운스트림 EC2 인스턴스 또는 서버들로 전달하는 역할을 한다.
많은 유저가 연결될 수록 EC2 인스턴스로 가는 부하를 더욱 분산시키지만 유저들은 백엔드 인스턴스 중 어느것에 연결되어 있는지 알 수는 없다.
로드밸런서가 필요한 이유는
로드 밸런서가 연결된 대상 인스턴스(EC2 등)의 상태를 주기적으로 확인하여, 정상적인 상태의 인스턴스에만 트래픽을 전달하도록 하는 중요한 기능이다. 이 기능을 통해 서비스의 안정성과 가용성을 높일 수 있다.
상태 확인은 포트와 라우트에서 이루어진다. HTTP 요청을 보내고, 응답 상태 코드가 200(OK)일 경우 "Healthy"로 간주하여 그 쪽으로만 트래픽을 보낸다.
AWS에는 네 종류의 관리형 로드 밸런서가 있다.
1. CLB
사용자는 HTTP나 HTTPS를 사용해 어디서든 로드 밸런서에 접근이 가능하다.
포트 범위는 80 혹은 443이고 소스는 0.0.0.0/0인데 이는 어디든 접근이 가능하다는 의미다.
EC2 인스턴스는 로드밸런서를 통해 들어오는 트래픽만을 허용해야 하기 때문에 EC2 인스턴스의 보안 그룹 규칙은 달라야 한다.
포트 80에서 HTTP 접근을 허용하고, 그 소스는 IP 범위가 아닌 보안 그룹이 된다.
즉 EC2 인스턴스의 보안 그룹을 로드 밸런서의 보안 그룹으로 연결하는 것이다.
이렇게 하면 EC2 인스턴스는 로드 밸런서에서 온 트래픽만을 허용하게 되어 강화된 보안 매커니즘을 가질 수 있다.