AWS ELB ( 2 Tier ) 생성
AWS ELB 생성
- 이번 장에서는 생성된 인스턴스들을 로드밸런싱하는 방법에 대해 알아보도록 하겠습니다.
- ELB 또한 중요한 개념이니, ELB에 대한 학습을 원하는 분들은 AWS ELB를 참고해주세요.
AWS ELB 생성
- ELB에 대한 생성 순서은 아래의 순서대로 진행합니다.
1. 인스턴스 생성
2. 대상그룹 생성
3. 로드 밸런서 생성
인스턴스 생성
- 먼저 기본 VPC에 가용영역 a와 c에 한 대씩, 총 두 대의 인스턴스를 생성해주세요.
- 보안 그룹은 80은 모두에게, 8009는 서로간만 통신이 가능하게 설정해주세요.
- 그 후, a,c 인스턴스에 Apach와 Tomcat을 설치 및 연동시켜주세요.
$ apt-get -y update
$ apt-get -y upgrade
$ apt-get install -y apache2
# apache2 설치
$ systemctl enable apache2
$ ufw allow 80/tcp
# apache2 자동시작 및 방화벽 허용 등록
$ apt-get install -y libapache2-mod-jk
# 연동 모듈
$ vi /etc/apache2/workers.properties
workers.tomcat_home=/usr/share/tomcat8
workers.java_home=/usr/lib/jvm/java-8-openjdk-amd64
worker.list=tomcat8
worker.tomcat8.port = 8009
worker.tomcat8.host = [ 서로 다른 인스턴스 IP ]
worker.tomcat8.type = ajp13
worker.tomcat8.lbfactor = 1
# 워커 파일 생성
$ vi /etc/apache2/mods-available/jk.conf
JkWorkersFile /etc/libapache2-mod-jk/workers.properties
--> JkWorkersFile /etc/apache2/workers.properties
$ vi /etc/apache2/sites-available/000-default.conf
DocumentRoot /var/www/html
--> DocumentRoot /var/lib/tomcat8/webapps/ROOT
SetEnvIF Request_URI "/*.html" no-jk
JkMount /*.jsp tomcat8
# jsp 파일만 tomcat에서 실행
$ vi /var/www/html/index.html
각 인스턴스에 따라 apache1 and apache2를 입력합니다.
$ systemctl restart apache2
- Apache 설치
$ apt -y update
$ apt -y upgrade
$ apt-get install lrzsz
# JAVA 간편 다운로드를 위한 Irzsz 설치
$ apt-get install -y openjdk-8-jre
$ apt-get install -y openjdk-8-jdk
# JAVA 설치
$ which javac
$ readlink -f /usr/bin/javac
# 자바 위치 확인
$ vi /etc/profile
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH=$JAVA_HOME/bin/:$PATH
export CLASS_PATH=$JAVA_HOME/lib/:$CLASS_PATH
$ source /etc/profile
# 환경변수 설정
$ echo $JAVA_HOME
$ $JAVA_HOME/bin/javac -version
# 확인
$ apt-get install tomcat8 -y
# tomcat8 설치
$ /usr/share/tomcat8/bin/version.sh
# tomcat 설치 확인
$ ufw allow 8080/tcp
$ ufw allow 8009/tcp
# 방화벽 포트 열기
$ systemctl enable tomcat8
# tomcat 자동시작
$ apt-get install -y libapache2-mod-jk
# 연동 모듈 설치
$ vi /etc/tomcat8/server.xml
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> 주석 헤제
$ systemctl restart tomcat8
$ vi /var/lib/tomcat8/webapps/ROOT/index.jsp
<%@ page language="java" contentType="text/html; charset=utf-8"%>
<!-- 로컬 정보 -->
Local IP : <%= request.getRemoteAddr() %><br>
Local Host : <%= request.getRemoteHost() %><br>
<!-- 서버의 기본 경로 -->
Context : <%= request.getContextPath() %> <br>
URL : <%= request.getRequestURL() %> <br>
URI : <%= request.getRequestURI() %> <br>
Path : <%= request.getServletPath() %><br>
Server Port : <%= request.getServerPort() %><br><br>
서버 Root 경로 : <%= application.getRealPath("/") %><br>
서버 Root 경로 : <%= request.getRealPath("/") %><br>
<%
String strServerIP = request.getServerName(); // 서버 ip
String strServerPort = Integer.toString(request.getServerPort()); // 서버 port
String serverRootUrl = "http://"+ strServerIP +":"+ strServerPort +"/"; // Root 경로
out.println(serverRootUrl );
%>
- Tomcat 설치
Application Load Balancer 생성 ( 이하 ALB )
- ALB에 대한 설명은 ALB Link를 참조해주세요.
- ALB를 생성하기 위해 메뉴에서 로드 밸런서 -> 로드밸런서 생성을 클릭합니다.
- 로드 밸런서의 유형 중 ALB를 선택합니다.
- 위의 그림과 같이 ALB의 구성에 대한 설정을 진행합니다.
- 체계의 인터넷 연결은 외부대역과의 통신을 위한 설정이고, 내부는 서브넷끼리의 통신을 위한 설정입니다.
- 리스너는 로드 밸런서에서 읽은 포트를 설정합니다.
- 가용 영역은 로드 밸런서가 활성화될 가용 영역을 지정합니다.
- 보안그룹은 외부와의 통신을 위해 80/tcp를 모두에게 개방하게 설정합니다.
- 위의 그림과 같이 라우팅 구성에 대한 설정을 진행합니다.
- 대상 유형은 라우팅의 대상이 될 서비스를 지정하는 설정입니다.
- 프로토콜과 포트는 대상 유형의 라우팅을 지정하는 설정입니다.
- 상태검사는 경로로 접속하였을 때, 접속이 가능하면 Health, 불가능하면 Unhealth로 나타냅니다.
- 설정이 끝나면, 대상 등록에 인스턴스를 등록합니다.
- ELB의 생성이 완료되면, DNS 접속을 통해 확인할 수 있습니다.
- 또한 대상 그룹으로 이동하여 healthy 상태를 체크할 수 있습니다.
Network Load Balancer 생성 ( 이하 NLB )
- NLB에 대한 설명은 NLB Link를 참조해주세요.
- NLB 생성을 위해 다시 로드밸런서로 돌아와, 로드 밸런서 생성을 클릭합니다.
- 로드 밸런서 유형에서 NLB를 선택합니다.
- NLB의 구성을 위와 같이 설정합니다.
- 8009 포트는 톰캣과 아파치이 연동을 위한 포트 입니다.
- 라우팅 테이블을 구성합니다.
- 프라이빗 주소의 8009 포트로 인스턴스들을 등록합니다.
$ vi /etc/apache/workers.properties
worker.tomcat8.host = [ NLB DNS ]
- Apache의 워커 파일은 NLB의 DNS로 설정합니다.
- 설정해 두었던 ALB로 접속하여 index.jsp로 접속하면 톰캣을 통해 jsp로 접속하는 것을 확인 할 수 있습니다.
- 대상그룹 또한 healthy를 확인할 수 있습니다.
Classic Load Balancer 생성 ( 이하 CLB )
- CLB에 대한 설명은 CLB Link를 참조해주세요.
- CLB를 생성하기 위해 다시 로드 밸런서 생성을 클릭하세요.
- 로드 밸런서 유형 중 CLB를 클릭하세요.
- ELB와 동일하게 외부대역으로 설정합니다..
- 보안그룹 또한 기존 ELB-sg를 사용합니다.
- 상태검사를 설정합니다.
#
- 인스턴스를 추가하고, 로드 밸런싱을 활성화합니다.
#
- CLB의 DNS로 접속해보면, ELB와 같은 결과를 얻을 수 있습니다.
#
- CLB또한 상태검사가 가능합니다.
마지막 수정일자