RDS(Relational Database Servide) 관계형 데이터베이스(RDBMS)를 생성하고 확장할 수 있는 서비스
DB 인스턴스를 손 쉽게 생성하고 관리하며 성능 확장도 할 수 있고 여러모로 편리하다.
장애에 대비한 Failover, 비동기 복제를 통해 읽기 성능을 향상하는 Read Replica 기능도 유용하다.
물론 EC2에 직접 MySQL 등을 설치해서 운영할 수도 있다
그러나 Failover, 장애 대비 등 RDS가 제공하는 기능을 직접 설치하고 구성해야 하는 불편함이 있다.
🧷 RDS 생성
가상 OS를 고르는 것 처럼 DB 엔진을 선택하고 스토리지(t2.micro)를 선택하는 등
RDS 인스턴스 생성은 EC2 인스턴스를 생성하는 것과 흡사하다.
천천히 읽어보면 이미 모두 알고 있는 것이지만 다중 AZ 배포는 처음 보는 것이기에 설명해보자면,
Multu-AZ Deployment. 한국어로 다중 AZ 배포.
장애에 자동으로 대처하는 Failover 기능을 위한 다중 가용 영역 복제 옵션이다.
사용하고 싶으면 생성에 체크하면 된다.
설정 중 VPC는 잘 모르면 일단 기본값으로 둔다.
그런데 VPC가 무엇인가?
AWS 안에서 웹으로부터 독립된 안전한 네트워크를 구성해주는 서비스로 생각하면 된다.
VPC 안에서 EC2, RDS 인스턴스를 만들게 되면 외부에서 직접적으로 접속하는 것을 막아
해킹 등의 보안 위협으로 부터 일부분 보호받을 수 있게 된다.
=> EC2에 RDS를 연결하기 위해 같은 VPC로 설정해줘야 하는 이유!
보안그룹 설정도 가능하다.
default는 접속 가능한 IP가 자기 자신 뿐이다.
보안 그룹은 나중에 추가하거나 새로 만들 수 있으니 일단 넘어가자.
또, MySQL을 사용하면 백업에 대해서 이슈가 있으니 이것도 확인하길 바란다.
그외 퍼블릭 액세스 여부를 체크하는 등 다양한 옵션이 있으니 원하는 대로 세팅 후 생성을 완료하면 다음 페이지로 이동한다. RDS DB 인스턴스가 생성될 때까지 10분 정도 걸린다.
생성이 완료 되었다면 endpoint, 즉 접속할 수 있게 된다.
🧷 한글 지원을 위한 파라미터 그룹 설정
만약 DB 정보에 영어가 아닌 한국어 등 다른 언어가 담길 가능성이 있다면 파라미터 그룹을 수정해줘야 합니다. RDS의 파라미터로 이동해서 파라미터 그룹을 하나 생성한 후 값을 바꿔주도록 합시다.
char로 입력해서 허용된 값 중 utf8이 가능한 건 모조리 utf8로 바꿔줍니다.
다음을 collation을 검색해서 모두 utf8_general_ci로 바꿔줍니다.
수정한 이후에는 DB 파라미터 그룹에서 해당 파라미터 그룹을 지정해주도록 합시다. 사실, 파라미터 그룹을 미리 생성해놓고 시작부터 해당 파라미터 그룹을 가진 DB로 만드는 것이 더 빠릅니다.
🧷 보안 그룹 설정
문제는 보안 그룹 설정을 어떻게 해놓았냐는 것이다.
DB용 보안 그룹을 만들어 놓았다면 그것을 사용하고 없다면 EC2에 가서 만들도록 한다.
My SQL을 사용하니 inbound에 MySQL을 지정하도록 하자.
DB 인스턴스를 수정한다. 보안 그룹을 수정해주면 된다.
이제 3306 포트로 접속할수 있게 되었다!
MySQL Workbench를 통해 실제로 DB 인스턴스가 생성되었고, 작동하는지 확인해보자
My SQL Connection에 + 버튼을 눌러 추가해보자
Connection Name은 자신이 원하는 내용으로
Hostname은 생성한 RDS DB 인스턴스의 endpoint
Port는 3306
UserName은 RDS DB 인스턴스를 생성할 때 만들었던 ID
Store in Valut는 RDS DB 인스턴스를 생성할 때 만들었던 비밀번호 입력
DB에 성공적으로 접속했다면 Success!
다음에는 EC2에 RDS를 연결하는 방법을 알아보자.
추가적으로 RDS에 알아두어야 할 것은
1. 정지가 없다. DB 스냅샷을 생성한 다음 삭제하고, 스냅샷을 이용해 다시 인스턴스를 생성하는 방식을 이용해야
2. Multi-AZ를 복제를 사용하도록 설정했다면, 메인 DB에 문제가 생겼을 때 예비 인스턴스가 자동으로 메인 DB가 된다. 좋은 점은 Endpoint가 가리키는 DB인스턴스가 자동으로 바뀐다는 것이다.
3. Multi-AZ는 MySQL과 Oracle 에서만 동작한다고 한다.
4. 스토리지 용량이 클수록 DB의 읽고 쓰는 속도가 빨라진다.
아래는 생활 코딩 강의인데 짧으니 한 번 들어볼 것
https://opentutorials.org/module/3860
'AWS > ☁️ AWS' 카테고리의 다른 글
AWS Route 53 (0) | 2020.02.16 |
---|---|
AWS RDS와 EC2 연동하기 (0) | 2020.02.15 |
AWS CloudFront / Signed URL(서명 URL) [미완] (0) | 2020.02.15 |
AWS CloudFront / 커스텀 오리진 사용(EC2) + Invalidation + geo restrict (0) | 2020.02.14 |
AWS CloudFront / S3와 CloudFront 연동 (0) | 2020.02.14 |