AWS EC2 우분투 프로젝트 배포

Sungmin·2023년 6월 30일
0

깃 설치

sudo apt-get install git

설치확인

git --version

깃허브에서 SSH KEY 생성

cd ~/.ssh
ssh-keygen -t rsa -C zzzdks760@naver.com

파일출력 후 깃허브 SSH에 저장

cat id_rsa.pub

깃 clone

git clone [레포지토리 ssh주소 복붙]

빌드

프로젝트 경로로 이동하여 ./gradlew build 해 주었는데 gradlew Permission Denied이 나와서 찾아보니 권한거부였다.
chmod +x gradlew 로 해결

에러발생

1. 멈춤현상

0% root project에서 시간만 올라가고 진행은 멈추는 현상이 발생하였다.

해결방법: Swap 메모리 설정

스왑 메모리란, 실제 메모리 Ram이 가득 찼지만 더 많은 메모리가 필요할 때 디스크 공간을 이용하여 부족한 메모리를 대체할 수 있는 공간을 의미

dd 명령을 사용하여 루트 파일 시스템에 스왑 파일을 생성(4GB 할당)
$ sudo dd if=/dev/zero of=/swapfile bs=128M count=32

1. 스왑 파일의 읽기 및 쓰기 권한 업데이트
$ sudo chmod 600 /swapfile

2. Linux 스왑 영역을 설정
$ sudo mkswap /swapfile

3. 스왑 공간에 스왑 파일 추가
$ sudo swapon /swapfile

4. 프로시저 확인
$ sudo swapon -s

5. /etc/fstab 파일을 편집하여 부팅 시 스왑 파일 시작
// 편집기에서 파일을 열어준다.

$ sudo vi /etc/fstab
// 파일 끝에 아래의 내용을 추가하고 파일을 저장한다.
/swapfile swap swap defaults 0 0

6. 메모리 확인 명령어로 결과 확인
$ free -m



2. 테스트 파일에러

Task :test FAILED
FAILURE: Build Failed with an exception.

에러에 대해 해결방법이 여러개 있었는데 먼저 테스트코드 내의 에러가 존재했는데
에러를 모두 고쳐주고 다시 clone해서 빌드했지만 에러는 그대로 였다.
테스트 파일을 없애면 된다는 글 도 봤지만 근본적인 문제가 해결될것같진 않아서 꼭 해결하고싶없다.

해결방법: DB연결

내가 프로젝트의 설정파일인 application.yml의 DB와 연결이 되지않아서 발생하는 에러였다. 로컬PC와 우분투환경에서의 DB는 같지않기 때문에 따로 만들어주어야 한다.

AWS의 RDS라는 관계형 테이터베이스를 사용하면 EC2와 연결해서 사용할 수 있다고 하여 서비스를 적용해 보았다.

https://codesyun.tistory.com/303
위 블로그를 참고하여 RDS와 EC2를 연결하였다.



결과

EC2 우분투에 접속하여 RDS로 mysql에 접속되는것을 확인하고 내 프로젝트의 application.yml설정을 RDS설정으로 변경해 주고 다시 ./gradlew build를 한 결과 정상적으로 빌드에 성공하였다.
그 후 jar파일을 실행하면 spring이 정삭적으로 실행된다.

AWS에서 EC2서버를 만들고 RDS를 만들고 깃에 있는 레포지토리를 빌드하여 실행하는데 까지 5일이 걸렸다.
배포하는 과정에서 지우고 생성하는 과정을 반복하면서 리눅스 명령어도 많이 알게되었고,
네트워크구조를 잘 알지는 못하지만 처음과 비교해 보면 확실히 다르다고 느껴진다. 뿌듯하다.

profile
Let's Coding

0개의 댓글