EC2 인스턴스를 생성 후 ELB를 적용해 본다.ELB에 연결할 2개의 EC2 인스턴스를 생성한다.
ap-northeast-2a 서브넷으로 지정된 첫번째 인스턴스
ap-northeast-2c 서브넷으로 지정된 두번째 인스턴스
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하나만 표시되는것을 알수 있었다.
두 인스턴스에 사용된 Nodejs 코드는 GITHUB에서 확인하실 수 있습니다.