백앤드(Back-End)/AWS

[AWS] 로드 밸런서(Load Balancer) 개념 및 사용법

RyanSin 2021. 3. 14. 23:05
반응형

- 개요

안녕하세요. 이번 시간에는 AWS 로드 밸런서(Load Balancer)에 대해 알아보겠습니다.
로드 밸런서(Load Balancer)는 무엇일까요? 그리고 왜 사용해야 할까요?

로드 밸런서는 요청이 들어오는 트래픽을 각 서버에 알맞게 분산해주는 네트워크 기술이자 특정 서버를 말합니다.

그럼 로드 밸러스를 사용하지 않을 때와 사용했을 때 그리고 언제 사용하는 게 좋을까요?

우리는 모든 기술을 사용할 때 위 질문을 항상 하는 습관을 가져야 합니다.

간단하게 큰 규모에 서비스를 우리가 만들어야 한다면, 당연히 트래픽이 많고 서버 장애가 많이 발생될 수 있다는 점을 고려해서 설계해야 됩니다. 이런 상황이라면 분명 로드 밸런서를 사용해야 합니다.
(서버의 장애가 발생한다는 건... 서비스에 큰 타격을 주기 때문이죠...;;)

만약 초기 개발 시에는, 기본적인 유저 수와 또한 유저들에 특정 시간에 많이 접속하는 상황에서는 안 사용할 수 없죠.

- 사용법

이번 글에서는 아래와 같은 구조를 만들어 보겠습니다.

 

EC2 인스턴스를 생성하지 못하시는 분들은 아래 링크를 통해 학습하고 오시는 걸 추천드리겠습니다.

 

EC2 인스턴스 생성 : any-ting.tistory.com/66

 

[AWS] EC2 인스턴스 생성

- 개요 안녕하세요. 이번 시간에는 AWS EC2 서비스에 대해 알아보겠습니다. 클라우드 서비스에 대한 이해도가 있다면 좋겠지만, 모르시는 분들도 있기 때문에 간단하게 설명하도록 하겠습니다. 클

any-ting.tistory.com

EC2 인스턴스 원격 접속 : any-ting.tistory.com/67

 

[AWS] EC2 인스턴스 접속(원격 접속)

- 지난 시간 안녕하세요. 지난시 시간에는 EC2 인스턴스를 생성하는 방법에 대해 알아봤습니다. 혹시 놓치고 생성하는 방법에 대해 알지 못하신 분들은 아래 링크를 통해 생성하고 해당 글을 읽

any-ting.tistory.com

- 인스턴스 생성 및 Nginx 웹 서버 설치

EC2 인스턴스 2개를 생성하고 웹 서버를 설치하겠습니다.

 

EC2 인스턴스에 원격 접속 후 아래 명령어를 실행해주세요.

 

Nginx 설치

sudo apt-get install -y nginx

 

설치 확인

설치가 완료했다면 해당 IP를 브라우저에 입력하면 아래와 같은 화면이 나타나면 성공입니다.

 

 

Nginx index.html 파일이 실행된 겁니다. :)

 

만약 접속이 안된다면, 보안 그룹에서 80 Port를 확인해주세요.

80 포트를 개방해주지 않았다면 브라우저에서 위와 같은 화면을 확인할 수 있습니다.

 

이제는 Nginx에 index.html 파일을 수정하겠습니다. 

 

index.html 파일 수정

경로는 /var/www/html/ 안에 있습니다.

 

vi 명령어로 해당 파일에 접근해 수정하겠습니다.

 

sudo vi /var/www/html/index.nginx-debian.html 해당 명령어를 터미널에 입력해줍니다.

 

 

해당 코드가 보인다면 됩니다. 우리는 <h1> 태그 안에 있는 Welcome to nginx! 이 부분을 수정하겠습니다.

 

EC2 인스턴스 하나에는  "Server1"로 수정하고 다른 인스턴스에는 "Server2"로 수정하겠습니다.

 

해당 파일을 오픈하면 i 명령어를 입력하면 입력 상태로 변경됩니다. 그리고 값을 다 수정했다면 esc를 누르면 미작성 상태로 변경됩니다. 그리고 난 뒤 : (콜론)을 누르고 wq를 입력하면 해당 값이 적용됩니다.

 

그리고 브라우저를 통해 확인하겠습니다.

 

변경된 걸 알수 있습니다. 이제 다른 인스턴스도 동일하게 수정해주세요.

 

 - 로드 밸런스 생성

왼쪽 항목에 로드밴런서를 클릭하고 상단에 로드밸런서 생성 버튼을 클릭합니다.

 

 

Load Balancer 생성 버튼을 클릭하면 아래와 같은 화면이 보입니다.

 

저희는 Application Load Balancer를 생성하겠습니다. 생성 버튼을 클릭해주세요.

 

이름을 작성하고 리스너는 HTTP를 사용하겠습니다.

 

그리고 기본적인 가용 영역을 선택합니다. 2개 이상을 선택해야 합니다.

 

(참고로 인스턴스 생성한 가용 존과 동일한 가용 존에 있어야 합니다.)

 

그리고 다음 항목으로 넘어갑니다.

 

우리는 HTTPS 프로토콜을 선택하지 않았기 때문에 이 항목은 넘어갑니다.

 

보안 그룹은 새로 생성해도 되고 기존에 사용했던 보안 그룹을 사용해도 됩니다.

 

중요한 부분은 80 Port를 개방해야 됩니다.

 

새로운 대상 그룹을 생성해도 되고 기존 대상 그룹을 사용해도 됩니다.

 

우리는 새롭게 생성하겠습니다.

 

이름과 우리는 EC2 인스턴스와 연결하기 때문에 인스턴스를 선택합니다.

 

그리고 HTTP 프로토콜을 선택합니다.

 

상태 검사는 해당 로드 밸런서가 EC2 인스턴스를 상태를 체크한다고 아시면 됩니다. 해당 인스턴스가 문제가 있다면 다른 인스턴스에게 요청을 다시 보냅니다.

 

특정 경로가 없다면 그대로 설정하겠습니다.

 

아래 고급 상태 검사 설정은 우리가 상태 검사를 할 때 값을 설정하는 부분입니다. 기본 값으로 설정하겠습니다.

 

등록 전

 

마지막으로 우리가 생성한 인스턴스를 대상 그룹에 추가하면 됩니다. :)

 

등록 후

마지막으로 검토를 하고 생성을 하면 끝입니다.

 

생성 완료

 

생성이 완료되면 상태 값이 provisioning 상태입니다. 다 만들어지면 active 상태로 변경됩니다. active 상태가 될 때까지 기다려줍니다.

 

상태가 변경되면 DNS 이름 항목 값을 복사해줍니다.

 

복사한 값을 브라우저에 입력해서 실행합니다.

 

Ctrl + Shift + r을 입력해 캐시 삭제 후 새로고침 해줍니다.

위와 같이 요청에 따라 값이 변경되면 로드 밸런스를 통해 분산 처리를 하는 걸 확인할 수 있습니다.

 

이번 시간에는 AWS 로드 밸런스(Load Balancer)에 대해 알아봤습니다.

 

실습을 통해 꼭 숙지하시는 걸 추천드리겠습니다. :)