처음 만나는 클라우드 보안

[AWS] 로드밸런싱이란: 타겟그룹 & 로드밸런서 구성 본문

클라우드 기초/Amazon AWS

[AWS] 로드밸런싱이란: 타겟그룹 & 로드밸런서 구성

영민하게 2022. 6. 19. 11:21
반응형

 로드벨런서 (Load Balancer)

AWS EC2의 부하를 줄이기 위해 서버 앞단에서 트래픽을 분산시키는 네트워크 장치. 클라이언트 접속이 다수 발생하더라도 트래픽을 온전히 처리할 수 있다. 클라우드 환경에서는 L4 스위치를 가상화한 장치를 사용한다. 

 로드밸런싱 방식

- Round Robin (순차분배방식)

: 순차적으로 트래픽을 배분하는 방식 ex) A => B => C => D => A => B =>...

 

- Weighted Round Robin (순차 분배 방식 + 가중치 부여)

: 서버의 용량 등을 고려해서 순차 분배하는 방식

 

- Least Response Time (최소 응답 시간 우선 분배)

: Health Check를 할 때 가장 빠르게 응답하는 서버에 우선 분배

 

- Least Connection (최소 연결 개수 우선 분배)

: Client와의 연결 개수가 적은 쪽이 여유가 있기 때문에 우선 분배

 

- Hash Function (해쉬값 계산 방식)

: 출IP, 목 IP, 출Port, 목 Port의 해쉬값 계산, Client와 같은 Server를 계속 연결하는 방식 ex) 고정 세션 (Sticky Session)

 

- NLB (Network Load Balancer)

- 리스너에 포트번호화 프로토콜 지정: Port번호를 기반으로 로드밸런싱

- EIP(Elastic IP, 탄력적 IP => 퍼블릭 고정 IP)를 NLB에 설정 가능 ㅡㅡ> 도메인 주소를 EIP와 연결 (DNS연결)

참고)

Sticky Session(고정 세션): 세션의 연결이 지속적으로 유지 => 서버가 고객정보를 계속 보유

ALB는 Round Robin, NLB는 Hash Function이 지원된다.


 AWS 로드 벨런싱 구성 실습

실습 구성도

1. 시작 탬플릿 생성

우클릭 > 인스턴스에서 탬플릿 생성 > 시작 탬플릿 생성

시작 탬플릿 생성확인

2. 탬플릿으로 인스턴스 시작

작업 > 탬플릿으로 인스턴스 시작 > 인스턴스 개수

리소스 태그 값 > 이름 중복 안 되도록 설정 yngmin

시작 탬플릿을 활용한 인스턴스 생성

 

3. 대상그룹(Target Group) 생성

Target group > Create Target group

Instance선택 > 타깃그룹 선택, http1 선택

Health Check 서버가 아직 살아있는지 확인 후 NEXT

대상 인스턴스 선택후 타켓그룹 생성하기 클릭

4. 로드밸런서 생성

왼쪽 탭 로드밸런서 > 로드밸런서 생성 클릭

ALB Create 선택 >  이름 지정, Internet-facing, IPv4선택, 타깃그룹 선택

Security groups > http 80번 포트 Open

Create Load balancer 확인

생성된 로드 밸런서 확인

로드 밸런싱 > 대상 그룹 > Health Check

5초당 로드밸런서의 타겟그룹에 대한 상태체크가 이루어지고 있다.

5. 타겟 선택

Healthy 상태체크

6. 로드밸런싱 확인

DNS주소로 여러번 접속하면 로드벨런싱 설정으로 인해 웹페이지(2개)로 번갈아 접속됨을 확인할 수 있다.


추가)  로드밸런스와 오토스케일링을 함께 사용하려면?

(이전 시작탬플릿으로 시작하지 않고) 오토스케일링그룹으로 시작된 인스턴스에 대해서 로드밸런서 타겟으로 설정, 로드밸런서 연결해준다.

오토스케일링 그룹 생성시 사전에 설정된 로드밸런싱 타겟그룹에 연결할 수 있다.


참고자료
테스트 페이지용 html 코드 예시

<html>
<head>
<title> This is for old page! </title>
</head>
<body bgcolor="green">
        <H1> THis is for old page!</H1>
</body>
</html>
반응형
Comments