-
- 서로 다른 EC2 인스턴스를 생성 후 ELB를 적용
1. EC2 인스턴스 생성
- ELB에 연결할 2개의 EC2 인스턴스를 생성한다.
- 두 인스턴스의 서브넷(가용영역) 위치를 다르게 설정하기
- ap-northeast-2a 서브넷으로 지정된 첫번째 인스턴스
- ap-northeast-2c 서브넷으로 지정된 두번째 인스턴스
2. Load Balancer 적용
- EC2 서비스페이지에서 좌측 메뉴 하단에 로드 밸런싱->로드밸러서를 클릭해서 접속한다.
- classic Load Balancer를 선택한다.
보안 그룹 할당
- 기존에 생성되어있는 보안 그룹을 할당시켜줬다.
- 80 HTTP만 설정되어있으면 된다.
상태검사 구성
- 로드밸런서에 연결할 인스턴스의 헬스체크와 관련된 설정이다.
- 기본값으로 두고 넘어간다.
인스턴스 추가
검토
생성완료
- 생성 완료 후 방금 생성한 로드밸런서를 클릭해 아래 인스턴스 탭을 눌러보면 상태가 OutOfService상태이다.
- 지금은 방금 생성해서 OutOfService라고 나타나지만 이후에는 인스턴스가 사용 불가한 상태일때 OutOfservice라고 나타난다.
- 인스턴스가 사용가능하다면 위의 내용처럼 InService상태로 바뀐다.
로드밸런서 적용 확인
- 앞으로의 접속 요청은 인스턴스의 DNS주소가 아닌 로드밸런서의 DNS주소로 접근한다.
- 로드밸런서의 DNS주소로 처음 접근시에는 위와같이 미리 인스턴스에 세팅해 두었던 Server2라는 문장을 출력하는 NGINX + NodeJS서버를 볼 수 있다.
- 리로드를 할 때마다 다른 인스턴스에서 실행되고있는 Server1이라는 문장을 출력하는 NGINX + NodeJS서버를 볼 수 있다.
- 계속 리로드를 할 시 Server1 과 Server2가 번갈아 표시되게된다.
- 그러다가 더이상 번갈아 표시되지않을 경우가 생기는데 로그로 확인해 보았을 때 API요청이 캐싱되어 처리되는것을 확인할 수 있었다.
- 2개의 EC2 인스턴스중에서 하나를 중지 시켰을 땐, Server1 혹은 Server2하나만 표시되는것을 알수 있었다.