수많은 클라이언트가 요청을 보냈을 때 해당 요청을 하나의 큰 덩어리로 처리하는 것이 아닌 잘개 분해해서 각각의 인서턴스(EC2)에게 분배함에 따라 요청 처리량 증가 및 효율성 증대
AWS ELASTIC LOAD BALANCER
로드 밸런서를 적용시키기 위해서는 EC2가 필요합니다.
기존의 수많은 글로 EC2 생성기는 대체 하겠습니다.
클라이언트의 요청이 Load Balancer 로 들어온다.
로드 밸런서도 일종의 "웹 서버" 이다.
트래픽이 아무리 많이 들어와도 항상 살아 있음
로드 밸런서가 각각의 요청들을 각각의 인스턴스에게 보내는데, 우리가 주목해야 하는 것은 포트 번호
클라이언트는 먼저, 로드밸런서의 특정 도메인의 특정 포트 번호로 들어 온다.
그러면 로드밸런서는 80번 포트를 (혹은 443포트) 리스닝 하고 있는 웹서버로 연결한다. ( EX : 3000번 포트 , 8080번 포트 등 )
위의 과정을 수행하기 위해서 같은 속성을 가진 인스턴스를 묶어놓은 타겟 그룹을 설정 해야 한다.
해당 타겟 그룹을 로드밸런서에 적용시키면 로드밸런서는 해당 타켓그룹에 등록된 인스턴스들을 보고 트래픽을 분산시켜 준다.
인스턴스 선택, 그룹 이름 작성
기본 포트번호는 80으로 설정돼있다. 많은 블로그 글들을 보았지만 기본값 그대로 사용하길래 따라했다. 하지만 이 포트번호는 내가 띄울 서비스의 포트 번호이다. 나는 Docker로 Node.js 애플리케이션을 3001 포트로 띄우기 때문에, 여기서 3001 포트 번호를 적어줘야 한다.
정리 하자면 로드밸런서 서버로 트래픽이 전송되고 로드밸런서가 보내줘야 할 목표 지점을 적어주는 것이다 !
로드 밸런서 : 어디로 가야하지 ..?
노드 어플리케이션 : 3001번으로 들어오세요 여기 문 열어놨어요 !
위에서 생성한 시작템플릿 ( AMI 이미지) 을 오토 스케일링 그룹에 추가 시킨다.
따라서, 추가된 이미지를 타겟 그룹에 추가시켜 로드 밸런서가 부하를 분산시킬 수 있게 된다.
Jmeter 는 무한정으로 트래픽을 보내 서버의 현황을 살필 수 있도록 도와준다.
https://velog.io/@znftm97/AWS-EC2%EC%97%90-HTTPS-%EC%A0%81%EC%9A%A9%ED%95%98%EA%B8%B0
https://www.youtube.com/watch?v=s9FHdj6jd_U