개요
AWS는 현재 3가지 타입의 ELB를 서비스하고 있다.
이 글에서는 ALB, NLB의 간단한 특징과 EC2 간의 연결 시 등록해야 하는 SG 규칙에 대해 정리한다.
타입 중 하나인 Classic load balancer는 잘 사용하지 않는 추세라 생략한다.
ALB (Application load balancer)
- HTTP/HTTPS 프로토콜을 사용한다.
- 다른 자원과 통신하기 위해서는 EC2나 RDS와 같이 ALB에 Security Group을 적용해야 한다.
- IPv4 주소는 LB가 위치한 서브넷의 주소 범위 내의 임의 주소로 변경된다.
-> IPv4를 기반으로 방화벽을 설정해야 하는 경우, LB의 현재 IPv4 주소가 아닌 해당 LB가 위치한 서브넷의 네트워크 주소로 방화벽을 해제해야 한다. - health check 경로를 별도로 지정할 수 있다.
- return 트래픽은 reverse proxy 방식으로 전달한다.
EC2 연결 시 트래픽 흐름
EC2에서 ALB를 통해 다른 EC2에 접속하고자 할 때에는 각 요소는 다음과 같이 SG를 등록해야 한다.
인스턴스 | SG 등록 필요 규칙 |
Client EC2 | ALB를 대상으로 하는 SG Outbound 규칙 |
ALB | Client EC2를 대상으로 하는 SG Inbound 규칙 Server EC2를 대상으로 하는 SG Outbound 규칙 |
Server EC2 | ALB를 대상으로 하는 SG Inbound 규칙 |
NLB (Network load balancer)
- TCP/UDP 프로토콜을 사용한다.
- SG 등록을 필요로 하지 않는다.
- 고정 IPv4 주소를 갖는다.
- port 번호를 이용해 health check가 가능하다.
- return 트래픽은 LB를 통하지 않고 Client로 직접 전달한다.
EC2 연결 시 트래픽 흐름
EC2에서 NLB를 통해 다른 EC2에 접속하고자 할 때에는 각 요소는 다음과 같이 SG를 등록해야 한다.
인스턴스 | SG 등록 필요 규칙 |
Client EC2 | Server EC2를 대상으로 하는 SG Outbound 규칙 |
Server EC2 | Client EC2를 대상으로 하는 SG Inbound 규칙 |