왕초보일지

240130 TIL | Ec2/ubuntu/깃클론/swap메모리/배포

다시은 2024. 1. 30. 14:39

기본 파일 다시 만들어서 https://gamzzang.tistory.com/98

aws ec2 + putty 배포 시도

 

전제: aws ec2 인스턴스 생성하고 putty 로 접속(ppk 키는 생성완료)

 

1 2G 용량의 스왑 파일 생성

=> 왜 2G 냐 하면 프리티어 기본 제공량 1G 관련 => 통상 스왑메모리는 기존 크기의 2배만큼 설정해준다고 한다.

=> 디스크 공간을 메모리처럼 활용하여 처리 속도는 떨어지나 프리티어 용량 대비 설정해주는게 훨씬 빠르다.

=> 나는 테스트하는 과정이라 안했지만 시스템 재부팅이 되어도 만들어진 스왑이 적용될 수있게 할 수 있다.

 

 sudo fallocate -l 2G /swapfile 

 

 

 

 

2 생성한 파일에 루트 사용자만이 읽고 쓸 수 있도록 변경 

 sudo chmod 600 /swapfile 

chmod 명령어

 

 

 

3 스왑 영역 설정

 sudo mkswap /swapfile 

 

 

4 스왑 영역 활성화

 sudo swapon /swapfile 

 

 

 

5 자바 설치

 sudo apt update 

 sudo apt install openjdk-17-jdk 

 

 

 

6 저장소 클론

 git clone 주소

 

 

7 프로젝트로 이동 후 권한 부여, 빌드

 cd ToDoList 

 chmod +x ./gradlew 

 ./gradlew build 

 

 

 

8 빌드 하위 파일 확인

 build > libs > jar 파일

 

 

9 빌드 파일 실행

 

 nohup java -jar ToDoList-0.0.1-SNAPSHOT.jar & 

 

10 로그 확인

(저장되어있는 로그)(빌드 파일 실행 후 ls 로 파일 목록 확인해보면 생성되어있다.)

 

 cat nohup.out 

 

❗ 8080 포트가 이미 쓰이고 있다는데 도대체 어디서 ??

중단하고 다시 실행한 로그

 

접속이 안된다.

 

❗ 보안그룹에서 8080포트로의 인바운드 트래픽을 허용하고 있는지 확인하란다.

 

기본 설정으로 22포트만 누구나 허용되어있었다.

인바운드 규칙에 8080 포트 접속을 추가했다.

접속 된다!!!! 너무 이쁘다!!!!!

처음은 빌드 속도가 느려서 포기했었고

그 다음은 프로젝트 파일이 안 맞아서 중단

그 뒤엔 보안 그룹 설정제대로 하기!!

 

 

11 작업 중인 jar 파일 확인

 ps -ef | grep jar 

 

12 4975 실행 강제 중단

❗-15로 먼저 해봤는데 중단이 안됐다...왜 그런건지 못찾았다.)

=> 제대로 된 PID 를 입력하지 않았다.

 kill -9 4975 

 

 

 

13 디렉토리 삭제

 rm -rf ~/디렉토리 

나는 테스트라서 디렉토리를 이렇게 함부로 삭제했지만 원래는 위험한 일이란다.

만약 데이터베이스와 같은 외부 리소스를 사용하는 경우 해당 리소스도 정리해주어야 한다.


14 스왑 상태확인

 swapon --show 

 

15 스왑 비활성화 

 sudo swapoff -a  

 

 

-인스턴스 종료

 

 


여러 배포 방법 중에 한 가지를 시도해본거라 아직 할 게 많이 남았고 내가 사용한 명령어들이나 시스템 흐름같은 것들도 모르는 것들 투성이다 ! 

다음에는 저장소 클론해오는 방법이 아닌 jar 파일을 가져와서 하는 방법이나 aws 빈스토크 로 해보기....

명령어도 적어도 내가 여기서 몇 번 써본 것들 눈에 익히고