개인프로젝트/피그스페이스

[AWS] EC2에 SpringBoot 프로젝트 배포하기

DEV_HEO 2022. 10. 11. 00:51
320x100

1. EC2 생성

https://bcp0109.tistory.com/356

 

AWS 1편: EC2 생성 후 Spring Boot 띄우기

Overview AWS EC2 인스턴스를 생성하고 Spring Boot 서버를 띄워보는 것까지 진행합니다. 주 목표는 서버를 외부에 제공하는 거라서 따로 배포 시스템을 구축하지 않고 단순히 빌드 파일을 복사해서 수

bcp0109.tistory.com

 

 

2. PuTTY로 ec2에 접속

https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/putty.html

 

PuTTY를 사용하여 Windows에서 Linux 인스턴스에 연결 - Amazon Elastic Compute Cloud

프라이빗 키의 암호는 추가 보호 계층입니다. 프라이빗 키가 노출되더라도 암호 없이 사용할 수 없습니다. 암호문 사용의 단점은 인스턴스에 로그온하거나 인스턴스에 파일을 복사하기 위해 사

docs.aws.amazon.com

 

 

위 참조하여 putty 접속하고

login as: ec2-user 입력

 

 

2. STS 에서 Spring Boot 프로젝트 빌드하기

Gradle Tasks 탭에서

build > bootJar 더블클릭

 

빌드가 되고

탐색기에서 프로젝트 파일에 들어가보면

jar 파일이 생성됨

 

 

3. FileZilla로 jar파일 배포

https://velog.io/@dohaeng0/AWS%EC%97%90-Spring-Boot-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EB%B0%B0%ED%8F%AC-2-EC2-%EC%84%B8%ED%8C%85%EF%BC%86%EB%B0%B0%ED%8F%AC-%EB%8F%84%EB%A9%94%EC%9D%B8-%EC%97%B0%EA%B2%B0

 

AWS에 Spring Boot 프로젝트 배포 2 - EC2 세팅&배포 , 도메인 연결

저번 글에서는 AWS RDS를 세팅하고, Spring Boot에MySQL을 연동해봤다.이번 글에서는 AWS EC2에 실제로 프로젝트를 올려서 구동시켜보고 거기에 도메인을 연결해서 보기좋은 하나의 웹사이트로 변신시

velog.io

 

 

 

4. RDS 생성

https://bcp0109.tistory.com/357?category=1073811 

 

AWS 2편: RDS 생성 후 EC2 와 연동

Overview 지난 포스팅에서는 AWS 에서 EC2 인스턴스를 생성하고 Spring Boot 서버를 띄워 외부에서 요청하는 것까지 해봤습니다. 이번에는 데이터베이스 연동을 위해 RDS 인스턴스를 생성하고 이전에 만

bcp0109.tistory.com

그냥 대부분 기본 설정을 사용하면 되는데 "스토리지 자동 조정" 저 부분 체크만 해제해주시면 됩니다.

안그러면 개발을 진행하다 임계값이 초과되면 자동으로 스토리지가 늘어나서 과금될 가능성이 있습니다.

라고 써있지만

 

실제 어플리케이션을 마켓에 배포?할 프로젝트이기 때문에

체크 해주었다....과금이 과연 어떻게 될지

 

 

- EC2에 mysql 설치하기

https://daedamee.tistory.com/entry/MySQL-%EC%9B%90%ED%95%98%EB%8A%94-%EB%B2%84%EC%A0%84%EC%9C%BC%EB%A1%9C-%ED%8C%A8%ED%82%A4%EC%A7%80-%EC%84%A4%EC%B9%98With-Amazon-Linux

 

MySQL 원하는 버전으로 패키지 설치(With Amazon Linux)

안녕하세요, 대담이입니다. 다시 블로그를 시작하려고 오랜만에 글을 써내려가기 시작합니다 :) 먼저, 다시 시작하는 마음으로 Linux에 MySQL을 설치하는 방법을 다시 소개해드리려고 합니다. 최신

daedamee.tistory.com

 

- 중간 파리미터 그룹 설정에서

max connection은 66으로 설정

(https://velog.io/@rhgkssk1114/RDS-maxconnections-%ED%8C%8C%EB%9D%BC%EB%AF%B8%ED%84%B0-%EB%B3%80%EA%B2%BD-%EB%B0%A9%EB%B2%95 참고) 

 

 

 

 

5. 프로필 설정

https://velog.io/@seyoung755/AWS-EC2%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%B4-%EB%B0%B0%ED%8F%AC%ED%95%B4%EB%B3%B4%EC%9E%90-4-MySQL-%EC%84%9C%EB%B2%84-%EC%8B%A4%ED%96%89

 

AWS EC2를 이용해 배포해보자 (4) - 배포를 위한 프로젝트 세팅

지난 글에서 MySQL을 실행했으니, Springboot 프로젝트를 띄울 준비를 하겠습니다.

velog.io

https://velog.io/@stbpiza/Spring-Boot-%ED%99%98%EA%B2%BD-%EB%B6%84%EB%A6%AC%ED%95%98%EA%B8%B0

 

[Spring Boot] 환경 분리하기

환경분리의 필요성 실제 배포할 서비스라면, 개발 서버와 운영 서버를 나눠서 관리할 필요가 있습니다. 추가적으로 테스트 환경도 분리해주면 좋고, JPA를 사용한다면 ddl-auto: create 를 사용하는

velog.io

 

 

Driver com.mysql.cj.jdbc.Driver claims to not accept jdbcUrl

오류가 떠서 찾아보니

https://dahye-jeong.gitbook.io/til/spring/2020-03-23-batch/2021-12-08-scaling-out/2021-12-09-multithread-error

 

Multithread Job구현시 이슈사항 - TIL

TaskExecutor를 step에서 설정하여 청크 단위로 병렬 처리를 하는 경우, TaskExecutor에는 shutdown() 메서드가 없는 인터페이스를 호출하기 때문에, shutdown() 메서드를 호출할 수 없다.

dahye-jeong.gitbook.io

위 페이지 참고하여 해결함

 

 

database url = jdbc:mysql://엔드포인트:3306/db이름

 

 

 

6. 백그라운드 실행

nohub java -jar [jar파일이름.jar] &

명령어를 입력하면 백그라운드에서도 실행이 가능하다는데 

안된다...찾아보니 메모리가 커서그런가

찾아봐야겠다.

 

------------------------------------------------------

아래 사이트 참고해서 해결 ! 

https://sundries-in-myidea.tistory.com/102

 

AWS EC2 프리티어에서 메모리 부족현상 해결방법

AWS free tier를 사용하다보면 2%가 부족할 때가 있다. AWS 프리티어는 가난한 대학생에게는 한줄기 빛과 같은 존재인데, AWS의 프리티어라서 적게 돈이 나가는 것도 좋고, 실제로 이것저것 해볼 수 있

sundries-in-myidea.tistory.com

 

프리티어라 속도는 느릴 수 있다고 한다.

320x100