RDS는 aws에서 관리해주는 Relational Database Service로 별도로 서버 관리를 하지 않아도 대신 백업, 패치, 장애 관리 등을 해준다. 반대로 이런 managed service를 사용하지 않는다면 서버 대여부터 시작해서 database 기능과는 상관없는 많은 것들을 신경 써야 할 것이다.
RDS의 종류로는 완전 관리형 서비스인 aurora와 아닌 것들로 나눌 정도로 aurora 사용을 권장한다.
RDS (Aurora 외)
직접 사용하는 환경에 맞게 ec2 인스턴스와 EBS storate를 선택해서 운영한다. PostgreSQL, MysQL, MariaDB, Oracle, Microsoct SQL 등 웬만한 디비를 지원한다.
Read replica
read replica를 생성해서 비동기적으로 master db가 전파된다. (이때 read replica가 다른 az에 있으면 네트워크 비용이 발생한다.)
읽기에 대한 트래픽 분산을 위해 read replica를 사용한다면, master db의 failover를 위해 standby db를 사용한다. standby db는 master db의 변경사항을 동기적으로 전파받는다. master db가 응답을 못하는 경우에 빠지면 standby db가 master db로 승격되고, 두 db는 같은 dns를 사용하기 때문에 client에서는 신경 쓰지 않아도 된다.
Backup
매일 maintenance window 시간에 전체 백업을 하고, 5분 단위로 transaction log를 백업한다. 덕분에 이 간격 내에서는 백업 데이터로부터 데이터베이스를 복구할 수 있다. 자동으로 해주는 백업 외에 수동으로 snapshot을 생성할 수도 있다.
Aurora
MySQL, PostgreSQL과 호환되는 aws에서 만든 fully managed service이다. 클라우드 환경에 최적화되어 동기화 등에 필요한 성능도 더 좋아졌고, shared stoage를 사용해서 자동으로 64TB까지 확장된다.
Read replica
read replica를 수동으로 넣을 수도 있고, auto scaling policy를 추가해서 cpu, connection 등의 metric을 이용할 수도 있다.
다른 RDS에 비해 read replica의 동기화도 빠르며 이에 따라 failover도 빨라 고가용성을 높였다. master db에 문제가 생기면 다른 read replica가 master로 승격되며 이 모든 작업이 30초 이내에 진행된다.
Backup
자동으로 활성화되며 증분식으로 백업을 한다. 보존 기간은 최대 35일까지 지정할 수 있고, 백업하는 동안 성능에 영향은 끼치지 않는다.
Cluster
client는 aurora cluster에서 writer endpoint와 reader endpoint를 사용한다. writer endpoint는 master db를 가리키고, reader endpoint는 read replica를 load balancing 한다. master db에 문제가 생겨도 writer endpoint는 failvoer 된 새로운 master db로 보내준다.
Aurora Global Database
Aurora Global Database를 사용하면 여러 리전에 거쳐 aurora를 운영할 수 있다. Primary region, Secandary regions을 두고 master db 역할을 하는 primary region에서 장애가 발생하면 secondary regions에서 하나가 master db로 승격한다.
'aws' 카테고리의 다른 글
AWS CloudFront (0) | 2020.04.12 |
---|---|
AWS ElastiCache Redis (0) | 2020.04.11 |
AWS EC2 Instance 종류 (0) | 2020.04.09 |
AWS IAM 보안 정책 (0) | 2020.04.07 |
DNS 과정과 route 53 사용법 (0) | 2020.04.04 |
댓글