EC2와 RDS를 연동하는 이유는 DB서버를 따로 두기 위해서이다.
나도 처음엔 EC2 인스턴스에다가 DB서버까지 둘 생각이였는데 아래와 같은 상황 때문에 RDS를 사용해
DB 서버를 따로 두었다.
1. EC2의 적은 용량
프리티어를 사용하는 나로써는 EC2에서 기본으로 제공하는 1GB의 용량은 데이터베이스를 저장하기엔 턱없이 부족한 용량이였다.
2. 서버에러시 DB에 접근이 아예 불가능한것
인스턴스에 에러가 생긴다면 DB에 접근할수 있는 방법이 아예 사라지는것이다.
그리고 이 뿐만아니라 RDS를 사용하면 여러 이점들이 있어서 나는 RDS를 사용하기로 결정하였다.
RDS를 생성하기 전에 EC2에서 보안그룹을 먼저 만들어줘야 한다.
보안그룹을 만들려면 아래와 같은 정보들을 알고 있어야 한다.
1. 인스턴스의 Public IP 와 Private IP
2. 인스턴스의 보안그룹 이름
3. 인스턴스의 VPC ID
4. 본인 컴퓨터의 IP
위 정보들을 따로 적어두었다면 이제 보안그룹 탭으로 가서 보안그룹을 새로 생성하면 된다.
보안 그룹 이름은 본인이 원하는대로 적어주면 되고
VPC는 위에서 따로 적어둔 VPC id로 설정하면 된다.
그리고 나서 아래에서 인바운드 규칙을 아래와 같이 설정해준다.
유형은 MYSQL/Aurora 로 설정해두고 소스를
1. 보안그룹 이름
2. ec2 private ip
3. ec2 public ip
4. 내 컴퓨터 ip
로 설정하고 보안그룹을 생성한다.
보안 그룹을 생성했으면 이제 RDS로 넘어가서 데이터 베이스를 생성하자.
RDS 서비스로 들어가서 데이터 베이스 생성하기를 눌렀다면 아래와 같은 화면이 나올것이다.
여기서 본인이 사용하고자 하는 DBMS를 선택한다. 나같은 경우는 MySQL을 사용할것이기에 아래와 같이 했다.
그리고 쭉 내리다 보면 템플릿이 나오는데 템플릿은 프리티어로 생성한다.
(본인이 프리티어가 아니라 유료계정이라면 다른걸로 해도 된다.)
그리고 아래에는 db 인스턴스 명이랑 DBMS 마스터 사용자 이름과 비밀번호를 설정할수가 있다.
여기서 설정한 마스터 이름과 암호는 앞으로 DBMS에 들어갈때 필요한 id와 pwd이니 어딘가에 적어두거나
꼭 알아둬야 한다.
그리고 나머지는 일단은 기본 설정으로 그냥 냅두고 우리가 설정을 바꿀 부분은 아래와 같다.
VPC는 우리가 위에서 얻어온 VPC id로 맞춰 놓고 기존 VPC 보안 그룹에서는 우리가 EC2 보안그룹에서
새로 만든 보안그룹으로 설정을 해준다.
그리고 퍼블릭 엑세스에서 '예' 로 선택해서 퍼블릭에서도 접근이 가능하게 설정을 해둔다.
그리고 아래로 내려가서 암호 인증으로 하게 하고 초기 DB를 만들고 싶다면 아래 화면에서 만들면 된다.
이렇게 만들고 나서 데이터베이스를 생성하면 된다.
그럼 이제 마지막으로 해당 데이터 베이스의 파라미터를 수정해주도록 하자.
파라미터 그룹 탭으로 이동한 다음 파라미터 그룹을 새로 생성해야 한다.
아래 화면에서 본인이 원하는 이름에 맞게 생성한후에
생성을 누른다.
파라미터 그룹이 생성되고 난후 아래와 같이 char를 검색해 utf-8로 바꿔줄수 있는건 모두 바꿔준다.
그 다음엔 collation을 검색해서 나온 collation_connection을 utf8_general_ci로 설정한다.
그리고 마지막으로 time_zone을 검색해 값을 Asia/seoul로 설정한다.
그리고 나서 편집을 완료 한다.
그럼 이제 우리가 만든 데이터베이스의 파라미터 그룹을 위에서 만든 파라미터 그룹으로 설정해놓자.
그럼 이제 비로소 데이터베이스를 다 만들었다.
그럼이제 EC2에서 우리가 위에서 만든 데이터베이스로 접근을 해보자.
EC2로 연결을 하기에 앞서 일단 우리가 만든 데이터베이스의 엔드포인트를 복사하거나 어딘가에 적어두자.
그리고 나서 EC2를 연결하여 아래와 같은 명령문을 입력하자.
mysql -u root -p -h DB엔드포인트
그럼 PWD를 입력하라고 뜨는데 DB 생성할때 만든 마스터 암호를 적고 엔터치면 비밀번호가 틀리지 않는 이상 접근이 잘 될것이다.
'코딩일기 > 날씨앱 만들기 프로젝트' 카테고리의 다른 글
[리눅스 / Ubuntu] AWS EC2에 Spring Boot 프로젝트 배포방법 (Maven) (0) | 2022.01.26 |
---|---|
[MySQL] MySQL workbench에서 RDS 접근하는법 (0) | 2022.01.26 |
[리눅스 / Ubuntu] Ubuntu 에 maven 설치하기 (0) | 2022.01.25 |
[Spring Boot] Retry와 Recover 설명 및 사용법 (0) | 2022.01.25 |
[Spring Boot] 메일 발송 SMTP 사용법 (Google) (0) | 2022.01.25 |