aws console 환경에서 두 인스턴스에 각각 apache, tomcat을 설치하여
연동해 보았다. 건던허개 apache와 tomcat이 동일한 결과가 출력된다.
내가 만든 다이어그램은 다음과 같다.
해당 아키텍쳐를 구현하였을 때 클라이언트를 public 환경에서 사용가능한 subnet에 위치하였다.
web서버와 was는 private 환경에 위치한 곳에 배치하였다.
amazon web console에 접속하여 tomcat instance를 하나 생성해주도록 한다.
https://console.aws.amazon.com/ec2 에서 tomcat instance를 생성한다.
sudo yum install tomcat -y
cd /etc/tomcat/
sed -i -e '62i\ <Connector port="8010"' server.xml
sed -i -e '63i\ protocol="AJP/1.3" address="0.0.0.0" secretRequired="false"' server.xml
sed -i -e '64i\ redirectPort="8443" URIEncoding="UTF-8"' server.xml
sed -i -e '65i\ useBodyEncodingForURI="true" />' server.xml
mkdir -p /usr/share/tomcat/webapps/ROOT
echo '<h1> Hello tomcat Server </h1>' > index.html
mv index.html /usr/share/tomcat/webapps/ROOT/index.html
systemctl restart tomcat
tomcat instance를 생성하였다면 tomcat의 private ip를 기록해 둔다.
나같은 경우는 10.0.2.8 대역이였다.
web instance의 userdata는 다음과 같다.
실습을 구성할 때 tomcat ip는 임의로 수정하면 된다.
#!/bin/bash
sudo yum install httpd -y
sudo yum install httpd-devel pcre-devel -y
yum install gcc libtool -y
wget https://dlcdn.apache.org/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.48-src.tar.gz
tar zxvf tomcat-connectors-1.2.48-src.tar.gz
cd tomcat-connectors-1.2.48-src/native/
./configure --with-apxs=/usr/bin/apxs
make
make install
cd apache-2.0/
cp mod_jk.so /etc/httpd/modules/
cd /etc/httpd/conf.modules.d/
cat << EOF > mod_jk.conf
LoadModule jk_module "/etc/httpd/modules/mod_jk.so"
JkWorkersFile /etc/httpd/conf/workers.properties
JkLogFile /etc/httpd/logs/mod_jk.log
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
JkRequestLogFormat "%w %V %T"
EOF
cd /etc/httpd/conf
cat << EOF > workers.properties
worker.list=tomcat
worker.tomcat.port=8010
worker.tomcat.host=10.0.2.8
worker.tomcat.type=ajp13
worker.tomcat.lbfactor=1
EOF
cat << EOF > demo
LoadModule jk_module modules/mod_jk.so
<VirtualHost *:80>
ServerName localhost
JkMount /* tomcat
</VirtualHost>
EOF
cat demo >> httpd.conf
systemctl start httpd
systemctl enable httpd
8010포트를 통해 tomcat과 apache 간의 연결이 될 것이다.
이제 web instance 에서 접속을 시도해본다.
정상적으로 출력된 것을 확인 할 수 있다.
Web instance가 연결된 로드벨런서 뒤쪽에 demo를 입력하면 web instance와 동일한 결과물이 출력된다.