지난 포스팅에서 인스턴스를 생성해 보았다.
해당 인스턴스를 이용해서 내 로컬 프로젝트를 리눅스 서버에 띄워보고자 한다.
우선 위 화면과 같이 AWS EC2 콘솔내에서 인스턴스 선택창을 들어가주면
생성된 인스턴스가 실행중인 것을 볼 수 있다. 해당 인스턴스 ID를 클릭해 들어가보자.
들어가보면 위처럼 인스턴스정보를 확인하기위에 들어가보면 위와 같이 인스턴스를
요약한 화면을 볼 수 있다.
해당 창이나 이전 창에서 좌측 상단의 인스턴스 상태 탭을 눌러 인스턴스를 시작, 재부팅 , 중지, 종료 할 수 있다. 종료시키면 종료된 시점으로부터 일정시간(30분에서 최대 1일?) 이후에 생성했던 인스턴스가 목록에서 자동으로 삭제된다.
따라서 다시 사용할 것인데 지금 서버를 꺼놓고 싶다면 종료가 아닌 중지를시켜 주자.
이제 로컬 터미널 환경에서 지난 포스팅때 인스턴스 생성을 하면서 만든 5)키 페어
를
이용하여 로컬 터미널 환경에서 AWS EC2를 리눅스 명령어로 연결해주도록 하겠다.
윈도우 환경의 경우 SSH, RDP, SFTP 등 다양한 네트워크 클라이언트와 터미널을 제공하는 GUI
프로그램인 mobaXterm을 설치하고 해당 프로그램을 이용하여 SSH Session에 접근해보도록 하겠다.
맥 환경의 경우 일반 터미널에서 로컬에 다운받았던 키페어(.cer)파일의 위치에서 명령어를 입력하여
접근하거나, mobaXterm 대신 zoc을 이용할 수 있다.
맥환경에서 설치하지 않고 작업할 경우 아래와 같이
% ssh -i [파일명].cer [계정명]@[퍼블릭DNS주소]
키페어 파일이 있는 위치에서 위 명령어를 입력해주면 mobaXterm에서 AWS EC2에 접근한 상황과
동일하게 작업할 수 있다.
이하부터는 mobaXterm을 설치한 윈도우 환경을 기준으로 설명하겠다.
우선 mobaXterm을 실행한 후 위와 같은 화면에서 session을 눌러준다.
SSH 탭을 누른다.
remote host 입력란에 아래와 같이 가동중인 aws ec2의 퍼블릭 IPv4 주소를 복사해서 입력해준다.
위와 같이 IP 주소가 복사 되었다면 Advanced SSH settings의 Use private key에 체크해준뒤
생성해두었던 키페어인 .pem파일을 업로드해준다.
위 그림과 같이 사용할 pem 파일을 올려주었다면 OK를 눌러 Session을 만들어준다.
Session에서 위화면과 같이 login as: 라는 상태로 커서가 띄워져 있어야 세션이
정상적으로 연결된 것이다.
위 그림과 같이 기본 사용자인 ec2-user를 입력하여 login 한다.
그다음 sudo yum update
를 입력해주어 가능한 업데이트를 모두 받아주자.
y를 눌러서 지나가면 된다.
위와같이 업데이트가 다 끝났다면 가장 먼저 해당 프로젝트에 사용한 자바버전을 설치해주자.
만약 java 1.8 open JDK 을 사용했다면
sudo yum install -y java-1.8.8-openjdk-devel.x86_64
와 같이 입력하여 설치해준다.
java 11 amazon corretto를 사용했다면 아래와 같이 입력해준다.
sudo curl -L https://corretto.aws/downloads/latest/amazon-corretto-11-x64-linux-jdk.rpm -o java11.rpm
자바 버전 설치와 관련된 포스팅은 여기를 참고해주자.
위 그림과 같이 설치가 완료 되었다면 ll
명령어를 입력하여 리스트를 출력해보면
위와같이 root
경로에 java11.rpm 파일이 있는것을 확인할 수 있다.
그 다음 yum list installed \grep "java"
명령어를 이용하여 java와 관련된 설치파일을
정규표현식으로 아래와 같이 설치되었는지 확인해 볼 수 있다.
받은 rpm파일을 이용하여 java를 설치하기 위해 아래와 같이
sudo yum install java-11-amazon-corretto
를 입력해주자
중간에 한번 설치 용량을 나타내주고 설치해도 되겠냐고 물어보면 y를 입력해주자.
아래와 같이 설치완료라고 Complete!가 뜨면 java가 정상적으로 설치된 것이다.
설치된 자바 버전이 무엇인지 확인하는 명령어는
java -version
을 입력해주면 확인할 수 있다.
만일 사용하지 않는 버전이 잡힌다면
sudo yum remove 설치한자바버전
을 입력해 지워주자.
만일 본인이 설치한 자바 버전이 기억나지 않는다면
rpm -qa | grep java
명령어를 통해 설치된 모든 java와 관련된 파일들을 체크할 수 있다.
git -version
을 입력해 git이 설치되어 있지 않다면 Clone해야 하기때문에 Git을
EC2 서버에도 설치해주자.
설치 명령어는 sudo yum install git
이다.
중간에 y를 한번 눌러주어 설치를 진행해준다.
develop 이든 main이든 본인이 서버에 배포하고자 하는 버전을 클론해준다.
해당 github 레포지토리에 들어가서 배포하고자 하는 브랜치를 선택한뒤 code 버튼을 눌러
Https URL을 복사해주자.
배포하고자 하는 프로젝트가 public 이라면 SSH가 아닌 HTTPS 주소를 복사합니다.
git clone 복사한주소
명령어를 입력하여 clone을 진행해준다.
위와 같이 clone을 진행했다면 ls
명령어를 통해 root 경로에
해당 프로젝트가 생성된것을 볼 수 있다.
1. ls => 현재 파일 탐색기가 바라보고 있는 경로의 list를 간단히 출력
2. ll => 현재 경로의 파일및 폴더 list를 자세히 출력 (용량 등등)
3. ll -al => 현재 경로의 숨김파일을 포함한 모든 파일 및 폴더를 출력
4. cd 이동할경로 => 현재 경로에 존재하는 하위경로(폴더)로 이동
5. cd .. => 상위 경로로 이동
ex) cd../.. 상위경로로 두번 이동
6. vi 파일명 => 해당 파일이 존재할 경우 : 해당 파일을 편집기에서 열기(수정 및 코드 확인)
해당 파일이 존재하지 않는데 명령어를 입력한 경우 : 파일 생성후 편집기 열기
7. chmod 755 파일/경로명 => 해당 경로 및 파일에 대하여 CRUD 권한을 755로변경
755의 경우=> 관리자에게 CRUD+실행권한울 부여하고 그외 사용자들에게
조회 및 실행 권한을 부여
8. 방향키 ⬆ ⬇ : 최근 사용했던 명령어목록들을 순서대로 다시 불러오기
9. Tab 키 : 가능하다면 명령어 및 파일명 자동완성
편집기 명령어는 여기를 확인해 숙지하자. ( 전부 외우거나 숙지할 필요 없이 자주 쓰이는 c , a , q!, qw , esc 정도만 알면된다.)
#!/bin/bash
REPOSITORY=~
cd $REPOSITORY/본인 프로젝트 명/
echo "> Git Pull"
git pull
echo "> 프로젝트 Build 시작"
./gradlew build
echo "> Build 파일 복사"
cp ./build/libs/*.jar $REPOSITORY/
echo "> 현재 구동중인 애플리케이션 pid 확인"
CURRENT_PID=$(pgrep -f 본인 프로젝트명)
echo "$CURRENT_PID"
if [ -z $CURRENT_PID ]; then
echo "> 현재 구동중인 애플리케이션이 없으므로 종료하지 않습니다."
else
echo "> kill -2 $CURRENT_PID"
kill -9 $CURRENT_PID
sleep 5
fi
echo "> 새 어플리케이션 배포"
JAR_NAME=$(ls $REPOSITORY/ |grep '본인 프로젝트명' | tail -n 1)
echo "> JAR Name: $JAR_NAME"
nohup java -jar $REPOSITORY/$JAR_NAME &
상위 코드를 메모장에 복사하여 자신의 프로젝트 이름으로 변경해주자
주의할 점은 grep명령어가 있는 곳에 있는 프로젝트명은 실제 내 프로젝트 경로내의 jar과
이름이 같아야한다.
다음 프로젝트 폴더 경로가 존재 하는 경로로 이동해 주자.