본문 바로가기
AWS

WEB & WAS, RDS 구성하기 2

by little_drops_or_water 2024. 6. 24.

1 - 2번 활동은 이전 포스트를 참고하세요.

2024.06.24 - [AWS] - WAS & WEB, RDS 구성하기

 

WAS & WEB, RDS 구성하기

위 포스트에서 나오는 웹페이지 화면 및 코드, DB는 작성자 본인이 제작한 것이 아닌, [SK 쉴더스 루키즈] 프로그램에서 제공한 것들을 바탕으로 사용하였음을 미리 알려드립니다.  EC2, RDS, VPC 등

make-the-mighty-ocean.tistory.com

 

3. WEB Server

xshell 사용하여 web-ec2 리눅스 연결하기

web-ec2 xshell에서 연결 완료된 화면

sudo apt update

 

sudo apt install apache2 libapache2-mod-jk -y

 

sudo systemctl start apache2
sudo systemctl enable apache2

 

여기까지 정상적으로 다 설정이 되었다면, web-ec2의 퍼블릭 ip를 복사해서 크롬에서 연결하면 아래와 같은 ubuntu 초기 화면이 출력되는 것을 확인할 수 있다. 

정상 설정되었을 때, web-ec2의 화면

 

4. Database

이제 xshell에서 sql 파일을 가져와 jm-rds에 해당 sql문을 실행시켜 데이터를 삽입해보자.

 

sudo apt install alien -y

위 화면이 나타나면 그냥 Tab 누른 뒤에 'Ok'에서 Enter 치기

 

wget https://download.oracle.com/otn_software/linux/instantclient/1916000/oracle-instantclient19.16-basic-19.16.0.0.0-1.x86_64.rpm

wget https://download.oracle.com/otn_software/linux/instantclient/1916000/oracle-instantclient19.16-sqlplus-19.16.0.0.0-1.x86_64.rpm

sudo alien -c oracle-instantclient19.16-*.rpm (시간 오래 걸림)
sudo dpkg -i oracle-instantclient19.16-*.deb

 

위까지 정상적으로 다 실행이 되었다면 sqlplus 실행하여 버전을 확인하였을 때, sqlplus의 버전이 출력될 것이다. 

sqlplus -V

 

이제 해당 sqlplus에 한국어 패치를 하여 한국어가 깨지지 않고 정상적으로 출력되게 설정한다. 이를 설정한 뒤, sqlplus를 실행하면 '사용자명 입력 : '이라고 정상적으로 출력될 것이다. 

export NLS_LANG=KOREAN_KOREA.AL32UTF8
sqlplus

한국어가 정상 출력된다면 Ctrl+C를 누르고 Enter을 쳐서 나온다. 

 

그 뒤 해당 창 옆에 '+'를 클릭하여 새 창을 연 뒤, 본래 컴퓨터에 저장되어 있는 sql 파일을 가져와서 web-ec2에 보낸다. 이때 코드 뒤에 무조건 ' :. '을 붙여야 한다.

scp "[db_insert.sql 경로]" ubuntu@[web-ec2 Public IP 주소]:.

 

그 뒤에 다시 web-ec2 창으로 가서 ls 명령어를 실행하면 .sql 파일이 정상적으로 저장되어 있는 것을 확인할 수 있다. 

 

xshell(web-ec2)에서 jm-rds로 접근하기 위해서는 jm-rds의 Security Group의 인바운드 규칙을 수정해야 한다. 

 

이제 해당 sql 파일을 jm-rds에서 실행시켜 테이블 및 데이터베이스를 저장한다. 

sqlplus [DB 계정]/\"[DB 암호]\"@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=[RDS 엔드포인트 주소])(PORT=1521))\
(CONNECT_DATA=(SID=chmdb))) < db_insert.sql

 

 

5. WAS Server

 

