본문 바로가기
aws실습

클라우드 컴퓨팅(로드밸런싱)

by 세용용용용 2023. 6. 23.

1. 로드 밸런싱 : 네트워크 트래픽을 하나 이상의 서버나 장비로 분산하기 위해 사용되는 기술

로드 밸런싱 서비스를 통해 외부에서 발생되는 많은 인터넷 트래픽을 여러 웹 서버나 장비로 부화를 분산하여 처리할 수 있습니다.

 

2. 로드 밸런싱 방식

1) round robin : real 서버로의 session연결을 순차적으로 맺어주는 방식, 연결되어 있는 session 수에 상관 없이 순차적으로 연결시키는 방식으로 session에 대한 보장을 제공하지 않음

 

2) hash : hash알고리즘을 이용한 로드 밸런싱, client와 server간에 연결된 session을 계속 유지해 주는 방식으로 client가 특정 server로 연결된 이후 동일 서버로만 연결되는 구조로 session에 대한 보장을 제공

 

3) Least Connection : session 수를 고려하여 가장 작은 session을 보유한 서버로 session을 맺어주는 연결방식

session에 대한 보장을 제공하지 않는다

 

4) Resopnse Time : 서버간의 Resource와 connection의 차이가 있는 환경에서 사용되는 방식으로 응답시간을 고려해 빠른 응답시간을 제공하는 서버로 session을 맺어주는 방식, session에 대한 보장을 제공하지 않는다.

 

3. Amazon Elastic Load Balancing

단일 가용 영역 또는 여러 가용 영역에서 Amazon EC2인스턴트 및 컨테이너, IP주소 같은 동일한 서비스를 제공하기 위해 준비된 여러 대상으로 애플리케이션 및 네트워크 트래픽을 자동으로 분산시킴

 

4. ELB의 종류

1) appplication load balancer : http, https와 같은 고급 로드밸런싱 서비스에 적합

2) network load balancer : tcp트래픽의 로드밸런싱 서비스에 적합

3) classic load balancer : ec2-classic네트워크 내에 구축된 애플리케이션을 대상으로 제공

 

ELB를 생성하는 것이 로드 밸런싱 서비스를 인터넷에 연결할 것인지 아닌지에 따라 Internet-facing 여부를 선택하게 됨.

1) External ELB(인터넷 연결 가능)

2) Internal ELB(인터넷 연결 불가)

 

 

5 . ELB 주요 특징

1) 상태 확인 서비스

2) sticky session

3) 고가용성 구성

4) ssl termination 및 보안 기능

 

 

실습!! 웹서버 구성 및 웹페이지 연결 테스트 하기

1. 서비스 >> 컴퓨팅 >> ec2로 이동

인스턴스에 적용할 보안그룹부터 생성 보안그룹(ssh, http, https)

 

인스턴스 시작 

사용자 데이터 이렇게 설정

 만들떄 가용영역 동일하게 만들어주기 네트워크 설정 편집 >> 서브넷

 

다만들어 진것 확인

웹페이지 3개 잘뜨는지 확인

 

로드밸런싱 >> 대상그룹 클릭

대상그룹을 먼저만들자

그룹을 어떻게 묶을 건지 물어본다 우리는 인스턴스로 해보자

 

그룹멤버 체크하고 include as pending below 누름

뜨는 거 확인하고 create target group클릭

만들어 진것 확인 이제 로드밸런스 만들어서 연결하면 된다, 연결하게 되면 자동으로 Healthy체크를 하게됨

 

이제 로드밸런서 만들로가자

로드밸런싱 >> 로드밸런서

웹서버니까 어플리케이션 로드밸런서 클릭

http만 있는 보안그룹 생성하고 그것을 넣어준다

로드밸런싱용 보안그룹(http만) 넣어준다

 

여기서 만들어놓은 대상그룹을 선택해주면 된다

 

 

