목표
- 지난번에 배포했던 AWS EC2와 RDS 생성/연결 하는것을 진행 해보자.
DB는 MySQL 5.7.34 버전을 사용할 예정이다.
마찬가지로 프리티어(무료)를 사용할 예정이고, EC2 연결 및 Local 에서 연결 Test 까지 진행 할 예정이다.
◎ 과금
- RDS 과금은 db.t2.micro 기준.
- 750시간 까지 무료.
- 초과시 시간당 0.026$ 부과.
- 한달 3천원 ~ 이상 부과.
- 사용용량 초과, 스냅숏(백업) 같은 기능으로 인해 추가 요금 발생 가능.
목차
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가지가 있을것 같다.
- 방법 및 순서
- application.yml 에서 DB Connection 정보를 RDS 로 변경한다.
- clean build(재빌드)
- 서버 실행 및 테스트
'AWS' 카테고리의 다른 글
[AWS] EC2 생성 - Spring Boot 배포(1) (0) | 2023.02.15 |
---|---|
[AWS] nohup - EC2 SSH 접속종료시 서버 유지 방법 (0) | 2023.02.15 |
[AWS] EC2 포트 포워딩 (Port forwarding) - 포트연결 (0) | 2023.02.14 |
댓글