aws 배포 4단계: elastic beanstalk + RDS

wisdom·2022년 9월 13일
0

백엔드 개발자라면?

목록 보기
29/42

AWS-V4

  • 엘라스틴빈스톡 + RDS(데이터베이스) 연동

진행 순서

  • 엘라스틱빈스톡 생성
    - aws-v4-beanstalk
  • 구성 설정
    - 소프트웨어설정 - 환경 속성 - 프로젝트(웹서버)
    - 해당 속성은 환경변수로서 애플리케이션에 전달
    - 키패어 등록

RDS 세팅

CREATE DATABASE mydb; 

USE mydb; 

CREATE TABLE Book (
	id BIGINT AUTO_INCREMENT PRIMARY KEY, 
	title VARCHAR(255), content VARCHAR(255), 
	author VARCHAR(255) ); 

SHOW VARIABLES LIKE 'c%'; 

ALTER DATABASE metadb CHARACTER SET = 'utf8mb4' COLLATE = 'utf8mb4_general_ci';

SELECT * FROM Book;

환경 변수 설정

  • 아래 사진의 key 값과 코드가 연결됨
    - value 값에 실제 값 작성
  • 민감 정보를 Github에 올리지 않고 아래와 같이 숨겨야함

spring:  
  datasource:   
    url: jdbc:mariadb://${rds.hostname}:${rds.port}/${rds.db.name}  
    driver-class-name: org.mariadb.jdbc.Driver  
    username: ${rds.username}  
    password: ${rds.password}
  • 엘라스틱빈스톡으로 생성하는 환경변수는 jar 파일을 직접 배포해서 실행시키면 적용되지 않는다.

  • 무조건 엘라스틱빈스톡으로 정상적인 배포를 할 때만 환경변수가 작동한다.

  • RDS_HOSTNAME 의 경우 스프링 yml 파일에서 접근할 때 3가지 방법이 있다.
    1. rds.hostname
    2. rds_hostname
    3. RDS_HOSTNAME

  • 여기서 점(dot)을 쓸 수 있는 이유는 스프링에서 .으로도 _를 찾아주기 때문이다.

  • 자바로 접근할 떄는 아래와 같이 찾을 수 있다.

System.getProperty("RDS_HOSTNAME");
profile
문제를 정의하고, 문제를 해결하는

0개의 댓글