[AWS] EC2로 Spring 프로젝트 배포
AWS EC2 생성
- Amazon AWS 계정 생성
- 인스턴스 시작
- AMI 프리티어 ubuntu선택
- 스토리지 30GB까지 무료
- 보안그룹 구성 원하는 포트범위 설정 - HTTP 80포트
- 인스턴트 시작하기
- 키 페어 생성 (다운로드 - 위치 꼭 기억해놓기)
EC2 접속
- 터미널 접속
- 'cd [키 페어 위치]'
- 'ssh -i [키 페어].pem ubuntu@[퍼블릭 IPv4 DNS주소]'
- 연결할거냐고 물어보면 'yes'
- 권한에 대한 오류 뜨면 'chmod 700 [키 페어].pem'으로 권한 설정 (소유자에게 읽기,쓰기,실행 권한 부여)
- 다시 'ssh -i [키 페어].pem ubuntu@[퍼블릭 IPv4 DNS주소]'
FileZila로 EC2 접속
- FileZila 접속
- 파일 - 사이트 관리자
- 새 사이트 - 프로토콜(SFTP) - 호스트(퍼블릭 IPv4주소) - 로그온 유형(키 파일) - 사용자(ubuntu) - 키 파일(다운로드한 키 파일) - 연결
EC2 Java설치
- 터미널로 EC2에 접속한 상태에서 할 것
- 'sudo apt-get update'
- 'sudo apt-get install [java 버전에 맞는 jdk]'
- 'javac -version'으로 설치 확인
- 'which javac'로 위치 탐색
- 'readlink -f [4에서 탐색한 값]'로 풀 경로 탐색
- 'sudo nano /etc/profile'에 export 하기
- 'export JAVA_HOME=[5 결과 값에서 맨 뒤에 /bin/javac 빼고]'
- 'export PATH=JAVAHOME/bin/:PATH'
- 'export CLASS_PATH=JAVAHOME/lib:CLASS_PATH'
- 'ctrl + o + return'으로 저장
- 'ctrl + x' 편집 나오기
- 'source /etc/profile'로 재로드
- 'sudo reboot now'로 서버 끄기(에러 창 뜨면 확인)
- 'echo $JAVA_HOME' 재접속해서 확인
EC2 Tomcat 설치
- 톰캣 사이트에서 다운로드 링크 주소 복사
- 터미널로 EC2에 접속한 상태에서 할 것
- 'wget [다운로드 링크 주소]'로 다운로드
- 'tar xvfz [다운로드 된 톰캣 파일명.tar.gz]'로 압축 해제
- 'cd /usr/local'로 local디렉토리 내부로 이동
- 'mkdir tomcat[톰캣 버전]'로 디렉토리 생성(ex. mkdir tomcat9.0)
- 'cd -'로 home/ubuntu로 빠져나오기
- 'sudo mv [압축 해제한 톰캣 파일] /usr/local/[5의 디렉토리]'로 파일 이동
- 'sudo vi /etc/profile'로 환경 변수 설정
- 'i'로 insert모드
- 'export CATALINA_HOME=/usr/local/[5의 디렉토리]'
- 'esc'키로 insert모드 종료
- ':wq!'로 저장 후 종료
- 'source /etc/profile'
- 'echo $CATALINA_HOME'으로 변수 설정 확인
- 'sudo vi /usr/local/[5의 디렉토리]/conf/server.xml'로 파일 열어서 URIEncoding추가
- 만일 파일이 안보이면 'cd /usr/local/[5의 디렉토리]'로 이동하여 다른 디렉토리가 만들어져 있지 않은지 확인하기
- server.xml파일에 코드 찾기
- 'i'로 insert모드
- 포트가 "8080"이 맞는지 확인하고 'URIEncoding="UTF-8"'추가
- 'esc'키로 insert모드 종료
- ':wq!'로 저장 후 종료
- 'sudo su'로 root로 권한 변경
- '/usr/local/[5의 디렉토리]/bin/startup.sh'로 톰캣 시작
- 크롬에 http://[퍼블릭 IPv4주소]:8080/ 해서 톰캣이 정상적으로 작동하는지 확인
FileZila로 EC2에 Spring 프로젝트 배포
- 프로젝트를 export해서 war파일 생성
- FileZila에 EC2 인스턴스 연결
- 오른쪽 리모트 사이트에 /usr/local/tomcat9.0/webapps 디렉토리 열기
- 폴더를 찾을 수 없다면 터미널에서 권한 설정
- 'sudo su'로 root모드
- 'chmod -R 777 /usr/local/tomcat9.0/webapps'로 모든 작업 가능하게 부여
- 'chown -R ubuntu /usr/local/tomcat9.0/webapps'로 ubuntu에게 소유자 권한 부여
- '/usr/local/tomcat9.0/bin/startup.sh'로 다시시작
- 왼쪽 로컬 사이트에서 war파일을 찾아 webapps 디렉토리에 끌어놓기
- 크롬에 http://[퍼블릭 IPv4주소]:8080/[war파일명]/ 해서 확인