로드밸런서란?
로드 밸런서는 OSI 4계층에서 작동하며 트래픽을 분산처리해주는 장비이다. AWS에서 로드밸런서 기능을 제공해준다.
AWS 로드 밸런서 구성 실습
로드밸런싱 > 로드밸런서 메뉴를 클릭한다. 로드 밸런서 생성 버튼을 클릭한다.
로드 밸런서 이름, 리스너(서비스할 프로토콜 및 포트번호), 가용영역(로드 밸런싱할 대상 서버 네트워크)를 선택한다.
2단계에서는 보안그룹을 설정한다.
대상 그룹이란 로드밸런서가 로드밸런싱할 대상이 되는 그룹이다. 그룹별로 설정을 세분화하여 적용할 수 있다.
상태검사는 로드밸런서가 각 인스턴스의 상태가 정상인지 확인하기 위한 요청경로로 주로 GET 방식에 /health로 요청을 하며 응답코드가 200인 경우 인스턴스가 정상임을 확인하다.
정상적으로 로드 밸런서가 생성되었다.
Auto Scaling Group화면에 가서 편집버튼을 눌러 로드밸런서에서 생성한 대상 그룹을 Auto Scaling Group으로 지정해다. Auto Scaling Group에 인스턴스가 로드밸런싱 대상이 되는 것이다.
로드밸런싱 > 대상그룹에 가면 대상그룹에 등록된 대상에 인스턴스 정보를 볼 수 있다.
로드밸런서에 요청을 한다. 이제 각 서버로 접속하는 것이 아닌 로드밸런서로 요청을 하면 로드밸런싱이 된다.
로드밸런서 주소로 접속을 하지만 접속이 되질 않는다. 대상 그룹에 상태를 확인해보니 unhealthy상태였다. 그렇다.. Get방식 /health URI에 해당하는 요청처리가 없다. 이 상태에서 다음 실습을 진행해보자.
장애 조치 아키텍처 구성
대상 그룹에 상태검사를 편집하여 장애가 발생했을 때 빠른 조치가 가능하도록 설정한다. 인스턴스에 상태검사를 요청했을 때 정상/비정상 임계값 수치에 도달하면 정상/비정상 상태 처리를 하겠다는 것이다.
- 제한시간은 서버 응답에 대한 제한시간이며 간격은 요청 간격을 의미한다. 그리고 경로를 /health -> /변경하자. index.html은 있다.
상태검사를 바꾸니 healthy 상태가 되었다. 로드밸런서로 접속을 해보자.
장애가 발생하면 인스턴스의 상태가 unhealthy가 되고 해당 인스턴스로는 요청을 보내지 않는다. 로드 밸런서를 사용하여 인스턴스를 추가하면 scale out 확장이 가능하고 하나의 서버가 장애로 다운되어도 나머지 서버로 요청을 받을 수 있다.