AWS - 프로젝트 배포

황승현·2024년 3월 13일
0

AWS 공부

목록 보기
6/9

개요

CI/CD를 적용하기 전, 배포를 직접 해보고 CD의 필요성을 느껴보기로 했다.

방법 1. EC2에 git clone으로 레포지터리 복사

  • git 명령어만 사용하면 되서 매우 편리

  • EC2를 free tier로 사용하게 될 경우, t2.micro의 Ram이 1G밖에 되지 않아서, node나 spring만 띄우더라도 메모리가 부족

  • 이 방법을 사용하려면 Swap Memory를 적용해야 됨

    • Swap Memory : 메모리가 부족하면 디스크 공간 일부를 메모리처럼 사용, 당연히 메모리보다 느림

방법 2. Local에서 jar 파일 만들어서 EC2로 보내기

  • 복잡할 거 없이 그냥 Local에서 만들고 올리면 됨

  • 수정할 때마다 EC2에 다시 올려야 됨

나는 방법 1로 진행해보기로 했다.

스왑 메모리 설정은 링크를 참조해서 진행했다.

1. 사전 체크

# 메모리 용량 체크
free -h


# 디스크 용량 체크
df -h

2. 스왑 파일 생성

sudo fallocate -l 2G /swapfile

3. 스왑 파일 권한 변경

sudo chmod 600 /swapfile

4. 스왑 영역 설정

sudo mkswap /swapfile

5. 스왑 영역 활성화

sudo swapon /swapfile

6. EC2 인스턴스 재부팅시에도 스왑 메모리 할당하기

sudo vi /etc/fstab

i 눌러서 insert 모드로 변경

/swapfile swap swap defaults 0 0

위 내용을 추가 후, esc를 누르고 :wq 입력

7. 자바 설치

sudo 권한으로 apt 업데이트하고 openjdk v17을 설치한다

sudo apt update
sudo apt install openjdk-17-jdk -y

자바 버전 확인

java -version

javac -version

자바 설치 경로 확인

update-alternatives --list java

내 경로는 다음과 같다

  • /usr/lib/jvm/java-17-openjdk-amd64/bin/java

JAVA_HOME 설정을 전역적으로 하기 위해서 root 계정 프로필을 수정

sudo vim /etc/profile

i를 눌러서 insert 모드로 변경

가장 아래로 이동해서 아래 내용을 추가

export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64 //본인 자바 설치 경로
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=$CLASSPATH:$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar

설정한 환경변수를 적용하기 위해서, 아래 코드를 실행

source /etc/profile

환경 변수를 확인하기 위해서는 아래 코드를 실행

echo $JAVA_HOME

8. git 설치되었는지 확인

git --version

git이 설치되어 있지 않다면 git을 먼저 설치한다.

sudo apt-get install git

9. SSH key 만들기

cd ~/.ssh
ssh-keygen -t rsa -C github계정 메일(example@github.com)

cat id_rsa.pub

위 명령어를 입력하면 id_rsa.pub 파일 내용을 가져올 수 있다.

프로필 -> Settings -> SSH and GPT Keys

10. 경로 지정하기

/home 디렉토리 하위에 있는 ubuntu 폴더에 들어감

그 후 ubuntu 폴더 내에 project 폴더 생성

# 폴더 생성
mkdir project

# project 폴더 내로 이동
cd project

11. git clone

git repository에서 ssh 주소를 복사

git clone ssh주소

yes/no를 입력하라는 창이 나온다면 yes를 선택하면 clone이 진행됨

clone이 다 됐다면 ls 명령어로 확인

만약 특정 branch를 clone 하고 싶다면 아래 코드를 실행한다.

git clone -b 브랜치이름 ssh 주소

예를 들어 내가 feature/cache라는 branch를 clone하고 싶다면

git clone -b feature/cache git@github.com:HwangSeungHyeon/buysell.git

라고 입력한다.

12. 환경변수 설정

.bashrc 파일에 필요한 환경변수를 선언하여 shell이 시작될 때마다 실행되도록 만든다.

vi ~/.bashrc

맨 아래에 환경 변수 내용을 입력한다.

esc를 누르고 :wq를 입력해서 저장한다.

설정한 환경 변수를 사용할 수 있도록 아래 코드를 실행한다.

source ~/.bashrc

환경 변수를 확인하고 싶다면 아래 코드를 사용한다.

echo $환경변수

14. 빌드 파일 생성

./gradlew build

만약 Permission Denied 에러가 발생한다면 아래 명령어를 실행한다.

chmod +x ./gradlew

그 후 다시 빌드를 진행한다.

./gradlew build

혹시 실패했다면 빌드된 파일 지웠다가 다시 빌드 실행

./gradlew clean build

테스트를 제외하고 싶다면 아래 내용으로 빌드를 진행한다.

./gradlew clean build -x test

빌드가 성공했다면 jar 파일 위치로 이동한다.

jar 파일은 프로젝트명/build/libs 경로에 있다.

jar 파일을 실행하려면 java -jar 어플이름-0.0.1-SNAPSHOT.jar을 입력한다.

나는 아래처럼 입력했다.

java -jar buysell-0.0.1-SNAPSHOT.jar

에러가 발생하지 않았다면 public ip 주소:8080/swagger-ui/index.html 에 접속해서 테스트한다.

퍼블릭 ip 주소는 EC2 인스턴스에서 확인할 수 있다.

만약 Swagger 화면으로 접속이 안 된다면 EC2 인스턴스의 인바운드 규칙을 수정한다.

0개의 댓글