was-ec2에 연결한 뒤에, jre, jdk, apache2, eclipse-installer, chrome-installer 등을 본 PC에서 다운받은 뒤, 이를 복사하여 was-ec2에 붙여넣어 저장한다. 

그런 뒤에 eclipse-installer을 다운/세팅한다. 

 

 

 

 

Question 화면이 나타난다면 'Yes To All', 그 뒤의 것들은 전부 'Yes'를 클릭한다. 

 

가져온 code 폴더에서 code > src > main > resources > config > spring > context-datasource.xml(db 연결 정보가 적혀있는 파일)을 연다. 아래의 내용을 파일에 작성 및 변경하여 저장한다. 

- "jdbc:oracle:thin:@[rds 엔드포인트]:1521:[초기 db 이름]"

- username : chmainadmin (rds 제작시 설정했던 db 마스터 이름)

- password : 비밀번호 (rds 제작 시 설정했던 db 비밀번호)

 

파일을 저장한 후, 루트 폴더를 클릭해 Maven > Update Project.. 을 클릭하여 프로젝트를 업데이트한다. 

 

 

그 뒤 File > Export에 접근하여 WAR file을 선택하고, ROOT.war을 내보낸다. 

 

was-ec2 PC의 region을 Korea로 변경한다. 

 

다운받은 jre_1.8.0_202.zip의 압축을 해제한다. 

 

apache-tomcat-9.0.12.exe를 실행하여 설치한다. 

 

 

 

 

 

이때, 위와 같이 Path to executable 경로가 [ C:\Program File\Apache Software Foundation\ ] 인 경우, Start up Type이 제대로 수정되지 않을 수 있기 때문에 아래의 절차에 따라 확인 필요.

 

Apache를 잠시 중지하고, C:\Program File\Apache Software Foundation\Tomcat 9.0\bin\Tomcat9w.exe를 오른쪽 마우스 클릭하여 [Run as administrator]을 클릭한다. 

startup type이 Automatic인지 확인하고, 그렇지 않으면 변경해주기

 

아까 내보냈던 ROOT.war을 복사하여 Tomcat 9.0\webapps에 저장한다. 이때 원래 있던 ROOT 폴더는 삭제해줘야 한다.

 

그런 뒤에 다시 apache를 실행한 뒤, was-ec2의 크롬에서 localhost:8080으로 접속하면 웹페이지가 정상적으로 출력된다. 

 

이제 방화벽 설정을 하여 8009, 8080, 8443 포트를 완전히 열어준다. 

 

이후 본 PC에서 [ was-ec2의 퍼블릭 ip:8080 ]으로 접근하면 정상적으로 웹페이지가 출력된다.

 

 

6. WEB-WAS 연동하기

xshell에서 아래의 코드를 입력하여 workers.properties를 열어 코드를 수정한다. 

- workers.java_home : 원래는 아예 없기 때문에 was-ec2에 저장되어 있는 jdk의 파일 루트를 입력, 저장

- worker.ajp13_worker.host : was-ec2의 private ip 입력

sudo vim /etc/libapache2-mod-jk/workers.properties

esc+:을 클릭한 뒤 wq!를 입력, 엔터를 쳐서 해당 파일을 저장하고 나온다. 

 

000-default.conf에 접근하여 " JKMount /* ajp13_worker "을 추가하고, 마찬가지로 이를 저장한다. 

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

 

위 과정이 성공적으로 진행되었다면 web-ec2의 퍼블릭 ip를 입력하였을 때 was-ec2에 업로드했던 웹페이지에 정상적으로 접근될 것이다.

'AWS' 카테고리의 다른 글

Network ACL & Security Group 설정  (0) 2024.06.25
AutoScalingGroup 구성하기  (0) 2024.06.25
WAS & WEB, RDS 구성하기  (0) 2024.06.24
AWS RDS 사용시 주의 사항 - 잘못하면 요금 폭탄..💣  (0) 2024.04.10
AWS RDS - MySQL 연동하기  (1) 2024.03.29