728x90

해당 과정에 대한 정리와 이해는 생활코딩 강의를 참고했다.

 

ELB의 개념과 역할

실제 웹 구조에서 Load Balancer의 역할을 한다. 즉 서버의 과부하와 에러를 최소화 하기 위해 수평적 확장을 가능하게 해주는 기능을 제공하는 것이다. 

 

실제로 이 말은 서버를 여러 컴퓨터에 나눠서 제공하고 있으며, ELB는 유저의 다양한 요청을 받으면 적절하게 연결된 서버 컴퓨터에 나눠서 통신하게 되는 것이다. 

 

ELB 사용하기

우선 AWS로 접속하여 EC2 인스턴스 즉 서버를 만들어야 한다.

EC2 instance 서버 구축하는 건 해당 글 참고

그리고 EC2 서버 내에 web server 또한 설치한다.(해당 글 참고)

 

서버를 구축하고 난 다음에 다시 EC2화면에서 왼쪽의 사이드바를 보면 로드밸런서가 있다. 

이곳에서 로드밸런서를 설정할 수 있다.

 

대상그룹 생성하기

 

로드밸런싱/대상그룹 페이지로 이동 후에 아래 화면에서 대상그룹 생성을 클릭

아래와 같은 화면에서 필요한 설정들을 지정해준다.

 

 

그 다음 생성을 누르면 아래 화면과 같이 기존에 만들어둔 instance가 보이고, "include as pending below"를 클릭하면 아래의 target에 해당 instance가 추가된다.

이렇게 타겟 그룹을 생성하였다면, 로드밸런서에 연결해야 한다.

 

로드밸런서로 들어가서 로드밸런서 생성 클릭

application 로드 밸런서 생성 클릭

 

우선 로드밸런서의 이름 설정해주고, 리스너의 경우 https로 추가 가능하다.

http에서 포트 번호를 81로 다르게 설정할수도 있다.(실제 타겟그룹은 80이다) 

가용지역도 다 체크해주고

보안설정 구성으로 넘어가자. 이때의 보안 그룹은 인스턴스의 보안그룹과는 다르다.

아래와 같이 새 보안그룹 생성하여 ELB를 위한 보안그룹을 생성하고 라우팅 구성으로 넘어가자

이때 설정해주는 인증서가 바로 ACM에서 발급받은 인증서이다. 

즉 해당 로드 밸런서도 보안인증된 도메인 주소를 써야 할것이고, 이 전처리 과정이 Route 53 - ACM에서 진행되는 것이다

(여러 단계가 맞물려 잇는거 같다...)

 

 

라우팅구성에서 기존 대상 그룹을 선택하면 기존에 만들어둔 인스턴스 대상그룹이 뜨게된다.

 

대상등록을 클릭하면 아래와 같이 등록된 인스턴스를 확인할 수 있다.

완료되고 나면 아래와 같이 만들어진 로드밸런서를 확인할 수 있고, 로드밸런서의 DNS이름으로 접속하면 서버로 접속할 수 있다.

즉 ELB가 여러 인스턴스를 묶는 그룹의 대표 서버 주소역할을 하는 것이다,

**그렇다면 API Gateway에서 연결할 서버 주소는 인스턴스 주소가 아닌 ELB주소를 입력해야 할 것이다.

 

그렇다면 이제 이렇게 만들어둔 타겟 그룹 내에 여러 인스턴스를 추가해보자

(그래야 여러 컴퓨터를 가지고 있는 것이고 서버 과부하를 방지하기 위한 수평적 확장이 가능해진다.)

 

EC2 인스턴스목록으로 가서 그룹에 추가하려는 인스턴스에 대해 이미지생성을 진행한다.

-> 이미지란 여기서 서버라는 하나의 상태를 그대로 얼려서 이동 혹은 복제하기 쉽도록 상태를 만들어두는 것이다.

이때 그룹 내의 인스턴스들은 모두 동일한 상태여야 한다. 따라서 그룹 내에 인스턴스들을 복제하는 개념이라고 생각하면 된다.

아래와 같이 이미지를 생성하고

이미지가 완성이 되면 그 이미지를 이용해서 인스턴스를 복제한다.

 

이미지 AMI로 들어가면 복제를 위해 만들어둔 이미지를 확인할 수 있다.

상태에서 available을 클릭하여 시작하기를 클릭한다.

그렇다면 이후는 인스턴스를 성능을 지정하는 과정부터 기존의 인스턴스를 만드는 것과 동일한 과정을 진행하게 된다.

이때 pem 키는 복제한 인스턴스와 동일한 것을 사용해야 한다. 

 

이렇게 만든 인스턴스를 그룹에 추가한다.

 

인스턴스가 만들어지고 난 이후에, 로드밸런싱/대상그룹에 들어가서 대상추가를 진행한다.

아래화면과 같이 이전에 인스턴스를 추가하는 것과 같이 대상을 등록할 수 있다.

 

이렇게 하면 로드밸런서가 그룹내에 있는 인스턴스들에 트래픽을 분산시켜 주고 있다.

 

항상 HTTPS로만 접근 할 수 있도록! 이제 로드 밸런서의 리디랙션 규칙을 편집해주자. 

EC2>로드밸런싱>로드밸런서에서 해당 로드밸런서를 선택한 후 하단에 '리스너 탭'으로 이동하여  위 ALB 설정시 추가했던 리스너가 표로 있을 것이다. 여기서 80포트의 규칙 부분의 규칙 보기/편집 버튼을 눌러 설정해줄 수 있다.

이동한 규칙 편집/보기 페이지의 상단 편집 버튼을 누른 후 기존 기본 규칙을 삭제 / 

작업 추가> 리디렉션 대상 >HTTPS, 443 포트 입력 후 저장 및 업데이트를 하면 된다.

이에 더하여 auto scaling 기능을 활용하면, 자동으로 인스턴스 이미지를 만들어서 타겟그룹에 만들어준다.

 

728x90

+ Recent posts