관계형 데이터베이스 서비스 RDS
Amazon Relational Database Service(RDS)는 관계형 데이터베이스를 제공하는 서비스 입니다.
OS나 데이터베이스 엔진의 관리는 AWS 측에서 수행하므로 이용자는 몇 분 만에 데이터베이스를 생성해 이용할 수 있습니다. RDS는 인스턴스가 기동되는 시간만큼의 요금이 발생합니다.
- 데이터베이스 엔진은 데이터베이스에 대한 데이터 등록, 갱신, 삭제 처리를 관리하는 소프트웨어 입니다.
현재 8개의 엔진을 지원해 줍니다.
Amazon Aurora란?
Amazon Aurora는 Amazon Web Services(AWS)가 제공하는 고성능, 관리형 관계형 데이터베이스 서비스입니다. Aurora는 MySQL과 PostgreSQL과 호환되며, 기존의 관계형 데이터베이스보다 훨씬 더 높은 성능, 확장성, 가용성 및 보안성을 제공합니다.
- RDS를 구성하기 위해 입력해야 할 내용
- 데이터베이스 엔진, 버전
- DB 인스턴스 식별자(이름)
- 마스터 사용자 이름, 암호(로그인에 사용)
- DB 인스턴스 클래스(인스턴스 유형, 며신 성능)
- 스토리지 유형 설정(용량 및 성능 결정)
- 다중 AZ 배포
- 네트워크 설정(배치할 Amazon VPC 등)
데이터베이스 성능을 결정하는 인스턴스와 스토리지 유형
RDS 인스턴스 유형
인스턴스의 성능(CPU, 메모리)은 인스턴스 크기를 선택해 결정합니다.
db.m6g.large
- 'db'는 고정
- m : 패밀리, 메모리가 우선인지 범용인지에 따라 지정하는 문자열
- 6 : 세대, 숫자가 클수록 새롭고 고성능
- g : 추가 기능, Gravition2(CPU 이름)의 g와 같이 인스턴스가 실행될 서버의 특징을 기재. 문자가 없는 종류도 있음
- large : 크기, 크기가 클수록 고성능, 요금이 비싸다.
스토리지 유형
EBS와 마찬가지로 RDS에서도 데이터 저장을 위한 스토리지 설정을 할 수 있습니다.
볼륨 유형 | 개요 |
범용 SSD | 고성능으로 용량에 따라 읽기/쓰기 성능 결정 |
프로비저닝 IOPS SSD | 고성능이며 지정한 읽기/쓰기 성능 확보 |
마그네틱 HDD | 저렴한 비용 |
가용성 향상을 위한 예비 복제본과 읽기 성능 향상을 위한 읽기 전용 복제본
- RDS는 데이터를 처리하는 프라이머리 인스턴스 외에 예비 복제본(Standby replica)을 다중 AZ에 배포해 가용성을 높일 수 있습니다.
- 고가용성이란 시스템이 중단되지 않고 작동할 수 있는 능력으로, RDS에서는 이를 예비 복제본으로 구현 합니다. 이 구성을 다중 AZ 배포 라고 합니다.
- 프라이머리 인스턴스나 AZ에 장애가 발생하면 예비 복제본으로 전환해 데이터베이스를 계속 이용할 수 있습니다. 이 전환을 장애 조치(Fail Over)라고 합니다.
- 응용 프로그램에서 RDS에 접속할 때는 엔드포인트라는 DNS 형식의 접속 정보를 사용합니다.
- 프라이머리 인스턴스에 장애가 발생하면 이 엔드포인트의 목적지가 자동으로 예비 복제본으로 전환 됩니다.
- 응용 프로그램은 인스턴스가 아닌 엔드포인트로 접속한다.
- 프라이머리 인스턴스에 장애가 발생하면 엔드포인트의 목적지는 자동으로 예비 복제본으로 변경되고 예비 복제본이 프라이머리로 승격됩니다.
- RDS에는 읽기 전용으로 사용할 수 있는 읽기 전용 레플리카라는 기능이 존재합니다.
- 읽기 전용 레플리카는 프라이머리 인스턴스에서 복제된 인스턴스 입니다.
- 읽기 요청이 늘어나면 인스턴스의 수를 늘리는 스케일아웃 방식으로 성능을 향상할 수 있습니다.
- 쓰기 성능은 인스턴스의 크기를 변경하는 스케일업으로 성능을 향상해야 합니다.
RDS 보안 설정과 백업
RDS 접근 제어
RDS는 EC2와 마찬가지로 VPC 내에 생성됩니다. RDS 인스턴스를 생성하기 위해서는 최소한 두 개의 서브넷이 필요합니다. 서브넷은 리전 내의 서로 다른 AZ를 지정해야 합니다. 데이터베이스 접근 제어는 EC2와 마찬가지로 보안 그룹과 네트워크 ACL에서 설정합니다.
데이터베이스에 접속하는 것은 VPC 내에 구축한 응용 프로그램(EC2에 실행하는 스프링 같은 것)일 경우가 많기 때문에 해당 응용 프로그램에서만 데이터베이스에 접속할 수 있게 보안 그룹이나 네트워크 ACL로 적절하게 설정해야 합니다.
데이터베이스 엔진 업데이트
접근 제어와 함께 중요한 것 중 하나가 데이터베이스 엔진 '업데이트' 입니다. 데이터베이스 엔진이나 데이터베이스 엔진이 실행되는 OS에 취약점(보안 결함)이 발생할 수 있으므로 정기적으로 버전 '업그레이드'를 해야 합니다.
'업데이트' 작업은 유지 관리 기간이라는 사용자가 설정한 시간대에 실시 됩니다. 유지 보수 작업을 하면 RDS 인스턴스가 일시적으로 오프라인이 되므로 데이터베이스 사용률이 높은 이용 시간을 피해 설정합니다.
- 다중 AZ 배포를 사용하는 경우 예비 복제본 -> 프라이머리 인스턴스 순서로 유지 보수가 실행됩니다.
- 접속이 발생하지 않는 인스턴스에 대해 유지 보수 작업을 수행하므로 영향을 줄일 수 있습니다.
- 데이터베이스 엔진 업그레이드일 경우 프라이머리 인스턴스와 예비 복제본이 동시에 업그레이드 합니다.
데이터 백업
데이터 보호를 위해서는 데이터 손상되거나 손실되는 경우 복구할 수 있어야 합니다. 소프트웨어나 AWS의 장애, 사용자의 오작동으로 인해 데이터가 손상될 수 있습니다. 이러한 사태에서 데이터를 복구할 수 있게 데이터의 백업을 수행해야 합니다.
- RDS는 자동 백업 기능이 있어서 사용자가 지정한 일 수만큼의 스냅숏이 자동 유지됩니다.
- 보존 일수는 0~35일 사이로 지정할 수 있으면 0은 자동 백업 기능을 비활성화하는 값입니다.
- 첫 번째 스냅숏은 전체 데이터를 백업, 두 번째 이후의 스냅숏은 차분 데이터만 백업 (EBS 스냅숏과 동일)
- 스냅숏 취득 처리는 사용자가 지정한 백업 윈도우의 시간대에 실행됩니다. (유지 보수 윈도우와는 다른 시간대)
- 사용자가 원하는 시간에 수동 스냅숏을 취득할 수 있습니다.
- 수동 스냅숏 파일은 S3 버킷에 저장되므로 파일의 내구성은 매우 높습니다. (S3 버킷의 파일로는 보이지 않습니다.)
- 스냅숏은 새 RDS 인스턴스를 생성하는 방식으로 복원할 수 있으며 기존의 RDS 인스턴스에는 복원할 수 없습니다.
- 특정 시점 복구(PITR)
- 특정 시간을 지정하고 복원할 수도 있습니다.
- 데이터를 백업으로 계속 보존하는 용도보다 특정 시간으로 되돌리는 용도로 사용 합니다.
- 스냅숏과 데이터베이스의 변경 로그를 조합해 이 기능을 구현 합니다.
출처
https://product.kyobobook.co.kr/detail/S000200882352
'클라우드&인프라 > AWS 구조와 서비스' 카테고리의 다른 글
AWS DynamoDB (1) | 2023.12.26 |
---|---|
고기능 Aurora의 편리한 특징 (1) | 2023.12.26 |
AWS CloudFront (0) | 2023.12.25 |
간편하게 사용할 수 있는 DNS 서비스 (0) | 2023.12.24 |
ELB로 부하를 분산시켜 가용성 향상 (0) | 2023.12.24 |