마짱짱의 지식창고

[GCP] Ubuntu 18.04 Apache 2대 - Tomcat 2대 고가용성 부하분산 본문

Cloud/GCP

[GCP] Ubuntu 18.04 Apache 2대 - Tomcat 2대 고가용성 부하분산

마짱짱 2021. 2. 26. 08:40
반응형

0. 머리말

아파치와 톰캣 각각 두대씩 가동하여 LB를 이용하여 연동했습니다.

1. Architecture

OS : Ubuntu 18.04

구축순서

0. 구축하기전 참고사항

1. 모든 VM 패키지 업데이트

sudo apt update

2. 방화벽설정

Apache 통신을 위해 subnet01 80 open

Tomcat 통신을 위해 subnet02 8080, 8009 open

 

1. Apache 설치 및 설정

1. Apache 설치

sudo apt install -y apache2

2. 인스턴스 그룹 생성

3. External-LB 생성

4. External-LB IP로 접속 가능한지 확인


2. Tomcat 설치 및 설정

1. Tomcat 설치 (Tomcat VM)

sudo apt install -y tomcat8*

2. 접속포트와 AJP 포트 주석해제

(AJP란 ? Apache Jserv Protocl의 약자로, WebServer에서 받은 요청을 WAS로 전달해주는 프로토콜이다.)

sudo vi /etc/tomcat8/server.xml 

 

3.  Tomcat 재시작

sudo /usr/share/tomcat8/bin/shutdown.sh
sudo /usr/share/tomcat8/bin/startup.sh

* Trouble - Log 위치를 찾을 수 없을경우

SE:   /usr/share/tomcat8
Using CATALINA_HOME:   /usr/share/tomcat8
Using CATALINA_TMPDIR: /usr/share/tomcat8/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/share/tomcat8/bin/bootstrap.jar:/usr/share/tomcat8/bin/tomcat-juli.jar
touch: cannot touch '/usr/share/tomcat8/logs/catalina.out': No such file or directory
/usr/share/tomcat8/bin/catalina.sh: 464: /usr/share/tomcat8/bin/catalina.sh: cannot create /usr/share/tomcat8/logs/catalina.out: Directory nonexistent
해결법

cd /usr/share/tomcat8/
sudo ln -s /var/log/tomcat8/ logs

 

 

4. Tomcat VM Instance Group 생성

5. Internal-LB 생성 (TCP 부하분산, VM사에서만, 단일리전에서만)

 


3. Apache - Tomcat 연동

1. Apache에서 Tomcat연동을 위한 mod_jk 설치 (apache VM)

sudo apt-get install libapache2-mod-jk

  * mod_jk는 Apache의 모듈중 하나로 AJP를 사용하여 apache와 tomcat 통신을 위해 사용한다.

 

 

2. workers.properties 파일 생성

sudo vi /etc/apache2/workers.properties

# tomcat file path
workers.tomcat_home=/usr/share/tomcat8

# Java File Path
workers.java_home=/usr/lib/jvm/java-11-openjdk-amd64

# Name
worker.list=tomcat1

# Network Type
worker.tomcat1.type = ajp13
# Network Port
worker.tomcat1.port = 8009
# Tomcat server IP
worker.tomcat1.host = 10.0.1.12
# Lb factor
worker.tomcat1.lbfactor = 20

지금 아키텍쳐에따라 Tomcat Server IP는 Internal-lb 를 작성에준다

 

3. jk.conf 파일 수정

workers.properties 설정 잡아주기 위해서이다.

sudo vi /etc/apache2/mods-available/jk.conf 

JkWorkersFile /etc/apache2/workers.properties

 

4. 000-default.conf 수정

tomcat의 Web Page 위치 설정

JKMount 파일유형에대해 해당 톰캣 실행한다.

sudo vi /etc/apache2/sites-available/000-default.conf

        DocumentRoot /var/lib/tomcat8/webapps/ROOT/
        JKMount /* tomcat1

5. Apache 재시작

sudo systemctl restart apache2

결과

External-LB 의 IP 접속시 Tomcat에 설정된 Index.html 화면확인.

톰캣하나를 정지하고 확인해도 보인다.

 


참고글

all-record.tistory.com/188 -> apache2 tomcat 연동

rimkongs.tistory.com/87 -> tomcat 로그 경로설정문제

 

 

반응형

'Cloud > GCP' 카테고리의 다른 글

Data Warehouse 와 Data Mart  (0) 2021.04.21
[GCP] Load Balancing & Auto Scaling  (0) 2021.04.12
[GCP] Cloud IAM  (0) 2021.04.07
[GCP ] Storage Class(Standard, Nearline, Coldline, Archive)  (2) 2021.04.07
[GCP] VM Instance 생성, 삭제  (0) 2021.02.23