3tier 아키텍쳐 구성하기_1
혼자 공부를 계속 하고 있고, 각각의 서비스는 사용왔다
또한, 아키텍쳐 자체는 draw.io를 통해서 이렇게 저렇게 그려봤지만, 본격적으로 서비스를 다 엮어서 해본적은 없기 때문에 한번 구성해봐야겠다는 생각이 들었다
● 아키텍쳐

● 네트워크
VPC 및 서브넷 설정
VPC 네트워크 대역 : 10.0.121.0/24 => 서브네팅 /28
서브넷의 개수 : 8개
서브넷 주소

=> 서브넷은 이렇게 구성했음
- vpc

- subnet

=> 구성도

- nat table

=> private subnet에 있는 서비스들이 공인망으로 나가기 위한 라우팅
- igw table

=> nat(서비스들의 아웃바운드 트래픽) + bastion-host => igw => 공인망
● 서비스
- bation host => 10.0.121.16/28

- web1 => 10.0.121.32/28

- web2 => 10.0.121.48/28

- ALB application loadbalancer

===> eip / 공인망이 박혀있는 서브넷들을 장착

=> target group -> web1 / web2


==> 외부 공인망 -> ALB 도메인 -> webserver 접근 및 로드밸런싱 확인
- was1 => 10.0.121.64/28
sudo wget https://dlcdn.apache.org/tomcat/tomcat-8/v8.5.95/bin/apache-tomcat-8.5.95.tar.gz
sudo yum install java-1.8*
java -version => 버전확인
tar xvfz apache-tomcat-8.5.95.tar.gz => 압축해제
mv apache-tomcat-8.5.95 /usr/local/tomcat8.5
cd /usr/lib/jvm/

java-1.8.0-openjdk-1.8.0.382.b05-1.amzn2.0.2.x86_64
=> 받아온 jdk를 환경변수로 지정
sudo vi /etc/profile
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.382.b05-1.amzn2.0.2.x86_64
export CATALINA_HOME=/usr/local/tomcat8.5
export CLASSPATH=.:$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar:$CATALINA_HOME/lib/jsp-api.jar:$CATALINA_HOME/lib/servlet-api.jar
export JDK_HOME=$JAVA_HOME
export PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin


=> profile 파일을 쓰겠다고 말해줌 -> 확인
sudo vi /usr/local/tomcat8.5/conf/server.xml
-->
<Connector port="8080" protocol="HTTP/1.1"
URIEncoding="UTF-8" -> 이거 추가
connectionTimeout="20000"
redirectPort="8443"
maxParameterCount="1000"
/>
cd /usr/local/tomcat8.5/bin
chmod +x startup.sh
chmod +x shutdown.sh
vi /usr/lib/systemd/system/tomcat.service
[Unit]
Description=tomcat 8.5
After=network.target syslog.target
[Service]
Type=forking
User=root
Group=root
# 실행 파일 경로
ExecStart=/usr/local/tomcat8.5/bin/startup.sh
# 중지 파일 경로
ExecStop=/usr/local/tomcat8.5/bin/shutdown.sh
# 디렉토리 권한 770 && 새로운 파일 권한 660
UMask=0007
[Install]
WantedBy=multi-user.target

=> 로컬에서 지정한 포트로 잘 접근이 되는 것을 확인
+ 내용이 들어오는것을 확인 -> 잘실행되는것을 확인

=> 쉘 스크립트 실행 -> 잘 실행되고 / 종료 되는것을 확인
- was2 => 10.0.121.80/28
=> 2도 똑같이 진행해주고
코드를 짜임새 있게 잘 수 있는 단계가 아니기도 하고, 빠른시일내에 간단하게 구성을 하려는것이기 때문에,
alb => web 서버로 접근하면 web => nlb 로 트래픽을 뿌려주어 => was에 넣어놓은 내용이 보이게 할 것임 => 당연히 web 및 was는 직접 접근할 수 없음

web을 프록시 서버로 구성 -> was 서버의 보안 강화 및 캐싱을 통한 성능 향상을 위함
==> 가상호스트를 통해서 구현


=> 성공적으로 접근이 가능한것을 볼 수 있었음
=> 내일은 DB와 was를 연결해볼 것임
===> RDS를 사용하면 좋겠지만, 일단 ec2-instance에서 먼저 연결을 해보고 성공적으로 프로젝트가 끝나면 추후 RDS에 연결하고, 다른 서비스들도 사용해서 구성을 해볼 생각임