- 하나의 서버, 서버셋으로 트래픽을 백엔드나 여러 서버(EC2 인스턴스들)로 다운스트림으로 전달하는 역할
- 인스턴스 앞에 위치하여 유저가 엘라스틱 로드 밸런서로 접근할 때 여러 인스턴스들( 서버셋 )로 트래픽을 분산하는 것 → 다른 인스턴스 엔드포인트로 보냄
- 단일 엑세스 지점(DNS)을 노출하게 되고 다운스트림 인스턴스의 장애를 원활히 처리 가능
- 상태 확인 매커니즘으로 파악 가능
- 쿠키를 통한 고정성 지원, HTTPS 트래픽을 위한 SSL, 고가용성과 클라우드 내부의 개인 트래픽과 공공 트래픽을 분리할 수 있다
만약에 우리가 여러개의 EC2 인스턴스를 접속하고 여러개 사이의 부하를 분산하기 위해 LoabBalancer를 사용한다.
그중에 ALB를 한 번 해보려고한다.
ALB : Application Load Balancer
ALB 는 Http 와 Https 타입의 트래픽을 위한 것이고, TCP , UDP , TCP 기반의 TLS를 위한 것이다.
ALB 는 초고성능 환경을 구착할 때 사용하고,
지연 시간을 최소로 유지하면 서초당 수백만의 건의 요청을 처리한다.
1. 상황
현재의 인스턴스 상태 EC2 2개
같은 URL로 이 두 EC2 인스턴스 부하를 분산해보겠다.
1. 로드밸런서 생성
우리는 http, https 트래픽 을 위함이니깐 맨 왼쪽것을 누른다.
GLB는 보안, 침입 탐지, 방화벽등에 특화돼 네트워크 트래픽을 분석하기 위한 로드밸런서이다.
모든 가용 영역
여기에 인스턴트들을 대상그룹으로 만들어야 한다.
http 1 유지
돌아와서 대상그룹 추가
그리고 생성
여기서 상태가 바뀌면
DNS 이름인 song-loadbalancer-562512137.ap-northeast-2.elb.amazonaws.com 으로 들어가서
새로고침을 하다보면 안에 내용이 바뀐다.
대상그룹에서 두 인스턴스가 정상인지 확인 가능
로드밸런서를 통해 들어갈수도 있지만. EC2인스턴스에 직접 접근할 수 있다.
AWS 에서는 EC2 인스턴스 접근할때 로드밸런서를 통해서 접근하는게 좋다고 한다.
방법 :
로드밸런스에서 오는것만 받아야 하기 때문에
HTTP(80), 로드밸런서의 보안그룹을 선택하면 된다.
이런식으로 EC2 에 인바운드 규칙을 로드밸런서에서만 날라오게 해주면 된다.
로드밸런스 -> 리스너 -> 리스너 규칙 추가 -> 규칙 추가로 복잡하게 만들 수도 있다.
즉 필터링을 해서 받을 수 있다.
이런식으로 하면 /error 가 있으면 규칙이 실행되는것이다.
조건이 일치하는경우 무엇을 하는지 설정하는 것이다.
URL 리디렉션, 전체 url선택 등 여러가지 활동을 할 수 있다.
나는 404 찾을 수 없음을 할것이다.
우선순위도 정해준다. 지금은 하나밖에 없으니 그냥 아무숫자 넣는다.
그러면 요렇게 나온다.
그럼이만.
댓글