Cloud Infra Architecture (AWS)/AWS SAA-C03

AWS RDS란? (Relational Database Service)

seongduck 2023. 1. 11. 19:08

RDS란? 


  • 관계형 데이터베이스 서비스라고 함
  • 대표적으로 Aurora, PostgreSQL, MySQL, MariaDB, Oracle, SQL Server 등의 RDS 엔진을 AWS에서 제공
  • 관계형 DB이기 때문에 SQL 쿼리를 이용하는 DB용도에 사용
  • DB 다운타임 없이 스토리지 용량만큼 자동으로 확장가능 (Auto Scaling)
  • 3가지의 DB 스토리지 유형 제공
    • 범용 SSD 스토리지 : 일반적인 용도
    • 프로비저닝된 IOPS SSD 스토리지 : 빠른 I/O가 필요한 경우 사용
    • 마그네틱 스토리지 : 액세스 빈도가 낮은 경우 사용

이 친구들!!

 

 

RDS의 백업 지원


  • DB 인스턴스 백업 및 복구를 위한 두 가지 방법, 즉, 자동 백업 및 DB 스냅샷을 제공

 

  • 자동 백업(Automated backup)
    • 백업을 수행하는 백업 기간을 설정
    • 백업 보존 기간은 1일부터 최대 35일까지 설정가능
    • DB 인스턴스를 특정 시점으로 복구 가능 (Point in time recovery)
    • RDS는 DB 트랜잭션 로그를 5분마다 백업하므로 가장 오래된 시점부터 5분전까지 시점으로 복구가능
    • 자동백업을 비활성화 하려면 보존기간을 0으로 설정

 

  • DB 스냅샷
    • 사용자가 수동으로 스냅샷 생성가능 (수동 백업)
    • 사용자가 지정한 만큼 백업을 보존할 수 있음 (스냅샷 보존기간 없음)

 

  • 특정 시점으로 복구 또는 DB 스냅샷에서 복구 작업을 수행하면 새로운 엔드포인트를 가지는 새 DB인스턴스가 생성됨 (필요한 경우 기존 DB 인스턴스 삭제할 수 있음)
  • Amazon RDS DB 스냅샷과 자동 백업은 S3에 저장

 

 

RDS의 보안


  • SSL/TLS를 사용하여 애플리케이션과 DB 인스턴스 간의 전송 중 암호화 가능
  • AWS Key Management Service (KMS)를 통해 관리하는 키를 사용하여 모든 DB 엔진에 대한 저장 중 암호화 가능
  • 암호화되지 않은 DB 인스턴스 암호화 3가지 방법
    • RDS 인스턴스 스냅샷 생성
    • 암호화된 스냅샷 복사본 생성
    • 암호화된 스냅샷에서 RDS 인스턴스 복원
    • 암호화된 스냅샷에서 RDS 인습턴스 복원
  • 암호/PW외에 IAM 사용자 및 역할을 통해 DB인증 적용 가능
  • RDS에 보안그룹을 연결하여 IP주소, EC2 인스턴스에 대한 DB 연결 제어 가능
  • RDS Audit Logs 기능을 사용해 보안 감사에 활용 가능
    • 로그 데이터 장기 보관을 위해 로그 CloudWatch Log에 보낼 수 있음

 

 

RDS의 읽기 전용 복제본 (Read Relicat)


  • 읽기만 가능한 DB 인스턴스의 복제본을 여러 개 만드는 기능
  • 읽기를 별도로 분리하여 성능을 향상
  • 원본 DB의 읽기/쓰기 트래픽을 분산시켜 성능 향상
  • SQL쿼리를 많이 하는 리포팅 툴의 경우 읽기 복제본으로 연결하여 쿼리 성능 향상
  • 읽기 전용 복제본이 작동하려면 백업이 활성화된 상태로 유지되어야 함
  • 활성 상태의 장기 실행 트랜잭션이 있으면 완료 후에 읽기 전용 복제본을 생성하는 것을 권장

 

 

