1. 로드 밸런서란?
사용자가 늘어나면 1대의 웹 서버로는 요청을 깔끔하게 처리할 수 없는 시점이 온다. 이럴 때는 웹 서버를 여러 대 준비해서 성능을 높이는 방법을 이용할 수 있다. 이렇게 성능을 향상하는 방식을 스케일 아웃(scale-out)이라 부른다. 그러나 단순히 웹 서버만 늘리면 송신 대상지의 PC브라우저나 모바일에서는 새로운 웹 서버를 자동으로 이용하지 못한다. 따라서 스케일 아웃을 할 때는 서비스를 제공하는 측에서 무언가의 시스템을 추가로 제공해야 한다.
1.1. 로드 밸런서의 역할
로드 밸런서는 이러한 스케일 아웃을 수행하는 방법의 하나다. 로드 밸런서의 주요 역할로는 다음과 같은 세 가지를 꼽을 수 있다.
- 요청 분산: 인터넷으로부터 전송된 요청을 여러 웹 서버에 균등하게 분산
- SSL 처리: 송수신하는 테이터를 암호화 처리. 인터넷으로부터의 접근 중, 안전하게 정보를 보내기 위해 HTTPS라는 프로토콜로 통신할 때가 있는데 이 통신에서 SSL을 이용한다.
- 부정 요청 대응: 올바른 요청이 아닌, 예상치 못한 작동을 일으키는 부정한 요청이 들어올 가능성을 대응
1.2. AWS에서 제공하는 로드 밸런서
1.2.1. Application Load Balancer(ALB) : HTTP나 HTTPS를 이용한 접근을 분산하는 데 최적화된 로드 밸런서
1.2.2. Network Load Balancer : 기본적인 분산처리 기능만을 제공하지만, 다양한 통신 프로토콜에 대응하는 로드 밸런서
1.2.3. Classic Load Balancer : ALB나 Network Load Balancer가 등자하기 전에 쓰이던 오래전의 로드 밸런서
2. 로드 밸런서 설정 항목
항목 | 값 | |
이름 | my-elb | |
VPC | my-vpc | |
가용 영역 | my-subnet-public01 | |
my--subnet-public02 | ||
보안 그룹 | default my-sg-elb |
|
대상 그룹 |
이름 | my-tg |
프로토콜 | HTTP | |
포트 | 3000 | |
등록 완료 타깃 | my-ec2-web01 | |
my-ec2-web02 |
2. 로드 밸런서 생성하기
EC2 서비스 -> Load Balancing -> Load Balancers -> Create load balancer
로드 밸런서 타입은 ALB
로드밸런서 설정 항목대로 로드밸런서 네임 입력
VPC 지정 및 가용 영역 지정, Subnet은 public01,02로 지정
보안 그룹은 만들었던 my-sg-elb 그룹과 default
타겟 그룹을 지정하기 전에 만들어 둔게 없으니 Create target group로 이동
타겟 타입은 인스턴스, 타겟 그룹 이름 입력
설정 항목대로 3000번 포트 입력
Health check 프로토콜은 HTTP, 경로는 최상위 디렉토리 -> Next
타겟 인스턴스 지정, my-ec2-web01,02 지정 후 Include as pending below
화면 아래로 가서 Create target group
다시 로드밸런서 생성 콘솔로 돌아와서 타겟 그룹 새로고침 후 생성한 타겟 그룹 지정
하단 Create load balancer
CMD창을 2개 켜서 ssh web01,02에 접속해서 최상위 디렉토리에 index.html을 만든다 만드는 이유는 위에 Health check 프로토콜은 HTTP이고 경로는 최상위 디렉토리이기 때문이다.
index.html 내용 간단하게
아마존 리눅스 2에 미리 설치된 파이썬을 이용해 HTTP 서버를 기동한다.
EC2 서비스 -> Load Balancing -> Target Groups -> 타겟 그룹 체크 박스 -> Helath status가 Healthy 상태인지 확인 바뀌는데 시간이 조금 걸린다.
'AWS' 카테고리의 다른 글
에티버스러닝 하이브리드 클라우드 파이널 프로젝트 (0) | 2024.01.16 |
---|---|
AWS- 5. 웹 서버(Web Server) (0) | 2023.12.01 |
AWS - 4. 점프 서버(Jump Server) (0) | 2023.11.30 |
AWS - 3. Network (1) | 2023.11.29 |
AWS - 2. IAM(Identity and Access Management) (0) | 2023.11.28 |