본문 바로가기
T.I.L. :: Today I Learned/항해99 14기 본과정

Day 55. 어서와, 서버 배포는 두 번째지?

by DaSsom 2023. 5. 27.

온보딩 토이프로젝트할 때 ec2에 배포를 해본 이후, 나도 모르게 열어놓은 로드밸런서 때문에 약 10만원이 과금되고 나서 환불 전쟁에서 승리한 뒤로 아마존 aws는 쳐다도 보지 않았다. 그래서 미니 프로젝트와 클론 코딩 프로젝트를 진행할 때 서버 배포는 다른 팀원분이 맡아주셨고 그렇게 서버 배포는 나의 영역이 아닐거라고 생각했다....만!! 이번 프로젝트에서 총무 역할을 맡게 되면서 백엔드 서버 배포를 내가 담당하는 것이 좋겠다는 생각이 들었다. 물론 다른 팀원들도 함께 서버 배포도 연습해보는 것이 좋겠다 싶어서 프리티어 계정을 사용할 수 있는한 모든 팀원이 배포 연습을 하되 메인 서버는 내가 담당하기로 했다. 

 

그래서 어제부터 불면의 밤을 보내면서 도커를 사용해서 ec2에 redis와 openvidu 서버를 동시에 실행시켜놓고 우리 프로젝트 파일을 배포하는 것을 연구했다. 결론적으로 서버 배포 드뎌 성공><

 

먼저, 도커를 설치한다. 그리고 프로젝트 파일에 도커 파일을 만듬.

build 밑에 Dockerfile이라는 파일을 하나 생성해주고 이렇게 내용을 입력해줌 

FROM openjdk:17-oracle
ARG JAR_FILE=*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java", "-jar", "/app.jar"]

근데 이 부분은 프로젝트의 이미지를 찍어서 도커에 올리고 ec2 서버에서 그 이미지를 다운 받아 하기 위함이라 이번 배포 과정에서 필요는 없는데... 나중에 보기 위해 적어둠

 

 

이제 본격적으로 시작, Gradle 영역에서 jar 파일을 만들어주자

여기서 bootJar 를 실행해주면 첫번째 사진에 있는 프로젝트명.jar 파일이 생성된다. 일단 대기

 

그리고 ec2 인스턴스를 연결해서 도커를 먼저 설치해줌.

sudo apt-get update
sudo apt install docker.io

 

++ 매번 sudo ~~ 를 붙이기 귀찮다면 아래 명령어를 입력하고 root로 접근 가능

sudo su

 

우리에게 필요한 redis, openvidu 이미지를 받아주고 컨테이너에 올려서 실행시킨다.

docker image pull redis
docker run -d --name redis-container -p 6379:6379 -dit --restart unless-stopped redis


docker image pull openvidu
docker run -d --name openvidu-container -p 4443:4443 -dit --restart unless-stopped openvidu/openvidu-server-kms

 

난 자바 기반 프로젝트를 돌려야하니 jdk도 설치

sudo apt-get install openjdk-17-jdk

 

그리고 처음에 만들어놨던 jar파일을 FIleZilla 를 사용해서 ubuntu 서버로 옮겨준다. (파일질라 진짜 개편해)

다시 ec2 콘솔로 넘어와서 아래 명령어를 입력해줌

//nohup 을 같이 입력해서 백그라운드에서도 실행가능
nohup java -jar 이름 .jar &  
 
// 로그를 확인
tail -f nohup.out  

//  숫자 갯수 줄만큼 로그 보여줌
tail -f -n 숫자 

// 전체 로그 보여줌
cat nohup.out

 

++ 한국 시간으로 바꿔주기 위한 명령어

sudo timedatectl set-timezone Asia/Seoul

 

 

https://velog.io/@ssssujini99/AWS-EC2-ubuntu-%EC%8B%9C%EA%B0%84-%EC%84%A4%EC%A0%95

 

[AWS] EC2 ubuntu 서버 시간 설정하기

개발 중 서버에서 돌린 작업의 시간을 저장해야하는데, 서버와 현재 서울의 시간이 맞지 않아서 서버의 시간을 변경해야 했습니다.

velog.io

https://velog.io/@3210439/ec2%EC%97%90-docker-redis-%EC%84%A4%EC%B9%98

 

ec2에 docker + redis 설치

ec2에 docker 와 redis를 설치하는 방법에 대해서 그리고 설치 명령어를 정리 해보려고 한다.우분투에서 패키지 설치 시 많이 apt-get 명령어를 많이 사용한다. 해당 명령어는 Advanced Packaging Tool의 약자

velog.io

https://davelogs.tistory.com/71

 

우분투(Ubuntu)에서 터미널로 JAVA 설치하기

Ubuntu 20.04 환경에 Java를 설치하고자 한다. 직접 설치파일을 다운로드받아 설치할 수도 있지만, 여기서는 터미널 환경에서 설치하는 방법으로 진행했다. 1. 설치 $ sudo apt-get update $ sudo apt-get upgrade

davelogs.tistory.com

https://msyu1207.tistory.com/entry/Redis-PubSub

 

docker로 redis 설치 및 redis 기본적인 명령어를 알아보자

안녕하세요 😉 유유자적한 개발자 유로띠 입니다 😀 👏👏👏👏 이번 포스팅에서는 ✅ Redis란? ✅ docker Redis 설치 ✅ Redis 기본 명령어 ✅ Spring boot에서 Redis 테스트 에 대해서 알아보겠습니다

msyu1207.tistory.com