Spring 웹 서비스 AWS 배포

song yuheon·2023년 9월 6일
0

Spring

목록 보기
52/93
post-thumbnail
post-custom-banner

1. AWS RDS를 이용해서 데이터베이스 생성

  • 데이터 베이스 생성 방식 = 표준생성, 엔진 = MySQL
  • 템플릿 = 프리티어 ( 과금 방지 )
  • DB 인스턴스 식별자 = springboot-database
  • 자격 증명 -> 사용자 이름 및 암호 기입
  • 연결 -> 추가 연결 구성 ( 퍼블릭 액세스 기능 활성화, VPC 보안 그룹 새로 생성, VPC 보안그룹 이름 = sprintboot-db-security, 가용 영역은 자유로 )
  • 추가구성 -> DB이름 = shop
  • 나머지 default & DB 생성

2. RDS 포트 설정

  • springboot-database -> 연결 & 보안 -> 보안 -> VPC 보안 그룹 springboot-db-security -> 인바운드 규칙 편집 = Anywhere IPv4



3. Intellij에서 연결

  • 엔드포인트 확인

  • 배포할 Spring 프로젝트의 Database -> Data Source -> MySQL
    ( Name = Springboot-database, Host = 엔드포인트, User = 사용자, Password = 비밀번호, Database = 자신이 설정할 DB 이름 ) -> Test Connection ( 성공시 Ok )

  • Spring Boot 연결 ( application.properties )

    spring.datasource.url=jdbc:mysql://나의엔드포인트:3306/shop
    spring.datasource.username=나의USERNAME
    spring.datasource.password=나의패스워드
    spring.jpa.hibernate.ddl-auto=update


    select * from 테이블로 연결 됬는지 여부 확인

4. EC2 구매 및 활성화

  • 인스턴스 시작 -> name = 활성화 시킬 이름
  • 애플리케이션 및 OS 이미지 -> Quick Start ( Ubuntu -> 20.04 LTS 프리티어, t2.micro )
  • 새 키 페어 생성
  • launch instance

5. AWS EC2 접속

  • window -> gitbash ( ssh -i keypair.pem ubuntu@awsIp )

6. 배포파일 업로드

  • intellij -> gradle -> Task -> build -> build
  • Project -> build -> libs -> *.jar 파일 확인

  • AWS 우분투에 OpenJDK 설치
sudo apt-get update
sudo apt-get install openjdk-17-jdk // ( 프로젝트 빌드한 자바 버전이랑 일치하게 설치 )
java -version
  • Filezilla를 이용해 배포 파일 업로드
    파일 -> 사이트 관리자 -> 새 사이트

프로젝트 파일을 AWS Ubuntu로 드래그 엔 드롭

7. Spring 부트 동작

  • AWS - Ubuntu ( java -jar 프로젝트명.jar

8. AWS에서 포트 오픈

  • AWS -> EC2 -> 인스턴스 -> 보안 그룹 -> 규칙 추가 ->

9. 배포 테스트

Plus 포트 포워딩

현재는 반드시 뒤에 8080포트를 걸어줘야한다.
이는 사용자의 불편함을 야기한다. 이를 해결하기 위해서 포트 포워딩을 사용하면 된다.

  • AWS EC2 Ubuntu
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

-> 프로그램 다시 시작

  • http://AWS_Ubuntu_IP
  • 현재는 gitbash와 같은 터미널 종료시 프로세스 역시 종료된다.
  • 원격 접속 종료하더라도 서버가 계속 돌아가게 하는 방법
nohup java -jar 프로젝트명.jar &
  • 서버 강제 종료
# 아래 명령어로 미리 pid 값(프로세스 번호)을 본다
ps -ef | grep java

# 아래 명령어로 특정 프로세스를 죽인다
kill -9 [pid값]
profile
backend_Devloper
post-custom-banner

0개의 댓글