0C 개발일지

AWS Linux Spring Boot 프로젝트 배포 ① 본문

AWS

AWS Linux Spring Boot 프로젝트 배포 ①

0C 2024. 8. 29. 16:45

다음주면 인턴이 끝이다.

아직 프로젝트는 끝나지 않았지만 다음주 금요일 이후 회사에서 서버를 종료시킨다 하여

우선 프로젝트 업로드하는 법을 시도해봤다.

 


 

 

 

프로젝트 업로드하는 방법은 로컬에서 jar 파일 생성 후 이동시키는 방법이 있지만, 나는 Github을 통해 jar 파일을 생성하는 방법을 시도했다.

 

 

  • Git 설치한다. (Git이 없는 경우) 

 

sudo yum install git

Ubuntu는  yum 대신 apt-get 입력한다.

 

  • SSH 키 생성한다.
cd ~/.ssh

 

ssh-keygen -t rsa -C [Github 계정 메일]

 

키 생성해서 등록해 놓으면 Git 을 쓸 때마다 아이디, 비밀번호 안써도 된다.

 

Enter file in which to save the key (/home/ec2-user/.ssh/id_rsa)

SSH 키를 저장할 위치를 지정하겠다는건데 엔터를 누르면 기본 경로에 저장된다.

 

Enter passphrase (empty for no passphrase) :

 

passphrase는 일종의 비밀번호로 비공개키를 입력 한 값으로 암호화한다.

권장 값은 10~ 30 문자, 자동 로그인을 원할 경우에는 생략한다.

나는  생략했다. 

Enter same passphrase agin:

Enter same passphrase agin:

엔터치면 된다.

위와 같이 출력되었다면 SSH 키 생성 완료 된 것이다.

 

 

ls -al ~/.ssh/

 

위 명령어를 통해 키 생성 확인을 한다.

authorized_keys 파일은 없을 수 있다

생성 하고자 한다면 아래 명령어 를 입력하면 된다. 

cp -rp id_rsa.pub authorized_keys

SSH Server 의 authorized_keys의 내용이 SSH Client의 id_rsa.pub 파일과 같아야 한다. 그래야 SSH 접속 시, id_rsa 파일과 authorized_keys 파일의 내용을 비교할 수 있다.

cat id_rsa.pub
  • 생성된 id_rsa.pub 파일의 내용 복사 한다. 


  • GitHub > Setting > SSH and GPG keys > New SSH Key

 

적당한 Key 이름 및  복사한 id_rsa.pub 파일의 내용을 붙여 넣고 생성하면 된다....하지만! 

 

Key is invalid. You must supply a key in OpenSSH public key format

이라는 에러 메시지가 뜨며 안됐다.

구글링 해보니까

 

id_rsa.pub 파일을 읽을 때 .pub 를 반드시 포함한 상태에서 파일을 읽거나 열어야 한다는 것이다.

왜냐하면 .pub 파일은 public key이고, .pub 가 안붙은 파일은 private key이기 때문이다....라는데! 

나는 .pub 파일로 했다. 문제가 없었다. 

 

검색의 검색을 거듭하여. 

 

GitHub SSH Key 사용하기 위해

에이전트에 ssh key를 등록하는 게 있었다. 

eval `ssh-agent -s`

위 명령어를 사용하여 등록한다. 

 

그리고 나서 방금 전에 생성한 id_rsa를 추가한다.

ssh-add ~/.ssh/id_rsa

 

다시 시도해보았다

얏호 생성되었다 !!! 

 

 

 

 

SSH Key도 해결 되었으니...  Github에 올려두었던 프로젝트를 clone 해본다.

 

  git clone [주소]

주의할 점

사용할 주소는 Code - SSH를 복사해야 한다. 

 

참고로  Git 을 Clone 한 레파지토리에 수정한  Commit 을 Push 하면 username이나 password을 입력 안해도 push가 된다. 

만약 push를 했는데 사용자가 다르게 나온다면 git config 설정하기.  git config --global user.email "email@email.com" 

push가 잘 되는지 테스트 해보려면, ssh -T git@github.com 

 

Clone이 잘 되었다.

 

 

 

./gradlew build

프로젝트 디렉토리로 가서 위 명령어를 통해 빌드를 하면 /build/libs 디렉토리에 jar 파일이 생성된다.

 

참고로 빌드 도구로 gradle를 선택했을 때 명령어이다.

 chmod +x gradlew

만약 나처럼 에러가 난다면  위 명령어로 gradlew 권한을 변경한 후 다시 해보면 된다. 

하하하 하지만 나는 java를 깔지 않았기 때문에

 

자바를 우선 설치해야 한다.

 

구글링 하면 sudo apt update 명렁어를 사용하는 걸 알 수 있는데... 

하지만 자꾸  command not found라는 에러가 떴다.

이유는 해당 리눅스 배포판이 apt-get 을 지원하지 않기 때문이란다. 

apt-get 말고도, 해당 리눅스에서 지원하는 패키지 관리자를 이용하면 되는데

AWS Linux 를 이용할 경우 yum을 사용하면 된다.

 

sudo yum update

 

 

 

잘됐다.

패키지도 최신 버전으로 업그레이드 해준다. 

 

sudo yum upgrade

 

 

그리고 나서 JDK 설치를 하기 위해 여러 명령어를 입력해봐도...

현재 레파지토리에 없다고 하고..

계속 에러가 뜨고 오류가 났다

 

계속 여러 방법을 시도하다가 Amazon Corretto 을 사용하면 된다는 사실을 알게 되었다. 

 

 

https://aws.amazon.com/corretto

 

Amazon Corretto 프로덕션용 OpenJDK 배포

Amazon Corretto를 사용하여 클라우드, 온프레미스 및 로컬 머신에서 동일한 환경을 실행할 수 있습니다. Corretto 17은 Linux(x64 및 aarch64), Windows(x64), macOS(x64 및 M1), Alpine Linux(x64) 및 Amazon Linux 2(x64 및 aarch

aws.amazon.com

아래의 명령어를 입력해준다 

sudo yum install java-17-amazon-corretto

설치됐다...!!! 

만만세 

java -version

확인해보니 잘 설치됐다 

 

./gradlew build 다시 명령어 입력해서 시도해본다

 

잘 되다가 멈췄다...

쉬운게 하나도 없다.

 

내일 다시 시도해보겠다