1. EC2 인스턴스 생성하기
1.0 서울 리전으로 설정하기 (np-north)
1.1 인스턴스 이름 및 이미지 선택
1.2 키페어 생성
키 페어가 생성되면, .pem 파일이 자동으로 다운로드된다.
이 키는 2에서 SSH 연결에서 사용된다!
나머지는 기본으로 설정하고, 인스턴스 생성하기
1.4 보안그룹 수정하기
EC2 서버를 생성할 때, 보안그룹 새로 생성이 포함되었기 때문에 EC2탭 > 네트워크 및 보안 > 보안그룹을 확인해보면
함께 생성된 보안그룹이 존재한다.
(만약 보안그룹을 새로 생성하지 않았다면, 보안그룹 생성을 클릭하여 생성해주면 된다.)
이름이 없는 보안그룹의 이름을 설정해준다.
EC2 서버를 띄워서 접속하는 것이 목적이므로, 인바운드 규칙만 설정해주면 된다.
규칙 설정 후, EC2 인스턴스 > 보안 탭을 확인해보면, 연결된 보안그룹(MyEsgServer)의 인바운드 규칙을 확인할 수 있다.
만약 보안그룹을 새로 생성했었다면, 연결을 원하는 EC2 인스턴스 > 작업 > 보안 > 보안그룹 변경을 통해
새로 생성한 보안그룹을 연결시켜주면 된다.
2. 발급받은 SSH 키로 우분투에 연결하기
연결을 원하는 인스턴스에 체크표시✅ 선택 후, 연결 버튼 클릭
SSH 클라이언트에 접속하는 방법이 자세하게 나와있으므로, 그대로 따라하면 된다!
일단 MAC에서는 SSH 연결이 가능하기 때문에, 기본 터미널을 통해 진행하였다.
# sshKey.pem 위치로 이동
cd /Users/hani/Downloads
# 접근 권한 변경
sudo chmod "sshKey.pem"
#ssh 연결
ssh -i "sshKey.pem" ubuntu@ec2-15-164-226-1.ap-northeast-2.compute.amazonaws.com
yes
이런 화면이 나오면, 우분투 ssh 접속에 성공한 것이다!
3. Git 연결 및 Git Clone
3.1 Git 설치
# git 다운로드
sudo apt-get install git
# git 설치 확인
git --version
깃 클론을 사용할 것이기 때문에, 해당 우분투 서버에 git을 설치해준다.
3.2 ssh 키페어 생성
# /.ssh 디렉토리에서 키페어를 생성하도록 한다.
cd ~/.ssh
# 키페어 생성
ssh-keygen -t rsa -C [깃허브 이메일 주소]
ls 명령어를 통해 확인해보면, 공개키와 비밀키 한 쌍이 생성된 것을 확인할 수 있다.
이때, id_rsa.pub (공개키) 내용을 cat 명령어로 출력하여 확인하고, 이를 github의 ssh에 저장해주어야한다.
cat id_rsa.pub
출력된 내용 전체 (ssh-rsa ~ .com)를 복사한다.
3.3 Github SSH key 등록
Github > Setting > SSH and GPG keys > New SSH Key 버튼을 클릭 후, Key 내용에 붙여넣기하여 SSH Key를 추가한다.
그러면 이렇게 SSH Key가 생성된 것을 확인할 수 있다!
이를 통해, EC2를 통해 생성한 우분투서버와 Git Repository를 연결하기 위한 준비는 모두 끝났다.
3.4 Git Clone
EC2 서버에 올리고자 하는 프로젝트의 Github Repository 주소를 복사한다.
git clone [복사한 레포지토리 주소]
깃 클론 완료!
4. Spring 빌드
4.1 java 설치
우분투 환경에는 기본적으로 java가 설치되어있지 않기 때문에, jdk를 설치해주어야 한다.
# openjdk 설치
sudo apt-get install openjdk-11-jdk
# 오류메시지 발생
Unable to locate package openjdk-11-jdk
이때, 위와 같이 "Unable to locate package openjdk-11-jdk" 라는 오류 메시지가 발생한다면
아래 과정을 통해 해결할 수 있다.
# 레포지토리 추가
sudo add-apt-repository ppa:openjdk-r/ppa
# 패키지 리스트 업데이트
sudo apt-get update
# openjdk 설치
sudo apt install openjdk-11-jdk
y
설치 완료~
4.2 Gradlew Build
Clone한 프로젝트 폴더 내부로 이동한 후에, ./gradlew build 명령어를 통해 빌드한다.
# 프로젝트 빌드
./gradlew build
정상적으로 빌드가 완료되었다면, 프로젝트 폴더 내에 build 폴더가 생성된다.
# build/libs 폴더로 이동
cd build/libs
libs 폴더 내에는 jar 파일이 생성되어있음을 확인할 수 있다.
4.3 jar 파일 실행 및 종료
다음 명령어를 통해 jar 파일을 실행시켜 준다.
이때, 맨 뒤의 & 옵션은 백그라운드에서 실행시켜준다는 의미라고 한다.
nohup java -jar [프로젝트 이름-SNAPSHOT.jar] &
명령어 실행 뒤에, 엔터를 한번 치면 프로젝트는 백그라운드에서 실행되는 상태로 커맨드라인으로 돌아올 수 있다.
ls 명령어를 통해 nohup.out 파일이 생성되었음을 확인할 수 있다.
# nohup 종료
ps -ef | grep [프로젝트명] # nohup으로 실행한 데몬 PID 확인
kill -9 [PID번호]
실행중인 프로젝트는 꼭 종료시켜줘야한다.
'AWS' 카테고리의 다른 글
Artillery 부하테스트 (0) | 2025.06.21 |
---|---|
[AWS][트러블슈팅] EC2 CPU100% 문제 해결 (1) | 2025.06.04 |
[AWS]기존 EC2로 AMI 이미지 만들고, AutoScaling 그룹에 ELB 연결하기 (0) | 2025.05.21 |
[AWS] 로드밸런서 유형과 구성요소 (0) | 2025.05.19 |
[AWS][트러블슈팅] S3 정적 웹사이트 호스트 오류 발생 (403 forbidden, 404 nosuchkey 오류) (0) | 2025.04.22 |