본문 바로가기
AWS

[AWS] RDS 생성 - (EC2 연결, SpringBoot 배포)(2)

by lucas_owner 2023. 2. 16.

 

목표 

- 지난번에 배포했던 AWS EC2와 RDS 생성/연결 하는것을 진행 해보자. 

 

DB는 MySQL 5.7.34 버전을 사용할 예정이다. 

마찬가지로 프리티어(무료)를 사용할 예정이고, EC2 연결 및 Local 에서 연결 Test 까지 진행 할 예정이다.

 

◎ 과금

  • RDS 과금은 db.t2.micro 기준.
  • 750시간 까지 무료.
  • 초과시 시간당 0.026$ 부과.
  • 한달 3천원 ~ 이상 부과.
  • 사용용량 초과, 스냅숏(백업) 같은 기능으로 인해 추가 요금 발생 가능.

 

목차

  1. RDS 인스턴스 생성
  2. 보안 그룹 생성
  3. Local 접속 테스트
  4. 파라미터 그룹 설정(DB 설정)
  5. EC2 연결

 

1. RDS 인스턴스 생성 

- AWS Console에서 RDS 메뉴로 이동.

- 데이터 베이스 생성 버튼을 클릭!

 

 

1-1 DB 선택

- MySQL - 5.7.34 (버전은 사용자의 환경에 맞춰서 설정)

 

1-2 DB 접근 설정

- 식별자는 DB 인스턴스가 어떤것인지 식별하기 위한것이다. 

- 마스터 사용자 이름, 마스터 암호는 SpringBoot yml에서 DB Connection 설정이나, Local 에서 Test 할때 필요하다.

 

1-3 스토리지 설정

- 중요한 부분이다. (과금의 요소가 있음)

- 윗부분의 인스턴스는 프리티어(db.t2) 사용.

- 스토리지 부분의 할당된 스토리지는 프리티어에서는 20 GB 가 제공된다. 

또한 스토리지 자동 조정 부분을 체크 해제해줘야 한다!!!!! 과금요소이다.

 

1-4 연결

- 컴퓨팅 리소스 : 리소으에 연결을 선택하면 EC2 와 자동으로 연결해주지만, 여기서는 보안그룹을 새로 생성해서 할것이기 때문에 선택 하지 않는다. 

 

- 퍼블릭 엑세스 : EC2 뿐 아니라, Local 에서도 Test를 진행할 예정이기 때문에, '예'로 지정한다. 

* 만약 아니요를 선택한다면 퍼블릭IP가 할당되지않아, 외부에서 접근이 불가능 하기 때문이다!!

 

- 보안그룹은 새로 생성해준다, 뒷부분에 보안그룹을 Custom해서 EC2, Local 연결 할 예정이기 때문이다.

 

1-5 암호 인증 

- DB에 암호를 이용하여 접근 할 예정이기에 '암호 인증' 을 선택 해준다. 

 

1-6 추가 구성

- 초기 데이터베이스 이름은, DB를 해당이름 으로 만들어주는것이다. (필자는 기존 프로젝트에서 사용하던 DB명 기입)

 

- 백업 : 자동백업을 해제해 줘야한다, 사이드 프로젝트용, 연습용이라면 백업이 필요가 없기도 하고, 활성화가 되어있으면, 스냅샷을 생성하는 과정에서 DB 메모리를 많이 사용하기 때문이다. (과금된다는 얘기도 있다.)

 

 

 

2. RDS 보안그룹 설정

- EC2와 마찬가지로 RDS 또한 보안그룹 설정이 필요하다. 

이전에 EC2 생성시 보안그룹을 설정했었는데, RDS에서는 server 와, Local 에서 접속을 해야하기 때문에 보안그룹을 추가로 설정 해주는것이다. 

 

2-1 DB 정보 확인

- DB 가 생성되고 나면 위의 창이 나올것이다. 

 

- 아래의 보안 그룹규칙에는 2개만 나올것이다. 맨위의 인바운드 규칙은 Local IP를 자동으로 설정 해준것이다. 

 

- 인바운드 보안그룹을 클릭하여 추가 설정을 해주도록 하자.

 

 

2-2 인바운드 설정 추가

- 보안 그룹을 확인하려면 EC2 의 보안 그룹 메뉴로 이동해야 한다.

- 인바운드 규칙 편집 으로 이동

- 아래 빨간 박스 내부의 EC2 보안 그룹의 ID 를 추가 하고 저장 하면된다. 

 

 

 

3. Local 접속 테스트

 

- 엔드포인트를 복사 해둔다. 

- 엔드포인트란 yml에서 DB url 을 뜻한다. 

ex) jdbc:mysql://엔드포인트:[port]

 

3-1 Local Test (Dbeaver)

- 엔드포인트, username, password 입력 후 Test 

 

 

4. 파라미터 그룹 설정(DB설정)

- 파라미터 그룹 설정이란? 

  • TimeZone(시간)
  • Character Set 
  • Max Connection 

설정을 하게 되는데, 필수 설정이다. Character set 같은 경우는 utf8 과 같은 것을 설정해준다고 생각하면 된다.

 

4-1 파라미터 그룹 생성 (이미지가 안보이면 클릭)

 

-그룹 생성 - 그룹이름은 DB 이름과 비슷하게 만들어 주자.

 

4-2 Time Zone 설정

- 파라미터에 검색을 해서 time_zone의 설정을 -> Asia/Seoul 로 변경. 

 

4-3 Character set

 

- chracter_set 검색후 모든항목(6)개 를 전부 utf8mb4 로 변경한다.

* utf8mb4 : 이모티콘까지 지원하기에 최근 utf8 보다 많이 쓰인다.

 

4-4 Collation

- Collation 검색 후 나오는 2개 -> utfmb4_general_ci 로 설정!

 

*  2개 항목 확인! -> collation_connection, collation_server

4-5 Max Connection

- 최대 Connection 수를 설정한다.

- default 로 DB 성능에 따른 값이 설정이 되어있다. 

 

4-6 변경사항 저장 후 파라미터 그룹 변경(설정)

- RDS 정보 -> '수정' -> 추가구성 항목 이동 -> DB 파라미터 그룹을 방금 설정한 그룹으로 변경.

 

- 즉시 적용 후 인스턴스 수정

 

 

5. EC2 연결

- EC2 연결을 위한 RDS 설정은 다 했다. 

이제부터는 EC2의 yml 설정만 변경하면 된다!! 

 

- 혹은 파일을 다시 전송 하는것이 불편 하다면, git을 사용하여 pull 받는 방법, EC2 생성 및 설정 후 RDS 연결 후에 파일을 전송하는 방법 2가지가 있을것 같다. 

 

- 방법 및 순서

  1. application.yml 에서 DB Connection 정보를 RDS 로 변경한다. 
  2. clean build(재빌드)
  3. 서버 실행 및 테스트

 

반응형

댓글