티스토리 뷰

AWS

[AWS] ELB 생성 해보기

현오쓰 2019. 4. 15. 13:36

약 한달만에 포스팅을 하는것 같다. 꾸준히 기술관련 내용을 포스팅 하는건 쉬운일이 아닌것 같다.. 곧 다니고 있는

회사를 그만두게 되면 꾸준히?! 올리길 기도해본다ㅎㅎ.

 

저번 포스팅에서 AWS ELB를 사용하는 이유를 알아보았고 오늘은 사용방법을 알아보겠다.

 

ELB(Elastic Load Balancing) (19년 4월 15일 기준)

1. ELB 선택

AWS에서 EC2 창으로 들어가면 왼쪽메뉴에 로드밸런서를 클릭한다. 그러면 아래와 같이 3가지 선택란이 나온다.

 

ELB 선택 창

여기서, 맨왼쪽 Application Load Balancer를 선택하면 된다. Application Load Balancer은 7계층 로드밸런서 이고

그 옆 Network Load Balancer는 4계층 로드밸런서라고 생각하면 된다. 그럼 맨 오른쪽은? 저거은 예전 7계층 로드밸런서 이고 맨왼쪽 Application Load Balancer과 차이점은 기능 차이다. Application Load Balancer은 리다이렉션 기능이 내장되어 있다. 로드밸런서를 선택 했다면 이제 설정 부분이 나오게 된다. 다음 사진을 보자

 

2-1. 로드밸런서 구성

 

ELB 기본구성&리스너

1단계 로드 밸런서 구성에서 크게 2가지 작업을 하는데, 우선 기본구성과 리스너 부분을 보겠다. 기본구성은 로드밸런서의 닉네임 부분을 입력하는 곳이다. 그다음 리스너는 ELB가 처음으로 받고자 하는 포트이다. 즉, 80 혹은 443 포트를 받으면 연결된 인스턴스로 로드밸런싱을 하겠다. 라는 의미로 보면 된다. 그다음은 가용영역 안에 서브넷을 선택해야 한다.

 

2-2. 로드밸런서 가용 영역 및 서브넷 선택

 

ELB 가용영역

 

가용영역을 활용하는것을 ELB는 추천하며, 꼭 저 가용영역을 다활용 안해도 된다. 즉, ap-northeast-2a 지역에 로드밸런싱 하고자 하는 EC2가 2대 있고 ap-northeast-2c에는 해당 EC2가 없어도 된다는 말이다. 하지만 가용영역으로 로드밸런싱 하는것을 적극 권장한다. 가용영역 안에 서브넷을 선택하고 다음창을 넘어가면 아래 사진이 나온다.

 

3. ELB 보안설정(SSL 필요하다면) *필수사항 아님

 

ELB SSL 보안

 

주의할점은 만약 ELB 리스너에서 443를 입력 안했다면 이부분은 넘어가도 된다. SSL을 등록해본 사람이라면 이해가 바로 갈것이다. 즉, ELB에서 SSL처리를 하는것이다. 크게 ACM과 IAM으로 인증서등록이 있는데, ACM은 AWS에서 제공하는 SSL키 이고 만약 SSL이 이미 있다면 IAM 인증서 업로드로 등록하면 끝난다.  아래 보안 정책 선택은 SSL 알고리즘 선택란이 나오고 원하는 항목을 선택하면 된다.  (알고리즘이 복잡할 수록 CPU 리소스를 많이 잡아 먹는다.)

그다음 창에서는 아래와 같이 보안 그룹 구성이 나온다.

 

4. ELB 보안그룹 설정 

 

ELB 보안그룹

보안그룹은 전 포스팅에 했으므로 개념은 생략한다. 보안그룹을 만들고 다음 창을 선택하자.

그다음 라우팅 구성을 바로 보겠다.

 

5. ELB 라우팅 구성 (로드밸런싱할 포트구성및 방법)

 

ELB 라우팅 구성

로드밸런싱을할 대상을 지정하는 부분이다.

대상 그룹은 : 로드밸런싱할 그룹 (최소 EC2 2개 이상) 

이름 :  로드밸런싱 그룹 이름을 만들어준다.

대상 유형 : 인스턴스로 선택해 로드밸런싱을 당할 인스턴스를 다음창에서 선택해주면 된다.

프로토콜 : 로드밸런싱을할 EC2 프로토콜.

포트 :  로드밸런싱을할 EC2 포트.

상태검사 :  ELB는 주기적으로 EC2 상태가 끊어졌는지 체킹하는 부분이다.

 

 

6. ELB 대상 등록 (로드밸런싱할 인스턴스 선택)

라우팅 구성이 끝났으면 다음 화면으로 넘어가자. 아래 화면은 다음 화면을 보여준다.

ELB EC2등록

전단계(라우팅 구성)에서 대상 유형을 인스턴스로 했다면 위 해당 페이지가 보일것이다. 이제 로드밸렁싱을 할 인스턴스를 찾아 등록해주면 끝이다. 그러면 ELB는 A레코드로 접근이 가능하며 도메인이 있이다면 CNAME으로 등록해주고 

접속하면 아래와 같이 접속이 되는것을 볼 수 있다.

 

로드밸런싱 인스턴스

 

*Sticky session

Sticky session을 사용하지 않으면 클라이언트들은 접속을 했을때 처음 접속한 서버로 접속이 되는것이 아닌 요청이 될때마다 다른 서버로 접속을한다. (라운드 로빈때문에) 그렇기에 한번 접속한 클라이언트는 계속 같은서버로 유지를 시켜야 세션이 유지가 된다. 그러기 위해 Stick Session을 설정해야 하고, 방법은 매우 간단하다.

 

Sticky session 설정

 

위에 사진을 기준으로 왼쪽 매뉴에서 대상그룹을 클릭하고 대상그룹을 클릭하면 위창 처럼 페이지가 보이는데, 그중 속성에서 고정 부분이 비활성이 되어있다. 속성편집 버튼을 눌러 활성으로 고쳐주면 얼만큼 유지시킬건지 시간을 설정하면 끝난다.