고정 IP(엘라스틱 IP)
5군데에서 IP를 5개 제공 하지 않는다.
가격이 비쌈
이유 : 모든 집에서 동시적으로 인터넷을 사용하지 않기 때문이다.
유동 IP (가정집에서 사용)
우리가 사용하는 AWS에서 사용하는 IP는 유동 IP이다
이를 탄력적 IP로 변환해야 한다.
주의 해야 할 점 : 탄력적 IP => 15.164.69.11(프리티어 사용자에게 무료 탄력적 IP를 제공해준다.)
조건 :
EC2 - 탄력적 IP를 연결해줘야 한다.
- 탄력적 IP 생성만 하고 EC2 서버를 연결하지 않았을 경우
- 탄력적 IP를 2개를 만들 수 없다.
- EC2 서버 종료(시점부터 비용발생, 탄력적 IP가 놀고 있기 때문이다.)
배포 순서
- github 다운 => git clone 주소
- gradlew 실행권한주기 => cd ~/aws-v1(~는 사용자를 찾아가기 위한 문자), chmod u+x gradlew
- gradlew로 프로젝트를 jar파일로 변경 => ./gradlew build (현재 폴더에 있는 파일을 실행한다.=> ./가 없으면 환경변수를 찾는다.)
- 자바 설치(JDK, JRE) - JDK로 마인크래프트 게임 개발-> 일반 사용자들이 마인크래프트 게임하려면 JRE가 필요 ==> sudo apt update, sudo apt install openjdk-11-jdk
- java로 jar 실행 => cd build/libs java -jar *.jar
<배포 화면>
cd build/libs java -jar *.jar로 build시 주의해야 할 점
nohup이란 ?
nohub 명령어는 리눅스에서 프로세스를 실행한 터미널의 세션 연결이 끊어지더라도 지속적으로 동작할 수 있게 해주는 명령어이다.
우리가 포그라운드로 실행했기 때문에 nohup으로 했다고 하더라도 터미널 종료시에 함께 종료
우리는 백그라운드로 실행해야 한다.
nohup은 자동으로 로그를 남긴다.(nohup.out)
error, warn, info 로그 등을 남긴다.
tail -f nohup.out을 통해 실시간으로 로그파일을 확인할 수 있다.
로그 파일 변경
=>기존 nohup.out (로그파일 위치) => 새로운 로그파일(mylog.out)으로 변경되었음을 확인할 수 있다.
에러 출력 -2 - nohup.out
표준 출력 -1 - nohup.out
nohup java -jar 파일명 1 > log.out(표준 출력) 2 > err.out(에러 출력) &
이유 : 배포를 위해서 작성했던 모든 명령어들 - 스크립트 작성 ! -> 자동화
시간 변경(+9시간)
-우분투 OS에 시간 세팅
pid 아이디 찾기
ps -ef | grep *.jar | grep -v grep | awk '{print $2}'
pgrep -f *.jar
$변수 : 변수의 값을 출력 혹은 실행
${명령어} : 명령어의 결과를 리턴
spring-stop.sh -> 실행 권한을 줌
echo "Springboot Stop....."
SPRING_PID=$(pgrep -f v1-0.0.1-SNAPSHOT.jar)
echo $SPRING_PID
kill -9 $SPRING_PID
<참고 자료>
https://www.youtube.com/c/%EB%A9%94%ED%83%80%EC%BD%94%EB%94%A9
'DevOps > AWS' 카테고리의 다른 글
[AWS] AWS Lightsail를 이용해서 Spring 프로젝트 배포 (0) | 2023.05.12 |
---|---|
[메타코딩] cron 주기적 실행 (1) | 2022.10.04 |
[메타코딩 24강] AWS 내용정리(배포v1 흐름 이해하기) (0) | 2022.10.02 |
[메타코딩 23강] AWS 내용정리(리눅스 명령어 표준입출력) (0) | 2022.10.02 |
[메타코딩 22강] AWS 내용정리(리눅스 명령어 find) (0) | 2022.10.02 |