티스토리 뷰
로드 밸런서(Load Balancer)
서버에 가해지는 트래픽을 여러대의 서버에게 균등하게 분산시켜주는 역할을 함
로드밸런서를 이용해 여러대의 서버를 하나로 묶으면 하나의 EndPoint 네임서버로 접속할 수 있다.
web이라는 이름의 퍼블릭 인스턴스를 생성
보안그룹은 다음과 같다.
apt -y update && apt -y install nginx
systemctl enable --now nginx
echo web server 1 > index.html
서비스가 잘 되면 인스턴스 중지후 이미지화를 한다.
이름과 설명을 입력하고 생성하면 된다. 생성이 완료되면
web-1인스턴스는 pub-sub1서브넷 할당
web-2인스턴스는 pub-sub2서브넷 할당
보안정책이나 나머지는 동일
구별을 위해 web-2인스턴스의 html파일의 내용을 바꿔줄 것이다.
vi /var/www/html/index.html
# web-2에 접속해서 index파일의 내용을 web server 1 에서 web server 2로 수정
이러면 로드밸런서의 엔드포인트 접속시 web server 1, web server 2가 반복되며 나타날 것 이다.
로드밸런서 탭으로 이동해서 로드밸런서 생성을 클릭
이런식으로 뜬다.(만약 다르게 나온다면 탭에 New EC2 Experience부분을 ON 해주자.)
ALB와 NLB의 차이점은 다음과 같다.
ALB
- ALB는 L7단의 로드 밸런서를 지원한다.
- ALB는 HTTP/HTTPS 프로토콜의 헤더를 보고 적절한 패킷으로 전송한다.
- ALB는 IP주소 + 포트번호 + 패킷 내용을 보고 스위칭한다.
- ALB는 IP 주소가 변동되기 때문에 Client에서 Access 할 ELB의 DNS Name을 이용한다.
- ALB는 L7단을 지원하기 때문에 SSL 적용이 가능함.
NLB
- NLB는 L4단의 로드 밸런서를 지원한다.
- NLB는 TCP/IP 프로토콜의 헤더를 보고 적절한 패킷으로 전송한다.
- NLB는 IP + 포트번호를 보고 스위칭한다.
- NLB는 할당한 Elastic IP를 Static IP로 사용이 가능하여 DNS Name과 IP주소 모두 사용이 가능하다.
- NLB는 SSL 적용이 인프라 단에서 불가능하여 애플리케이션에서 따로 적용해 주어야 한다.
ALB는 주로 웹 애플리케이션을 연결할 때 사용된다. EC2 인스턴스(혹은 도커 이미지) 앞단에서 사용자의 HTTP(S) 요청에 대한 부하 분산을 처리한다.
NLB는 Private한 환경에서 부하 분산을 처리할 때 사용된다. VPC처럼 서버가 Private IP로 구성된 환경에서 트래픽을 분산처리할 목적으로 쓴다..
이 중에서 ALB방식으로 진행하겠다.(NLB도 동일하게 진행 가능)
public 인스턴스들을 로드밸런싱 하기 때문에 Internet-facing 선택
ap-northeast-2a에 있는 pub-sub1, ap-northeast-2c에 있는 pub-sub2 영역에서 로드밸런싱 할 것이다.
타겟그룹을 생성한다.
타겟그룹 생성 후 다시 로드밸런스 생성으로 돌아와서
# 번갈아가면서 웹페이지가 다르게 뜨면 맞게 구성한 것이다.
'클라우드,가상화,방화벽' 카테고리의 다른 글
[AWS] Load Balancer, Auto Scaling-2 (0) | 2023.07.04 |
---|---|
[AWS] VPC를 이용한 3-Tier 아키텍쳐 구성-3 (0) | 2023.07.04 |
[AWS] VPC를 이용한 3-Tier 아키텍쳐 구성-2 (0) | 2023.07.02 |
[AWS] VPC를 이용한 3-Tier 아키텍쳐 구성-1 (0) | 2023.07.02 |
kubernetes create, apply, replace 차이 (0) | 2023.06.22 |