Cloud System Engineer

AWS Elastic Load Balancing 서버 트래픽 분산 관리 본문

클라우드/AWS

AWS Elastic Load Balancing 서버 트래픽 분산 관리

클라우드 엔지니어 2021. 9. 6. 23:25

AWS와 같은 클라우드 서비스를 사용하지 않으려면 L4 스위치와 같은 장비를 직접 구매해서 관리해야 하지만 AWS에서는 몇번의 클릭만으로 같은 기능을 구현 할 수 있다.

 

AWS에서 로드밸런서의 기능을 하는 서버를 내부적으로 관리해주기 때문에 우리가 직접 SSH로 접속 할 수 없다.

 

로드밸런스가 받은 요청을 특정 인스턴스 또는 Auto Scaling 그룹에 전달하도록 설정가능하다.

 

대상 그룹은 로드밸런서가 요청을 전달할 서버를 묶어놓은 그룹이다.

이 그룹은 인스턴스나 오토스케일링 그룹이 포함될 수 있다.

 

로드밸런서 생성

Application LB 생성

로드밸런서 생성

 

 

Auto Scaling 그룹 선택 -> 편집

 

방금 생성한 practice-target-group을 추가한 뒤 저장

 

로드밸런서도 하나의 서버이고 클라이언트의 요청을 직접 받기 때문에 테스트해볼 수 있는 DNS 주소가 자동으로 발급되어있다. DNS주소를 복사 후 브라우저에 접속 시도 해보자

어플리케이션이 올바르게 실행 된 것을 확인할 수 있다.

 

Auto Scaling 그룹을 이용한 장애 조치

목표용량과 최소용량 2로 변경후 저장

 

 

인스턴스 관리로 들어가 두 인스턴스가 Inservice 상태로 변경될 까지 기다린다.

 

두 서버에 ssh로 접속

A서버

 

B서버

 

 

장애 상황을 재현하기 위해 두 서버중 한 서버의 아파치 서비스를 종료 시킨다.

 

로드 밸런서가 상태 확인를 통해 하나의 인스턴스를 비정상 판단하기까지는 요청 중 절반은 성공하고 절반은 다음과 같은 에러가 나는 것을 확인할 수 있다.

 

정리

Auto Scaling 그룹과 Elastic Load Balancer를 이용해 다중 서버 환경을 구성했다.

로드 벨런서라는 레이어를 서버 앞단에 둠으로써 단일 서버 환경에서 할 수 없었던 스케일 아웃을 할 수 있게 됐다. Auto scaling 그룹이라는 aws 서비스를 이용해 실시간 요청량에 따라 유연하게 서버 관리를 할 수 있다. -> 비용 절감과 안정적인 서버 운용장점

'클라우드 > AWS' 카테고리의 다른 글

AWS VPC  (0) 2021.09.10
무중단 배포  (2) 2021.09.07
Auto Scaling  (0) 2021.09.06
AWS 데이터 베이스  (0) 2021.03.12
AWS Web-load balancing  (0) 2021.03.11