AWS Elastic Load Balancing 서버 트래픽 분산 관리
AWS와 같은 클라우드 서비스를 사용하지 않으려면 L4 스위치와 같은 장비를 직접 구매해서 관리해야 하지만 AWS에서는 몇번의 클릭만으로 같은 기능을 구현 할 수 있다.
AWS에서 로드밸런서의 기능을 하는 서버를 내부적으로 관리해주기 때문에 우리가 직접 SSH로 접속 할 수 없다.
로드밸런스가 받은 요청을 특정 인스턴스 또는 Auto Scaling 그룹에 전달하도록 설정가능하다.
대상 그룹은 로드밸런서가 요청을 전달할 서버를 묶어놓은 그룹이다.
이 그룹은 인스턴스나 오토스케일링 그룹이 포함될 수 있다.
로드밸런서 생성
로드밸런서 생성
Auto Scaling 그룹 선택 -> 편집
방금 생성한 practice-target-group을 추가한 뒤 저장
로드밸런서도 하나의 서버이고 클라이언트의 요청을 직접 받기 때문에 테스트해볼 수 있는 DNS 주소가 자동으로 발급되어있다. DNS주소를 복사 후 브라우저에 접속 시도 해보자
어플리케이션이 올바르게 실행 된 것을 확인할 수 있다.
Auto Scaling 그룹을 이용한 장애 조치
목표용량과 최소용량 2로 변경후 저장
인스턴스 관리로 들어가 두 인스턴스가 Inservice 상태로 변경될 까지 기다린다.
두 서버에 ssh로 접속
장애 상황을 재현하기 위해 두 서버중 한 서버의 아파치 서비스를 종료 시킨다.
로드 밸런서가 상태 확인를 통해 하나의 인스턴스를 비정상 판단하기까지는 요청 중 절반은 성공하고 절반은 다음과 같은 에러가 나는 것을 확인할 수 있다.
정리
Auto Scaling 그룹과 Elastic Load Balancer를 이용해 다중 서버 환경을 구성했다.
로드 벨런서라는 레이어를 서버 앞단에 둠으로써 단일 서버 환경에서 할 수 없었던 스케일 아웃을 할 수 있게 됐다. Auto scaling 그룹이라는 aws 서비스를 이용해 실시간 요청량에 따라 유연하게 서버 관리를 할 수 있다. -> 비용 절감과 안정적인 서버 운용장점