AWS를 이용하여 배포 환경을 구축해보자 2 - EC2부터 ssh 접속까지 (tistory.com)
EC2 생성은 ⬆ 참고
EC2에 접속해서 아무것도 설치 하지 않은 상태라면 온갖걸 설치해줘야 한다.
1. 뭘 설치하기 전에 update와 upgrade를 먼저 해준다.
update -> 저장소에서 OS에 설치된 패키지들의 버전 리스트를 다운로드한다. 새로운 버전이 있는지 확인.
sudo apt-get update
업데이트 후에 업그레이드를 해주자.
upgrade -> update에서 받은 리스트에서 새 버전이 존재하면 업그레이드 한다.
sudo apt-get upgrade
중간에 y 눌러줌 혹은
sudo apt-get upgrade -y
혹은 &&을 사용해서 한꺼번에 처리하는 것도 가능하다.
sudo apt-get update && sudo apt-get upgrade
-y를 붙여주면 설치 도중 나타나는 물음에 yes를 한다는 의미
sudo apt-get update && sudo apt-get upgrade -y
2. mysql 설치
버전을 지정하지 않으면 현재(21년03월) 5.7로 설치됨
sudo apt install mysql-client
rds 관련된 내용은 아래 참고
AWS를 이용하여 배포 환경을 구축해보자 3 - RDS 생성부터 character set 설정까지 (tistory.com)
3. 자바 설치
1.8(8버전)을 설치해보았다.
sudo apt install openjdk-8-jdk
설치 후
java -version
로 자바 버전을 확인할 수 있다.
4. github같은 저장소에서 프로젝트 가져오기
난 github을 사용하였다.
git은 따로 설치하지 않아도 된다.
git clone [저장소 주소]
5. 프로젝트 빌드
가져온 프로젝트 디렉토리로 들어가서 gradlew에 +x 를 추가해주자.
sudo chmod +x ./gradlew
그리고 빌드
sudo ./gradlew build
빌드가 잘 되면 build 디렉토리가 생기고 build/lib 디렉토리 안에 jar가 있다.
6. jar 실행
java -jar [파일명].jar
만약 profile을 분리했다면
java -jar -Dspring.profiles.active=[원하는 profile 명] [파일명].jar
이렇게 하면 실행은 된다.
그런데 컨트롤+c 로 빠져나오거나 쉘을 꺼버리면 서버도 종료된다.
7. 그래서 백그라운드에서 실행시키자
nohup java -jar [파일명].jar &
& 은 백그라운드로 돌아가게 해주고
nohup은 서버 구동 시 기본적으로 쌓이는 로그들을 파일로 만들어준다.
cat nohup.out 으로 쌓인 로그들을 볼 수 있다.
이렇게 백그라운드에서 실행하면 쉘을 끄거나 해도 서버는 여전히 살아있다.
8. 접속
cat nohup 으로 started 땡땡Application~~ 이 제대로 떴는지 확인한 후
EC2의 public IP 혹은 DNS 의 8080포트로 요청을 보내면 된다.
[public IP 혹은 DNS]:8080/[원하는 경로]
예를 들면 3.35.135.158:8080/tests/1
9. 이제 끄고 싶어욧..
프로그램을 종료하기 위해서는 PID가 필요하다.
ps -ef
를 사용하면 현재 실행중인 프로세스 목록들과 PID등이 함께 나온다.
문제는 너무 많이 나온다..
grep으로 걸러서 쓰자
ps -ef | grep '[원하는 단어]'
예를 들면 ps -ef | grep 'java'
그래도 정보가 많다?
awk 로 원하는 필드만 보자
이 항목들을 말하는 것!
ps -ef | grep 'ssh' | awk '{print $[몇번째 필드인지]}'
예를 들면 ps -ef | grep 'ssh' | awk '{print $1, $2, $8}'
원하는 PID를 찾았다면
10. KILL
kill [PID 번호]
== kill -15 [PID 번호]
kill -9 는 강제 종료이니 -15로 일반 종료임을 알려주자.
물론 kill이랑 똑같다.
이렇게 하면 프로세스가 죽는다.
이렇게 하면 별다른 설정 없이 쉽게 서버를 구동할 수 있다.
하지만 api가 계속 늘어나고 test가 많아지면 프리티어용 EC2로는 빌드에만 시간을 할애하게 되거나 EC2가 아예 멈춰서 중지 후 재시작을 하는 경우가 종종 생긴다. (재시작하는데 겁나 오래 걸림🤬)
무엇보다도 프로세스를 멈추고 다시 돌리고 하는 이 과정이 너무나도 귀찮다는 걸 깨달을 것이다.
그러니 이 과정을 한 번 시도해 보았다면 하루라도 빨리 자동 배포로 넘어가도록 하자.
'AWS' 카테고리의 다른 글
AWS를 이용하여 배포 환경을 구축해보자 3 - RDS 생성부터 character set 설정까지 (0) | 2021.02.28 |
---|---|
AWS를 이용하여 배포 환경을 구축해보자 2 - EC2부터 ssh 접속까지 (0) | 2021.02.27 |
AWS를 이용하여 배포 환경을 구축해보자 1 - VPC (0) | 2021.02.27 |