관리 메뉴

거니의 velog

(58) AWS Elastic Beanstalk 4 본문

SpringBoot_React 풀스택 프로젝트

(58) AWS Elastic Beanstalk 4

Unlimited00 2024. 3. 12. 15:31

4. API 서버 수정

* API 서버를 빈즈톡에 올리기 전에 데이터베이스 설정을 변경해서 동작 여부를 확인한다. 예제에서는 MariaDB를 사용했지만, AWS는 MySQL이므로 이를 변경해 준다(MySQL과 MariaDB는 서로 호환이 되기는 하지만, 문제가 일어날 가능성을 최대한 줄여서 개발하도록 한다).
* 우선 build.gradle에 MariaDB 드라이버 대신 MySQL 드라이버를 추가한다.

dependencies {
    (...)
	// runtimeOnly 'org.mariadb.jdbc:mariadb-java-client'
	runtimeOnly 'com.mysql:mysql-connector-j'
    (...)
}

* application.properties 파일에서는 JDBC 연결 정보와 JDBC 드라이버를 수정한다. url 정보에서는 RDS의 엔드포인트를 지정한다(데이터베이스 연결 정보와 동일).

# 데이터베이스 관련 설정
# spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
# spring.datasource.url=jdbc:mariadb://localhost:3306/malldb
# spring.datasource.username=malldbuser
# spring.datasource.password=malldbuser

# AWS 데이터베이스 연결 설정
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://RDS주소:3306/malldb
spring.datasource.username=malldbuser
spring.datasource.password=malldbuser

# JPA에서 생성하는 SQL 설정
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.format_sql=true
spring.jpa.show-sql=true

# 파일 업로드 관련 설정
spring.servlet.multipart.max-request-size=30MB
spring.servlet.multipart.max-file-size=10MB

com.unlimited.upload.path=upload

# 스프링 시큐리티 로그 레벨 설정
logging.level.org.springframework.security.web=trace

(1) API 서버 애플리케이션 등록

* 로컬 환경에서 변경된 API 서버의 실행을 통해서 정상적으로 RDS와 연결이 가능한지 확인한다. 프로젝트를 실행하면 데이터베이스 내에 테이블이 생성되는 것을 확인할 수 있다.

* 테스트 코드를 활용해서 회원 데이터와 Todo 데이터들을 추가한다. 추가한 후에 데이터베이스를 확인한다. 특히, 회원 데이터는 로그인 테스트에 필요하다.

* 리액트 프로젝트를 실행해서 정상적인 동작을 확인해 본다. 현재 상황은 데이터베이스가 로컬 환경이 아니라 AWS의 RDS를 이용하는 상태이다.


(2) 빈즈톡의 애플리케이션 추가

* API 서버를 빈즈톡을 이용해서 배포해 본다. 이 작업이 수행되면 리액트에서는 localhost가 아니라 AWS의 경로를 이용하게 변경된다.
* 빈즈톡은 내부적으로 5000 포트를 이용해서 연결을 처리하므로 application.properties 파일에 server.port를 5000번으로 지정한다.

# 빈즈톡의 내부 API 포트 설정
server.port=5000

* API 서버 프로젝트에서는 Gradle의 bootJar를 실행한다. 실행 후에는 프로젝트의 build/libs 폴더와 함께 mallapi...jar 파일이 생성된 것을 확인할 수 있다.

$ ./gradlew

* 빈즈톡에서는 애플리케이션의 환경에서 업로드 및 배포를 선택한다.

* 프리티어로 사용하는 EC2의 경우 메모리가 1GB이므로 애플리케이션 배포에 시간이 조금 걸리므로 시간을 두고 확인해 주는것이 좋다.

* 정상적으로 배포가 완료되면 화면에는 API 서버에서 발생하는 에러 메시지가 출력되는 것을 확인할 수 있다.


 

'SpringBoot_React 풀스택 프로젝트' 카테고리의 다른 글

(60) AWS Elastic Beanstalk 6  (0) 2024.03.12
(59) AWS Elastic Beanstalk 5  (0) 2024.03.12
(57) AWS Elastic Beanstalk 3  (0) 2024.03.12
(56) AWS Elastic Beanstalk 2  (0) 2024.03.11
(55) AWS Elastic Beanstalk 1  (0) 2024.03.11