-
73일차 - 프로젝트 빌드 및 배포AWS|Docker 2024. 5. 13. 15:46
STS Build
- 실제로 빌드되지 않고 가상 톰캣으로 돌아가 성능 저하나 오류가 빈번하게 발생했었다
- 몇명만 서버에 접속해도 뻗어버린다
먼저 가상 톰캣이 위치한 .metadata 폴더로 이동하고
wtpwebapps 에는 실제 프로젝트의 클래스, JSP 파일들이 들어있다
Tomcat
C드라이브에 아파치톰캣 폴더로 이동하자
- BIN : 실행 파일들을 담고 있는 폴더
- CONF : 설정 파일들을 담고 있는 폴더 web.xml server.xml 등
- LOGS : 로그 파일들을 담고 있는 폴더
- WEBAPPS : 소스 (WAR) 파일을 담고 있는 폴더
bin 폴더
- .sh 리눅스 운영체제에서 실행 파일이다 반대로 bat 는 윈도우 운영체제의 실행파일이다
- 더블클릭해서 실행하지 말고 탐색기의 주소에서 cmd 를 실행하자
서버가 켜지면서 이전에 빌드했던 프로젝트가 성공적으로 페이지가 로딩된다
Context Loc
C:\apache-tomcat-9.0.87\webapps
- ROOT 로 잡아두면 브라우저에서는 / 로 시작해야한다
- webapps 폴더 안에 있는 폴더의 이름이 요청명이다
빌드 작업
실패 메시지가 뜬다면 1. 코드에 오류가 있을시, 2. 자바 버젼이 안맞는다
- 위에 있는 폴더를 가지고 압축 파일을 만든것이다 이애기를 왜하냐? 이클립스가 빌드하다보며는 xml 파일이 가끔씩 빼먹는 실수를 한다
- 빌드된 war 파일을 톰캣의 webapps 에 옮겨둔다
- 이제 톰캣 서버를 실행하면 WAR 파일을 읽어서 폴더로 압축풀기한다
server.xml 에 /photo 요청에 대한 upload 폴더 경로를 매핑시켜둔다
정리
1. STS 에서 빌드해준다
2. 빌드 작업 후 XML 파일이 누락된것이 있는지 확인한다
3. 실제 서버에 WAR 파일을 옮겨둔다
4. 서버 실행 후 이상 없는지 확인한다
데이터베이스에서 덤프 뜨기
# dump 는 데이터베이스를 복사해서 백업하는 작업을 의미 # 본래는 서버에 접속해서 dump 명령어로 가져와야 한다. # 서버에 접속할수 없어서 dbever 를 통해 덤프 백업 진행 예정 # dbever 로 할 경우 데이터의 양과 테이블의 규모가 크면 잘 되지 않는다. # 1. 덤프 파일을 받아낸다. # 2. 덤프받은 파일을 복원하기 위해 같은 이름의 데이터베이스를 생성한다. create database gdj78_semi_BeansMarket; show databases; # 3. 덤프 복원(버전에 따라서 다르다.) # [mysql|mariadb] -u root -p [데이터베이스명] < [덤프파일위치] mariadb -u root -p gdj78_semi_BeansMarket < D:\backup.sql # 4. 복원 확인 use gdj78_semi_BeansMarket; show tables;
공용 데이터베이스에 있는 것을 로컬로 가져오는 작업을 한다
- dump 는 데이터베이스를 복사해서 백업하는 작업을 의미한다
- 본래는 서버에 접속해서 dump 명령어로 가져와야 한다
- 서버에 접속할 수 없어서 dbever 를 통해 덤프 백업 작업을 진행한다
- dbever 로 할 경우로 데이터의 양과 테이블의 규모가 크면 잘되지 않는다
# 2. 덤프받은 파일을 복원하기 위해 같은 이름의 데이터베이스를 생성한다.
# 3. 덤프 복원(버전에 따라서 다르다.)
# [mysql|mariadb] -u root -p [데이터베이스명] < [덤프파일위치]
mariadb -u root -p gdj78_semi_BeansMarket < D:\backup.sql마지막으로 데이터베이스 주소와 아이디 비밀번호를 올바르게 수정하자
서버에 접속했을때 로컬로 데이터베이스가 옮겨진것을 확인할 수 있다
AWS
회원가입한 후 콘솔로 이동하자
https://ap-northeast-2.console.aws.amazon.com/console/home?region=ap-northeast-2#
https://ap-northeast-2.console.aws.amazon.com/console/home?region=ap-northeast-2
ap-northeast-2.console.aws.amazon.com
인스턴스는 서버라고 한다
아마존 리눅스 선택
프리티어 사용가능만 무료이다
서버에 접속할때 사용할 키를 생성이므로 아주 중요하다
서버에 접속할때 Putty 를 사용할꺼니깐 ppk 로 선택한다
그러면 생성된 ppk 파일을 확인할 수 있다
aws 접속
https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
Download PuTTY: latest release (0.81)
This page contains download links for the latest released version of PuTTY. Currently this is 0.81, released on 2024-04-15. When new releases come out, this page will update to contain the latest, so this is a good page to bookmark or link to. Alternativel
www.chiark.greenend.org.uk
Putty 실행화면이다
아이디는 ec2-user 로 입력한다
국제 시간 표준으로 설정되어있기 때문에 시간을 변경해주어야한다
https://filezilla-project.org/
아무거나 파일 하나만 넣어보자 서버에서 잘 들어갔는지 ls -al로 확인하자
규칙 번호가 낮을 수록 우선순위가 높아진다
서버를 꺼주자 한 10분 뒤에 꺼진다
# ec2-user # 현재 경로 출력 pwd # 현재 위치의 파일 및 폴더 리스트 # -a 옵션은 모든것을 상세하게 보여달라 ls -a date # 현재 시간 확인 timedatectl # 현재 타임존이 어디인지 # 우리가 선택할 타임존 확인 timedatectl list-timezones | grep Asia/Seoul # 타임존 변경(서버가 재시작 후에도 타임존을 확인 할 것) timedatectl set-timezone Asia/Seoul # yum <- 설치 툴(centos) sudo yum update -y
오늘 배운거
프로젝트 빌드 작업
빌드 후 실제 톰캣에 배포
AWS 인스턴스 생성
'AWS|Docker' 카테고리의 다른 글
74일차 - 세미프로젝트 AWS 서버에 배포 (0) 2024.05.14