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 리눅스 연결하기
sudo apt update
sudo apt install apache2 libapache2-mod-jk -y
sudo systemctl start apache2
sudo systemctl enable apache2
여기까지 정상적으로 다 설정이 되었다면, web-ec2의 퍼블릭 ip를 복사해서 크롬에서 연결하면 아래와 같은 ubuntu 초기 화면이 출력되는 것을 확인할 수 있다.
4. Database
이제 xshell에서 sql 파일을 가져와 jm-rds에 해당 sql문을 실행시켜 데이터를 삽입해보자.
sudo apt install alien -y
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]을 클릭한다.
아까 내보냈던 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 |