Step
Step 1. 서버 배포 [ EC2 ] : 현재글
Step 2. 클라이언트 배포 [ S3 ] : https://radpro.tistory.com/324
Step 3. 데이터베이스 연결 [ RDS ] : https://radpro.tistory.com/325
EC2를 이용한 서버 배포
: EC2 콘솔을 통해 EC2 인스턴스에 연결
: 프로젝트를 제작 후, 깃 클론을 통해 EC2 인스턴스에 코드 배포
: 서버를 실행 시키고 브라우저에 접속
: 확인법 = Postman 테스트
세팅 방법 1 - Session Manager 사용
참고 링크 : https://kdevkr.github.io/connect-private-ec2-instance-using-ssm-agent/
1. AWS 로그인 ( IAM 사용자 로그인 기준 링크 )
2. 화면 상단에 있는 검색창에 EC2, S3, RDS 검색해서 즐겨찾기 해놓기(별)
3. EC2로 들어가 인스턴스 검색필터 설정. 키워드는 본인 리소스 이름
이때, 본인의 리전을 정확하게 선택해야 인스턴스가 뜬다.
설정 후 연결 클릭
4. Session Manager => 연결
5. 터미널 같은게 열리면, bash 들어감 => cd ~ 를 통해 루트로 이동
세팅 방법 2 - git bash 사용 (SSH 방법)
1. 인스턴스 생성 후 인스턴스 선택 > 연결
2. SSH 클라이언트 선택
3. 로컬에서 git bash열고 > 키페어 수정
: 키 페어 pem 파일 경로가 다운로드라는 기준으로 작성함
$ chmod 400 ~/Downloads/AWS_Keypair.pem
4. 키 페어가 있는 경로로 들어가서 예시 코드를 복사해서 실행
공통 세팅
1. EC2 업데이트
$ sudo apt update
2. EC2에 Java 설치 : Yes까지 하고 마무리 => 버전확인
$ sudo apt install openjdk-11-jre-headless
...
After this operation, 173 MB of additional disk space will be used.
Do you want to continue? [Y/n]
java -version
3. Github에 SSH등록 => 깃 클론으로 프로젝트 받아오기
링크참고 : https://radpro.tistory.com/106
ubuntu@ip-172-31-41-164:~$ git clone git@github.com:codestates-seb/be-sprint-deployment.git
Cloning into 'im-sprint-practice-deploy'...
Username for 'https://github.com': kimcoding
Password for 'https://kimcoding@github.com:
...
4. 터미널을 통해 스프린트 코드 아느이 DeployServer 디렉토리로 이동 => 빌드
cd be-sprint-deployment/DeployServer
./gradlew build
5. EC2 인스턴스에서 서버 실행
java -jar build/libs/DeployServer-0.0.1-SNAPSHOT.jar
6. EC2 인스턴스 IP 주소로 접속해서 화면 확인
보안그룹 설정 (Security Group)
1. 해당 인스턴스의 보안그룹 확인
: EC2 => 인스턴스 필터링 => 보안 그룹 이름
2. 보안 그룹 규칙 편집
: 보안그룹 => 1번에서 확인한 보안그룹 선택 => 인바운드 규칙 => 인바운드 규칙 편집
3. 인바운드 규칙 추가
: 규칙추가 => 유형선택 => 포트범위 지정(8080, 13306 등) => 소스 선택 => 규칙 저장
* 유형은 사용자 지정TCP, 모든 TCP 등 선택
Shell Script (셸 스크립트)
1. 일반적으로 EC2에서 SpringBoot 실행하는 방법
: 아래의 명령어로 실행
: 실행유지를 위해 항상 EC2 세션창을 브라우저에 켜둬야 하는 상황이 발생
java -jar build/libs/DeployServer-0.0.1-SNAPSHOT.jar
2. Shell Script를 이용한 실행
: 셀이나 명령중 인터프리터에서 돌아가도록 작성된 스크립트
: 즉, SpringBoot를 백그라운드 실행해주는 작업
1) EC2에서 bash를 통해 진행
2) 아래의 명령어로 nano실행
$ nano restart.sh
3) 파일 안에 아래의 내용 저장 ( 저장 및 나가기는 ctrl + X )
#!/bin/bash
ps -ef | grep "DeployServer-0.0.1-SNAPSHOT.jar" | grep -v grep | awk '{print $2}' | xargs kill -9 2> /dev/null
if [ $? -eq 0 ];then
echo "my-application Stop Success"
else
echo "my-application Not Running"
fi
echo "my-application Restart!"
echo $1
nohup java -jar build/libs/DeployServer-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev > /dev/null 2>&1 &
4) 실행 권한 부여
chmod 755 restart.sh
5) 아래의 명령어로 실행
./restart.sh
'Codestates [Back-end] > 데일리 로그 [TIL]' 카테고리의 다른 글
22.10.04 Step 3. 데이터베이스 연결 [ RDS ] (0) | 2022.10.01 |
---|---|
22.10.02 Step 2. 클라이언트 배포 [ S3 ] (0) | 2022.10.01 |
22.09.30 Cloud - 개념 (0) | 2022.09.30 |
22.09.29 OAuth2 - Step 3. OAuth2 적용 (0) | 2022.09.29 |
22.09.28 OAuth2 - Step 2. SpringSecurity에서 OAuth2 인증 (2) | 2022.09.28 |