로드밸런싱에 선택한 서브넷에 인스턴스 하나 생성해줌

 

 

인스턴스 하나 중지해보자

타겟그룹을 가게되면 unused라고 뜬다

이제 아까만든 인스턴스 두개를 타겟그룹에 추가해보자 

register targets클릭해서 추가해준다

그리고 인스턴스 중지했던가 다시 시작해줌

이제 로드밸런서로 가서 DNS name 복사하고 검색해보자

f5를 눌러서 확인해보면 인스턴스가 바뀌는것을 확인할수 있음( 라운드로빈 방식이라 그럼)

 

타겟그룹의 >> 속성 >> target selection configuration

이거 사용하게되면 쿠키값 고정가능 세션이 유지가 된다

다시 DNS name 복사해서 검색해보면 세션이 안바뀌는것을 확인할수있음

 

 

Amazon Auto Scaling

가용성 높고 빠르게 확장 가능한 인프라 구성하기

1. 가용성 : 서비스가 가동 및 실행 되는 시간의 비율을 말함, 서비스 중지 및 다운타임을 가져갈 수 없는 시스템을 설계해야 하는 경우 인프라의 가용성을 극대화 할 수 있는 아케텍처로 인프라를 구성함(이러한 시스템을 고가용성 시스템 이라고함)

 

2. 확장성 : 서비스나 응용프로그램이 증가하는 성능 요구에 맞게 향상될 수 있는 정도를 나타냅니다.

예를들어 이벤트로 인해 동시 접속자가 10배이상 많이 접속하는 경우 확장성이 높은 시스템은 사용자 증가에 따라 시스템의 자원이나 리소스를 손쉽게 추가/삭제할 수 있습니다.

 

3. Amazom auto scaling : 아마존 웹서비스에서 제공하는 서비스 중 가장 클라우드 답다고 할수 있다.

서버의 사용자가 급증하면 Auto Scaling을 사용하여 인스턴스를 늘려 성능을 유지하고, 이용자가 줄어 평상시 상황이 유지되면 인스턴스를 자동으로 줄여 비용을 줄이는 효과를 볼 수 있다.

 

Amazon Auto Scaling 구성요소

1) 오토스케일링 그룹을 만들어 줘야됨, 오토스케일링 그룹은 인스턴스의 수를 조건에 따라 자동 조정 및 관리하는 Amazon Auto Scaling의 핵심 기능입니다.

 

2) 시작 구성 : 오토 스케일링 그룹에서 인스턴스를 시작하는 데 사용하는 템플릿입니다.

AMI. 인스턴스 유형, 키페어, 하나 이상의 보안 그룹, esb등 인스턴스에 대한 정보를 지정

 

3) Amazon Auto Scaling 그룹 조정

오토 스케일링 그룹 조정은 인스턴스의 수를 늘리거나 줄이는 기능

 

 

구성 순서

템플릿 생성 >> 오토스케일링 그룹생성 >> 로드밸런서 연결

 

 

일단 이미지 먼저 만들어주자 인스턴스 하나 중지시키고 이미지생성후 찍힐떄 까지 기다려야됨 다생성되면 시작템플릿 ㄱㄱ

1. 인스턴스 >> 시작템플릿

방금 만든 이미지 선택

인스턴스 유형 t2.micro선택

키페어 선택

네트워크설정(시작 템플릿에 포함하지 않음,, 보안그룹 선택(웹서버))

 

사용자데이터 설정

후 시작템플릿 생성

 

이제 오토스케일링을 하기위해 자동크기조정 >> 오토스케일링 그룹(언제 이것을 증가시켜줄지)

 

생성이 끝났으면 부하를 주고 확인해보자

ssh 로 먼저 인스턴스 접속을하고

 

CPU 사용량 증가하기

$ sha256sum /dev/zero  & 

$ top >> 확인해보기

 

또다른 인스턴스로 접속해 똑같이 cpu사용량 증가하기