배포 부딪히기 02

mynoseis3·2024년 1월 12일
0

memo

목록 보기
11/17
post-thumbnail

지난 글에 이어서 생성한 EC2를 다운받았던 ssh키로 접속해보자 !

전 글에서 키 페어 생성할 때 다운받은 ssh 키를 잘 보관해두어야 한다.

1. 발급 받은 ssh 키로 Ec2 우분투 콘솔에 접속하기

  • EC2 인스턴스가 체크되어있는 상태에서 위쪽의 연결 버튼을 클릭하면
    연결하는 방법에 대한 글이 나온다.
독립 실행형 SSH 클라이언트 방식으로 진행 !

  • 다운받은 ssh 키가 있는 디렉토리로 접근 - > cmd 실행

    chmod 400 sshKey.pem 명령어로 권한 바꾸기

    💡 나의 경우 cmd에서 위 명령어를 사용할 수 없었다.
    git bash에서 실행하면 작동하는 것 같음 !!
    왜 그런가 궁금했는데 지금 하고 있는 것들이 리눅스쪽과 관련있는 거라서
    git bash는 리눅스 명령어를 사용할 수 있는 CLI여서 그런 듯 ??!


  • 설명에 나온 명령어 복붙에서 실행하기 - > yes - >
    이런창이 뜨면 EC2 ubuntu 콘솔 접속에 성공한 것이다 !

2. 우분투 콘솔에서 git ssh 연동후 git clone 하기

  • 정적 파일 배포 방식 2가지
  1. EC2에서 프로젝트 git clone 후 실행하기
  2. 로컬 머신에서 jar 파일하여 EC2에 복사 후 실행

나는 구글쌤과 같이 1번으로 진행
ubuntu로 진행을 하기 때문에 apt 명령어로 git clone 해야 한다고 함 !!


  • git 설치    sudo apt-get install git

  • git 설치 확인 : git --version

  • 깃허브에서 SSH KEY 생성하기

cd ~/.ssh
ssh-keygen -t rsa -C github계정 메일

.ssh 디렉토리에서 키페어를 생성하게 되고 id_res.pub 파일이 생성된다.

cat id_rsa.pub

  • cat 명령어로 id_rsa.pub 파일을 출력후 이것을 깃허브 ssh에 저장해준다.

  • github -> setting -> SSH and GPG keys 탭으로 이동후 new SSH key 버튼을 클릭 - > key 부분에 복사한 id_rsa.pub 값 넣어주고 생성

git clone할 준비 완료 !

깃허브 레포지토리로 이동후 code 버튼 -> ssh 탭을 누르고 나온 주소 복사

git clone 레포지토리ssh주소

이후 yes/no를 선택하라는 탭 - > yes

-- > ls로 확인

clone 완료 !


3. 내려받은 파일로 빌드하고 jar 파일 실행시켜 스프링 부트 서버 실행시키기


🔎 3-1. 빌드파일 생성

클론한 디렉토리에서 gradlew 파일을 실행시켜 jar 빌드파일을 생성해야 한다.

그전에 기본 EC2에는 자바가 설치되어있지 않으므로

  • sudo apt install openjdk-11-jdk

명령어로 자바 설치 진행

나의 경우는 java 17을 사용했으므로 17버전으로 다운 받아보자 !

헉 ! 설치가 안 된다 ??...
근데 11로 설치했다가는 뭔가 분명 버전 안 맞는다고 오류날 것만 같아서
17로 설치해야 할 것 같은데

검색해보다가 발견쓰

한 번 시도해보자 !!

위 명령어들을 실행하고 다시 17버전을 설치하려고 하면 뭔가 휘리리릭
계속 길게 코드들이 쏟아지길래 잘못 됐나 싶었는데 우선
자바 버전을 확인했을 때 17버전이 나오는 걸 보니 설치는 잘 된 것?같다..!

  • 그리고 빌드를 해주는 것 같은데 구글쌤은 ./gradlew build 을 썼는데
    나의 경우에는 maven 프로젝트니깐 다른 명령어를 써야 하는 것 같아서
    찾아 보니 메이븐 프로젝트 빌드 명령어가 있어서 사용해보자 !

    mvn clean install

++ 잠시 여기서 또 헷갈리는 거

구글쌤은 정적 파일 배포를 말했는데
나의 경우 이전에 jar/war 둘 다 생성해서 테스트 해봤을 때
jar로는 jsp 반영이 안 돼 404 에러가 났었다.

그러면 나는 여기서 maven으로 빌드하고 war 파일을 받는 게 맞는걸까 ?

mvn package

우선 위의 명령어를 써보고 되는지 보자 !

maven을 install 해야 한다는 글이 뜨는데
우선 설치해본다 제발 !!! 이상해지지마 ..

maven 설치 후 다시 mvn package로 war 파일 생성을 시도하면 오류가 난다.

이건 pom을 못찾았다는 뜻인데
바보 ! 클론 받은 폴더로 이동해서 실행해야 한다요

cd 명령어로 폴더 안으로 이동 후 다시 war 파일 생성을 시도했다.

다시 오류가 나서
gpt에게 질문하니 ... 의존성 부분이 의심이 간다. 메이븐 플러그인 버전이 문제일 것 같은데 대체 무슨 버전으로 맞춰줘야 하는걸까 ㅜㅜ

구글쌤 글 보면서 거의 다 왔는데
여기서 막혀버렸다.

음 일단 !
그럼 다른 명령어로 시도해보자

./mvnw clean install

-- > 권한 없음 에러 남 !

mvn clean install

-- > 빌드 실패 오류

  • 테스트 보고서 확인: 에러 메시지에 언급된 디렉토리 (/home/ubuntu/.ssh/memoong/target/surefire-reports)로 이동해서
    cat 명령어로 txt 파일을 열어보니까 엄청 긴 오류가 폭발..

--> 다른 방법 시도 chmod +x mvnw 로 권한을 주고 ./mvnw clean install
--> 에러

-- > jdk 환경변수 인식 못한다는 에러를 봐서 설정해주다가
무한 굴레
뭔가 잘 못 됐다. 아후


우선 환경 변수 설정 에러는 이렇게 해결했다.

export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64

이 경로는 Ubuntu에서 OpenJDK 17을 설치했을 때의 기본 경로

java -version으로 설치했던 버전 확인과
ls /usr/lib/jvm/ 으로 해당 경로에 있는지 확인 후 설정해주면 됐다.

근데 문제는 다시 빌드를 시도하면 여전히 빌드는 실패한다.

테스트 결과 보고서에서 확인해보면
데이터 소스 설정 확인이나 의존성쪽 문제 등등 뭔가 엄청 많이 뜨는데
진짜 막막하다.

++ 추가로 DskipTests 테스트를 생략하고 진행하는 코드로도 시도해봤지만 실패했다.

오류를 봐도 뭐가 뭔지 모르겠다...

이것도 해결 못하면 앞으로 뭘 내가 잘 할 수 있을지도 막막해졌다.
아후 ! 꼭 해결해보고싶은데 혼자 힘으론 역부족이다..
하루종일 했는데도 실마리를 못풀었는데

벌써 아침이 되어 버렸다.
한숨 자고 일어나서 알바가기 전에 다시 해보자 ...

profile
웹개발자 꿈나무 꾸준함의 힘을 믿습니다 🚶

0개의 댓글