RDS의 다중 AZ (Multi-AZ)


  • DB를 여러 가용영역에 배치 하는 것
  • 가용영역 혹은 DB에 문제가 생겨 장애 발생시 Replica로 라우팅하여 DB를 Active로 바꿔 연결할 경우
    • 내구성 및 가용성을 향샹 시킬 수 있음 (RDS DB 다운타임이 가장 적게 할 수 있다.)
  • DB 인스턴스에 대한 업데이트는 가용영역 전체에서 예비 복제본에 동기식으로 복제
  • 한곳의 DB가 장애 발생시 다른 곳으로 자동 연결하도록 장애 조치 수행 (재해 복구 용도로 사용)
  • 복제본을 대기하는 것이지 Read / Write용도가 아니다. 즉, 읽기 트래픽 처리 불가능
    • AZ RDS는 읽기 트래픽 분산 용도가 아니다.

 

복제와 다중 AZ를 고려한 아키텍처는 다음과 같다.

 

 

RDS의 RDS Coustom


  • EC2에 RDS를 설치하여 구성하는 경우는 사용자가 서버를 포함한 모든 부분을 관리
  • RDS는 AWS에서 DB와 OS를 모든 부분을 관리하는 완전 관리형 서비스
  • 즉, RDS Custom은 사용자가 DB와 OS에 대한 관리 권한을 가진다.
    • 사용자 지정 DB 및 OS 패키지 설치, 특정 DB 설정 구성, 파일 시스템 구성, 자체 라이센스 관리 등
  • RDS보다 권한을 더 가진다.

 

 

RDS의 RDS Proxy


  • 애플리케이션이 DB와 연결 풀링(Pool)하고 공유하도록 하는 기능 (서버와 db가 직접적으로 연결 x)
  • 여러 애플리케이션 연결에서 db연결을 공유할 수 있으므로 DB 리소스를 효율적으로 사용가능하다.
    • 1) DB 장애 조치 시간 감소
      • 애플리케이션 연결을 유지하면서 예비 DB인스턴스에 자동으로 연결
    • 2) 보안 개선
      • DB에 AWS IAM인증을 필요에 다라 적용하고 AWS Secrets Manager에 보안 인증 정보를 안전하게 저장
      • 풀이 중간역할을 하기 때문에 보안적으로 안정적
    • 3) DB 성능 유지
      • DB 연결 풀을 설정하고 매번 새 DB 연결을 여는 데 필요한 메모리 및 CPU 오버헤드 없이 이 풀에서 연결을 다시 사용
      • 연결 요청이 지정된 한도를 초과하는 경우 애플리케이션 연결을 거부(DB 열린 연결 수 제어)하여 부하 감소

 

 

RDS 실습


  1. RDS 서비스로 들어가 DB를 생성한다.
  2. 손쉬운 생성은 미리 구성되어 있는 것이므로 표준 생성을 클릭한다.
  3. MySQL을 선택한다. (버전은 8.0.23)
  4. 템플릿은 프리티어으로 한다.
  5. 이름은 database-1 , admin, ss1234로 비밀번호를 설정해준다.
  6. DB 인스턴스 클래스는 t2.micro를 선택한다.
  7. 스토리지 유형은 프로비저닝으로 선택을한다.
  8. 오토스케일링도 설정할 수 있다 (어느 용량이 늘어나면 스토리지가 늘어나도록) (여기선 x)
  9. [연결]에서 퍼블릭 액세스를 [예]를 클릭한다.
  10. default를 지우고 [새로 생성]을 누르고 RDS_SG라고 하나 VPC 보안그룹을 만들어주자
  11. DB인증은 암호인증으로 한다.
  12. 추가구성은 여러가지 옵션이 있다. (최대 35일까지)
  13. 생성!

우리가 사용한 프리티어는 다중 AZ를 지원하지 않는다...

 

 

DB를 클릭해서 확인할 수 있는 이 앤드포인트는 애플리케이션을 연결해서 접속할 수 있다.

데이터 읽기 및 쓰기가능하다! 

 

 

DB인스턴스 생성할때 자동 백업을 활성화했기 때문에 자동백업도 가능하다.

또한 특정 시점으로 복원할 수 있다. (새로운 DB 인스턴스 생성 가능 - 위 방법 순서와 동일)

스냅샷도 가능한 것을 확인할 수 있다.

'Cloud Infra Architecture (AWS) > AWS SAA-C03' 카테고리의 다른 글

AWS ElastiCache란?  (0) 2023.01.11
AWS Aurora란?  (0) 2023.01.11
AWS 데이터베이스 개요  (0) 2023.01.11
AWS Global Accelerator란?  (0) 2023.01.11
AWS CloudFront 보안  (0) 2023.01.11