AWS EC2 프리티어로 서버 만들기 (추가중 일단 다 때려박아놈)

Dabi·2022년 5월 15일
0

서버/인프라

목록 보기
3/3

지난 포스팅에서 인스턴스를 생성해 보았다.


해당 인스턴스를 이용해서 내 로컬 프로젝트를 리눅스 서버에 띄워보고자 한다.

[인스턴스 시작상태로 만들기 및 상태 제어 방법]


우선 위 화면과 같이 AWS EC2 콘솔내에서 인스턴스 선택창을 들어가주면

생성된 인스턴스가 실행중인 것을 볼 수 있다. 해당 인스턴스 ID를 클릭해 들어가보자.

들어가보면 위처럼 인스턴스정보를 확인하기위에 들어가보면 위와 같이 인스턴스를

요약한 화면을 볼 수 있다.

해당 창이나 이전 창에서 좌측 상단의 인스턴스 상태 탭을 눌러 인스턴스를 시작, 재부팅 , 중지, 종료 할 수 있다. 종료시키면 종료된 시점으로부터 일정시간(30분에서 최대 1일?) 이후에 생성했던 인스턴스가 목록에서 자동으로 삭제된다.

따라서 다시 사용할 것인데 지금 서버를 꺼놓고 싶다면 종료가 아닌 중지를시켜 주자.

이제 로컬 터미널 환경에서 지난 포스팅때 인스턴스 생성을 하면서 만든 5)키 페어

이용하여 로컬 터미널 환경에서 AWS EC2를 리눅스 명령어로 연결해주도록 하겠다.



윈도우 환경의 경우 SSH, RDP, SFTP 등 다양한 네트워크 클라이언트와 터미널을 제공하는 GUI

프로그램인 mobaXterm을 설치하고 해당 프로그램을 이용하여 SSH Session에 접근해보도록 하겠다.

맥 환경의 경우 일반 터미널에서 로컬에 다운받았던 키페어(.cer)파일의 위치에서 명령어를 입력하여

접근하거나, mobaXterm 대신 zoc을 이용할 수 있다.



[로컬 환경에서 가동중인 서버에 미리 다운로드해놓은 키페어로 접근하기]


  1. 우선 구글링을 통해 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를 눌러서 지나가면 된다.



AWS EC2에 Java 설치

위와같이 업데이트가 다 끝났다면 가장 먼저 해당 프로젝트에 사용한 자바버전을 설치해주자.


만약 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와 관련된 파일들을 체크할 수 있다.


AWS EC2에 git 설치

git -version을 입력해 git이 설치되어 있지 않다면 Clone해야 하기때문에 Git을

EC2 서버에도 설치해주자.

설치 명령어는 sudo yum install git 이다.

중간에 y를 한번 눌러주어 설치를 진행해준다.

프로젝트 버전을 GIT 에서 Clone 하여 배포하기

develop 이든 main이든 본인이 서버에 배포하고자 하는 버전을 클론해준다.

해당 github 레포지토리에 들어가서 배포하고자 하는 브랜치를 선택한뒤 code 버튼을 눌러

Https URL을 복사해주자.

배포하고자 하는 프로젝트가 public 이라면 SSH가 아닌 HTTPS 주소를 복사합니다.

git clone 복사한주소 명령어를 입력하여 clone을 진행해준다.

위와 같이 clone을 진행했다면 ls 명령어를 통해 root 경로에

해당 프로젝트가 생성된것을 볼 수 있다.



이후 실습에 사용될 linux 명령어 모음과 설명

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과

이름이 같아야한다.

다음 프로젝트 폴더 경로가 존재 하는 경로로 이동해 주자.

profile
논리적인 사고와 추론을 지향합니다.

0개의 댓글