파이널 프로젝트
파이널 프로젝트 중 => AWS EC2 인스턴스, RDS(MySQL DB) 활용
발표 시 AWS 업로드 형태로 시연
수료 이후 => ITWILL 내부 서버로 유지
[EC2]
EC2 식별자 : itwillbs-ec2-class7-team4
퍼블릭 IPv4 주소 : 43.200.179.225
퍼블릭 IPv4 DNS : ec2-43-200-179-225.ap-northeast-2.compute.amazonaws.com
키 페어 : class7-team4-key
도메인(DNS) : class7-team4.itwillbs.com
[RDS]
DB 식별자 : itwillbs-rds-class7-team4
엔드포인트 : itwillbs-rds-class7-team4.cpvkzaqitggt.ap-northeast-2.rds.amazonaws.com
포트 : 3306
마스터 사용자 이름 : root
마스터 암호 : class70718
EC2 생성
인스턴스 시작
이름 : itwillbs-ec2-class7-team4
AMI : Amazon Lunux 2 AMI - 프리 티어 사용 가능
인스턴스 유형 : t2-micro
키페어 : KeyClass
네트워크 설정 : 기존 보안 그룹 선택 - ssh, web
이름 : itwillbs-ec2-class7-team4
AMI : Amazon Lunux 2 AMI - 프리 티어 사용 가능
인스턴스 유형 : t2-micro
키페어 생성 : class7-team4-key
생성한 키페어는 다운로드 파일에서 D드라이브로 옮겨줍니다.
네트워크 설정 : 기존 보안 그룹 선택 - ssh, web
인스턴스 시작
EC2 인스턴스 생성 완료
EC2 실행 - MobaXterm 사용
원격접속
- 원격접속 프로그램 필요
- 설치되어 있는 MobaXterm 사용
- New session -> SSH 선택
Remote host : 서버의 퍼블릭 IPv4 주소
Advanced SSH settings탭 클릭 -> □Use private key 체크 -> 인스턴스 생성 시 지정한 Key 선택
Bookmark settings탭 클릭 -> Session name : ApacheTomcat 변경
=> 변경 하지 않으면 퍼블릭 IPv4 주소가 세션의 이름으로 자동 지정됨
- 설정이 다 됐으면 'OK' 클릭 -> Accept -> login as : ec2-user
=> 원격 접속 완료!!
EC2 인스턴스 업데이트
sudo yum update -y
8. 웹 서버로 동작
- 웹 서비스 프로그램 필요(Apache 또는 Nginx)
- 아파치 웹 서비스 프로그램 사용
sudo yum install -y httpd
=> 아파치 웹 서비스 설치
sudo systemctl start httpd
=> 아파치 웹 서비스 시작
systemctl status httpd
=> 아파치 웹 서비스 동작 확인
=> Active: active (running) 이면 동작 중!
sudo systemctl enable httpd
=> EC2 인스턴스 재시작시 자동으로 웹 서비스가 동작하도록 설정
9. 웹 서비스 동작 확인
- 윈도우의 웹브라우저 주소창에 ApacheTomcat의 퍼블릭 IPv4 주소를 입력
=> index.html이 존재하지 않으므로 Test Page가 보임
- 이때 보안그룹 인바운드 규칙 중 HTTP(TCP 80)가 허용이 되어 있어야 함! 허용되어 있지 않으면 에러페이지가 발생!
10. index.html 생성
sudo vi /var/www/html/index.html
11. 톰캣 서비스 파일 다운로드
- 기본적으로 html 관련 처리는 아파치가 하고, jsp(java) 와 관련된 처리는 톰캣이 하게 됨
- 톰캣 설치 파일을 인터넷을 통해 다운로드
tomcat.apache.org 로 접속
왼쪽의 Download -> Tomcat 9 선택 -> 스크롤을 내려 Core -> tar.gz 항목을 찾음 -> 마우스 우클릭 -> 링크 복사
wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.83/bin/apache-tomcat-9.0.83.tar.gz
<다시 원격접속 창으로 이동>
'wget URL주소' 명령어를 입력하여 인터넷을 통해 Tomcat9 버전을 다운로드 받음
tar xvfz apache-tomcat-9.0.83.tar.gz
=> x : 묶음 풀기
=> v : visual 화면에 묶음 파일들을 표시
=> f : 필수옵션!! 현재 저장매체에 저장하겠다!
=> z : .gz 압축 해제를 동시에 진행
=> 위의 명령어를 입력하면 해당 폴더에 apache-tomcat-9.0.83 디렉토리가 생겨남
12. 압축 해제 파일 위치 이동
- cp(copy) 또는 mv(move) 명령어를 활용
- cp 원본파일 복사될위치(~을 ~로)
mv 원본파일 이동할위치(~을 ~로)
- cp 명령어는 파일을 복사하는 명령어 원본파일이 유지
mv 명령어는 파일을 이동하는 명령어 원본파일이 (해당위치에서)삭제
- mv 명령어는 파일의 이름을 변경하는 용도로도 사용됨
(원본파일 위치와 이동할위치가 같을 경우)
sudo cp apache-tomcat-9.0.83 /usr/local/tomcat
=> 현재 위치한 디렉토리의 apache-tomcat-9.0.83을 /usr/local/ 아래에 복사하되 기존 이름이 아닌 'tomcat' 이라는 이름으로 복사.
※ /usr/local 은 윈도우의 C:\Program Files 폴더와 유사한 역할
명령어를 입력하면 아래와 같은 에러가 발생!!
cp: omitting directory ‘apache-tomcat-9.0.83’
=> apache-tomcat-9.0.83 이 디렉토리여서 발생하는 에러!
=> 본래 cp 명령어는 파일을 복사하는 용도로 사용됨.
=> 이를 해결하기 위해서 -r 옵션을 사용
sudo cp -r apache-tomcat-9.0.83 /usr/local/tomcat
ls /usr/local
=> tomcat 폴더가 보임!
13. JDK 11 설치
sudo yum list java*
=> 'java...' 로 시작하는 패키지(프로그램) 리스트가 보임
=> openJDK11이 보이지 않음
amazon-linux-extras
=> AWS에서 제공하는 패키지를 볼 수 있고, 33번 항목에서 java-openjdk11을 찾을 수 있음
sudo amazon-linux-extras install java-openjdk11 -y
=> openjdk11 설치
java -version
=> 설치된 jdk 버전 확인
javac -version
=> -bash: javac: command not found 메세지가 나오면서 에러 발생
=> 추가 설치 필요
sudo yum install java-11-openjdk-devel -y
javac -version
=> 버전 확인
14. 톰캣 시작
톰캣의 시작과 종료는 스크립트 파일로 설정되어 있고 bin 디렉토리 아래에 위치하고 있음.
(tomcat/bin/startup.sh , tomcat/bin/shutdown.sh )
톰캣을 시작
sudo sh /usr/local/tomcat/bin/startup.sh
톰캣 종료
sudo sh /usr/local/tomcat/bin/stutdown.sh
15. 톰캣 시작 후 톰캣 동작 확인
윈도우 웹브라우저의 주소창에 EC2 인스턴스 퍼블릭IP주소:8080
16. PATH 설정
readlink -f /usr/bin/java
=> 경로 확인
=> /usr/lib/jvm/java-11-openjdk-11.0.20.0.8-1.amzn2.0.1.x86_64/bin/java
sudo vi /etc/profile
- 리눅스 운영체제는 처음 시작될 때 profile 내부에 있는 설정값들을 가지고 시작됨.
:set nu
=> 라인 번호 붙임
i 또는 a 를 입력하여 입력모드 전환
가장 아래쪽 새 라인에 입력
===========================
JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.20.0.8-1.amzn2.0.1.x 86_64
CATALINA_HOME=/usr/local/tomcat
CLASSPATH=$JAVA_HOME/jre/lib:$CATALINA_HOME/lib/tools.jar:$CATALINA_HOME/lib-jsp-api.jar:$CALTALINA_HOME/bin:/sbin
PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin
export JAVA_HOME CATALINA_HOME CLASSPATH PATH
============================
esc -> :wq
source /etc/profile
=> 재부팅 없이 profile 수정된 내용을 적용
17. 소유자 변경
- ec2-user로 startup.sh 와 shutdown.sh를 입력하면 실행 또는 중지가 되지 않음.
- 그 이유는 /usr/local/tomcat 은 root 소유로 되어 있기 때문!
(cp 명령어시 sudo 명령어를 앞에 붙여서 했기 때문)
- tomcat 디렉토리의 소유자를 ec2-user로 변경하면 문제 해결됨
sudo chown -R ec2-user /usr/local/tomcat
=> -R 옵션을 사용하여 tomcat 디렉토리 아래에 있는 모든 서브 디렉토리와 파일들에 대해 소유자를 ec2-user로 변경
※chown : change owner
chown 소유자.소유그룹 변경할 대상
만약, 소유자만 변경할 경우 소유그룹을 생략해도 됨
변경 후 startup.sh, shutdown.sh 를 어느 곳에서든 할 수 있음!!
18. Tomcat 서비스 systemd 에서 제어
- 패키지(프로그램)를 yum 명령어로 설치하는 경우 systemd로 제어가 가능
- systemctl 명령어로 프로그램을 켜고, 끄고, 재시작할 수 있음
- yum 명령어가 아닌 수동으로 패키지를 설치했다면 systemctl 명령어로 제어할 수 없음
- 따라서 수동으로 설치한 패키지를 systemctl 명령어로 제어하기 위해서는 별도의 과정이 필요함
sudo vi /etc/systemd/system/tomcat9.service
- .service 파일은 1)Unit 2)Service 3)Install 3가지 항목으로 구성되어 있음
===============================
[Unit]
Description=Apache Tomcat9
After=syslog.target network.target
[Service]
Type=forking
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecStop=/usr/local/tomcat/bin/shutdown.sh
User=root
Group=root
Umask=0007
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target
=============================
esc -> :wq
sudo systemctl daemon-reload
=> 변경된 내용을 적용
19. systemctl 명령어로 톰캣 서비스 시작/중지
sudo systemctl start tomcat9
sudo systemctl stop tomcat9
sudo systemctl status tomcat9
url에 43.200.179.225 입력시 아래와같은 화면 뜸
RDS 생성
데이터베이스 생성
데이터베이스 생성 방식 선택 : 표준 생성
엔진 옵션 : MySQL
템플릿 : 프리 티어
설정>
DB 인스턴스 식별자 : itwillbs-rds-class7-team4
스토리지 자동 조정 활성화 체크 해제
컴퓨팅 리소스 : EC2 컴퓨팅 리소스에 연결 안함
퍼블릭 액세스 : 예
데이터베이스 포트 : 3306
VPC 보안 그룹(방화벽) : RDS-EC2-Connection-SecurityGroup(기존 방화벽 그룹 선택)
※ 만약 보안 그룹이 없으면 "[ AWS EC2 nginx 설정 ] - 2(RDS 연동 추가)" 참고해서 새로 생성!!
추가구성>
□ 자동 백업을 활성화합니다. 체크 해제
□ 암호화 활성화 체크 해제
□ 마이너 버전 자동 업그레이드 사용 체크 해제
RDS 생성 완료
프로젝트 아이티윌 서버에 업로드 하기
프로젝트 서버 업로드
1) 프로젝트 주소
1조 : http://c7d2307t1.itwillbs.com
2조 : http://c7d2307t2.itwillbs.com
3조 : http://c7d2307t3.itwillbs.com
4조 : http://c7d2307t4.itwillbs.com
2) 파일 업로드 필요사항
- war 파일
- 원격 접속 프로그램(MobaXterm)
- 파일 업로드 프로그램(MobaXterm)
3) war 파일 만들기
- 이클립스의 왼쪽 프로젝트명에서 우클릭 export -> war 파일
4) MobaXterm 접속
- 공통
Remote host : itwillbs.com
- 포트 변경
1조 : 23071
2조 : 23072
3조 : 23073
4조 : 23074
- 유저명 : root / 비밀번호 : ssh
5) 파일 업로드
- MobaXterm 접속 후 pwd를 입력해 경로가 webapps 인 것을 확인
- 왼쪽 항목의 sFTP 클릭(노란색 동그라미)
=> 명령어 또는 엔터키 입력 시 /root 에서
/usr/local/tomcat/webapps 경로로 변경됨
- .war 파일을 드래그 앤 드롭
- 자동으로 war 파일을 인식하여 압축해제 후 폴더명 만듦
5-2) AWS의 경우 ec2-user 유저로 접속이 되어져서 webapps 디렉터리에 바로 war 파일을 업로드 할 수 없음
1) 먼저 /home/ec2-user 에 war 파일을 업로드
=> MobaXterm 왼쪽 sFTP를 활용
2) 터미널 창에서
sudo cp(또는 mv) 파일명.war /usr/local/tomcat/webapps/
6) 확인
- 웹 브라우저에서 http://프로젝트주소/프로젝트명 입력
예시) http://c7d2307t1.itwillbs.com/trade
접속 경로
1조 : http://c7d2307t1.itwillbs.com/trade/main/Main.com
3조 : http://c7d2307t3.itwillbs.com/3teamProject/Main.in
'프로젝트' 카테고리의 다른 글
[3. MES 프로젝트] 테이블 생성하기 (0) | 2023.12.13 |
---|---|
전자서명 api 참고자료 (0) | 2023.12.11 |
[MES 프로젝트] 2. 요구사항 정의서 (0) | 2023.12.06 |
[MES 프로젝트] 1. 프로젝트 주제선정 (0) | 2023.12.05 |
쇼핑몰 개발 04. 개발 css 템플릿 안쓰고 직접 만들기 (1) | 2023.11.24 |