[AWS] AWS EC2란? EC2로 Git Repository 배포하기

AWS EC2 란?

EC2(Elastic Compute Cloud)AWS(Amazon Web Service) 에서 제공하는 클라우드 컴퓨팅 서비스 이다.

쉽게 AWS 에 돈을 지불하면 내가 원하는 OS 환경을 대여 해주는 시스템이라고 생각하면 된다.
직접 배포 환경을 구축하면 계정 생성하고 권한줘야되지, 포트열어줘야되지, 로그관리해야되지 귀찮지않던가!

AWS 를 이용하면 GUI(Graphical User Interface = 사용자 친화적 화면이라고 생각하자) 로 쉽게 모니터링 많은 서비스를 지원해주기 때문에 쉽게 시작 할 수 있다!

폐쇄적인 환경이라면 사용이 어려울 수 있다.
그리고 리눅스의 CLI(Command Line Interface = 검은화면에 초록색 흰색 줄이 나오는 화면) 환경을 경험해보지 못했더라도 이용 할 수 있으나, 알고써야 더 좋지 않겠는가.

만약 윈도우 환경에 직접 리눅스를 구축해보고 싶다면 가상머신을 설치하는 방법이 있으니 아래 글을 참조바란다.

가상머신(Virtual machine) 설치


EC2 인스턴스 생성

AWS 대쉬보드에 접속한다.

AWS

EC2 를 검색해 접속 후 인스턴스를 생성한다.

AWS

AWS

생성할 인스턴스의 이름을 지정한다.

AWS

클라우드의 환경은 ubuntu 로 설정한다. 내가 작업 할 때는 22.04 버전과 20.04 버전이 있었는데, 22.04 버전으로 진행 시 브라우저를 이용한 EC2 콘솔 접속이 되지 않아 20.04 버전을 사용 했다.

AWS

키페어를 생성한다.

AWS

AWS

AWS

인스턴스를 시작한다.

AWS

AWS


인스턴스의 포트 열기

생성한 인스턴스를 선택한다.

AWS

보안 부분을 선택한다.

AWS

보안 그룹을 선택해 인바운드 규칙을 추가한다.

AWS

AWS

유형에는 사용자 지정 TCP , 포트범위에는 8000 , 소스에는 사용자 지정 을 선택하고 0.0.0.0/0 을 입력 후 규칙 저장을 누른다.

AWS

추가한 인바운드 규칙 확인이 가능하다.

AWS


배포하기

인스턴스 콘솔창에 접속 한다.

AWS

AWS

AWS

Git Repository Clone 한다.

AWS

1
git clone https://github.com/ymkmoon/toyseven.git 

패키지 다운로드

1
2
sudo apt-get update # 패키지의 정보를 얻는다.
sudo apt-get install openjdk-8-jdk # openjdk를 설치한다

프로젝트 빌드

1
2
3
4
cd /toyseven
sudo chmod 777 ./gradlew  # 모든 사용자에 모든 권한 추가
sudo ./gradlew build -x test # 빌드
# 빌드 완료 시 /home/ubuntu/toyseven/build/libs/toyseven-0.0.1-SNAPSHOT.jar 에 jar 파일이 생성된다.

nohup 명령어를 이용한 배포

nohup 을 이용하는 이유는 배포 후 터미널 세션이 끊겨도 실행을 멈추지 않고 동작시키게 하기 위해서다.

1
2
# nohup java -jar jar파일 &
nohup java -jar /home/ubuntu/toyseven/build/libs/toyseven-0.0.1-SNAPSHOT.jar &

배포 확인

1
2
# 프로세스 확인
ps -ef | grep java

AWS

1
2
# 로그 확인
sudo vim nohup.out

AWS

Request 날려보기

AWS EC2 에 Request 가 정상적으로 안된다면 EC2 인스턴스의 인바운드 규칙에서 포트번호를 다시 한번 확인해보자.

AWS


주의할점

EC2 는 비용청구에 대해 굉장히 엄격합니다.

인스턴스 생성 후 돌려 둔 상태로 방치해두거나, 인스턴스 정지를 했음에도 탄력적 IP가 있다 어떻다 하면서 매달 비용이 발생하게 됩니다..

사용이 끝났으면 꼭 인스턴스를 종료하고 해당 인스턴스에 관련 된 모든걸 삭제 및 종료해야 비용이 청구되지 않으니… 꼭 종료 하시길 바랍니다.

Root 키가 털리면 1,000만원이 넘는 비용이 청구되는 경우도 생기고 AWS 에서는 개인 계정에 접근 할 수 없기에 직접 AWS 와 소통해서 솔루션을 받더라도 직접 해결해야 하는데 매우 번거로운 상황이 발생할 수 밖에 없습니다.

비용이 예상치 못하게 많이 나왔을 경우 Root 키가 해커한테 털렸을 가능성이 높으니, IAM 설정을 모두 삭제해야 되는 경우가 생길수도 있고, 계정 자체를 지워야 하는 경우가 발생할수도 있습니다.

모두 꼭 주의하시기 바랍니다.

Leave a comment