라벨이 LoadBalancer인 게시물 표시

[NCP] DNS 와 로드밸런서 구성하기

이미지
NCP (Naver Cloud Platform) 에서 로드밸런서를 생성하고 도메인은 구성하는 방법에 대해 알아보겠습니다.


1. 서버 생성

로드밸런서 연결에 사용될 웹서버 2대를 생성하고 웹서버를 실행해 줍니다.

지난 포스트 보기 NCP 인스턴스 생성하기 







2. 로드밸런서 생성

NCP 콘솔로 이동해  Loadbalancer 메뉴에서 로드밸런서 생성 버튼을 선택합니다.






로드밸런서 이름을 입력 합니다.





서버 리스트에서 1항 에서 생성한 2개의 서버를 모두 적용 서버로 선택한 후 "다음" 은 선택 합니다.




설정 정보를 확인한 후 "로드밸런서 생성" 을 선택 합니다.






로드밸런서가 생성되면 "접속정보" URL 을 확인 할 수 있습니다.




"접속정보" URL 을 복사하여 웹브라우저를 통해 접속하면 로드밸런서를 통해 서버에 접속되는 것을 확인 할 수 있습니다.






로드밸런서 생성 시 알고리즘이 기본적으로 라운드로빈으로 설정 되므로 웹 브라우저를 새로고침 하면 이중화 구성된 두번째 서버로 페이지가 접속 되는 것을 확인할 수 있습니다.






3. 도메인 등록 

로드밸런서 연결시 사용자 도메인을 사용하기 위해 도메인 등록을 진행합니다.

NCP 콘손화면에서 DNS 메뉴를 선택한 후 "도메인 추가" 를 선택합니다.

사용하고자 하는 도메인 명을 입력하고 "추가" 를 선택 합니다.






도메인이 추가되면 NS 레코드 값 확인이 가능합니다.

해당 레코드 값을 복사하여 도메인 등록기관(가비아 등) 에서 적용하고자 하는 도메인의 네임서버 정보를 복사한 값으로 대체 합니다.




4. 로드밸런서 연결 

도메인이 등록이 완료되면 로드 밸런서를 도메인과 연결해 보겠습니다.
DNS 메뉴에서 "레코드추가" 를 선택하여 레코드를 추가합니다.
아래 예제 에서는 다음과 같이 설정 하였습니다.

레코드   명  : www
레코드타입  : CNAME
레코드   값  : 신규 로드밸런서 접속정보










레코드  등록이 완료…

[AWS] 부하분산과 고가용성을 위한 ELB 구성하기

이미지
이번 포스팅에서는 AWS 에서 제공하는 ELB 서비스에 대해 알아보겠습니다.

ELB 란 ?
AWS 에서 부하분산 및 고가용성을 위해 제공하는 서비스로  Elastic Load Balancer 의 약자 입니다.


ELB 서비스 구성

EC2 인스턴스 생성
ELB 구성을 위해서 먼저 2개의 EC2 인스턴스를 생성 하도록 하겠습니다.
고가용성 구성이 목적이므로 각각의 AZ (Availability Zone)에 하나씩 인스턴스를 생성합니다.





로드밸런서 생성

Instance가 준비되면 Load Balancer 생성을 진행합니다.
좌측 메뉴에서 Load Balancers 를 선택하고  상단 Create Load Balancer 를 선택합니다.



로드 발란서 형식 선택 화면이 표출됩니다.
Classic Load Balancer  의 Create를 선택합니다.



Load Balancer Name 에 이름을 입력하고
Protocol 과 Port 정보를 입력합니다.
Load Balancer Port 와 Instance Port 를 다르게 설정하면  EC2 인스턴스 서비스 포트를 외부에 노출하지 않고 ELB 를 통해서만 접속이 가능하도록 구성할 수 있습니다.
아래  그림과 같이 설정하게 되면
ELB 80 포트로 접속된 서비스를 Instsnce 3000 포트의 서비스로 연결합니다.

입력이 완료되면 Next 를 선택합니다.


Security Group 을 설정합니다.
새로운 Security Group을 생성하여 Load Balancer Port  접속을 허용하도록 구성합니다.

입력이 완료되면 Next 를 선택합니다.


HTTPS를 사용하지 않는 경우 아래와 같은 경고가 표출됩니다.
HTTPS 구성 및 SSL 인증서 설정은 따로 포스팅 하도록 하겠습니다.

우선은  Next 를 선택합니다.



Health Check 설정 화면이 표출됩니다.
Load Balancer 에 연결된 EC2 인스턴스가 정상적으로 동작하는 확인하기 위해 사용됩니다.
Instance Port 가 3000 번으로 …

[AWS] 웹서버 Session 관리를 위한 ELB Sticky Session

이미지
Apache Tomcat 을 기반의 웹서버를 구성하고  AWS  ELB(Elastic load Balancer) 를 활용하여 Multi-AZ(Available Zone) Instance 이중화를 구성하였습니다.

그런데 웹서버에 접속후 로그인 세션이 유지되지 않는 문제가 발생하였습니다.

원인은  ELB 는 트래픽 분산방식이 기본적으로 RoundRobin 방식으로 구현되어 사용자 세션이 유지되지 못하는 현상이었습니다.

이런 문제를 해결하기 위하여 ELB는 Sticky Session 기능을 적용합니다.
최초에 ELB 구성시 Sticky Session 은 Disabe 상태입니다.

확인을 위해 AWS 콘솔에 접속하여 EC2 DashBoard - Loadbalancer 항목으로 이동해 보겠습니다.




Description 탭에 PortConfigration 항목에 설정에서 변경을 원하는 Port 구성에
Edit stickiness를 선택합니다.



Enable Load Balancer Generated Cookie Stickines 를 선택합니다.
Expiration Period 에 세션이 유지될 시간을 "초" 단위로 입력해 줍니다.

이제 ELB 에서 생성한 쿠키를 사용하여 해당 시간동안 ELB 에서는 동일한 서버로 트래픽을 연결하여 세션을 유지하게 됩니다.

간단하게 ELB 를 통한 세션 설정이 완료 되었습니다.



ELB 에서 생성한 Cookie 대신 웹 Application에서 직접 Cookie 를 생성하고 세션을 관리 할수도 있습니다.




Enable Application Generated Cookie Stickiness 를 선택하면 웹서버에서 생성한 쿠키를 사용하여 세션을 유지하게 됩니다. 

이때는 Cookie Name 에  웹서버에서 생성한 Cookie Name 을 입력해 주면 됩니다. 


AWS Console 을 통하여 간단하게 Sticky Session 구성이 완료 되었습니다.