CloudService & AWS (2)

이유준·2024년 6월 10일

Backend_School

목록 보기
6/6
post-thumbnail

1. RDS(Relational Database Service)

1.1 RDS란?

Amazon RDS는 클라우드 환경에서 관계형 데이터베이스를 쉽게 설정, 운영 및 확장할 수 있게 해주는 완전 관리형 서비스이다.

AWS에서 제공하는 RDS는 DB 관리의 복잡성을 줄이고, 확장성과 고가용성을 보장하며, 다양한 DB 엔진을 지원하여 다양한 애플리케이션 요구를 충족시킬 수 있다.

DB 엔진이란?

데이터베이스를 관리하고 조작하는 소프트웨어의 핵심 부분이다. DB의 저장, 조회, 업데이트, 삭제와 같은 작업을 수행하고, 데이터 무결성, 보안, 백업 및 복구, 트랜잭션 관리 등을 처리한다.

1.1.1 주요 특징

  1. 완전 관리형 서비스
    - RDS는 DB의 프로비저닝, 패치 관리, 백업, 복구 등 일상적인 DB 관리 작업을 자동화한다.
    - 이를 통해 사용자는 DB 인프라 관리에 소요되는 시간을 절약하고, 애플리케이션 개발과 같은 핵심 비즈니스에 집중할 수 있다.

    프로비저닝??

    IT 시스템에서 하드웨어, 소프트웨어, 데이터, 사용자 계정 등의 자원을 준비하고 배포하는 과정을 말한다.

    다양한 IT 서비스와 인프라스트럭처에서 중요한 역할을 한다.

  2. 다양한 데이터베이스 엔진 지원

    • RDS는 MySQL, PostgreSQL, MariaDB, Oracle, Microsoft SQL Server, Amazon Aurora 등의 다양한 DB 엔진을 지원한다.
    • 사용자는 애플리케이션 요구사항에 맞는 DB 엔진을 선택할 수 있다.
  1. 확장성 및 고가용성
    - RDS는 읽기 성능 향상을 위한 읽기 복제본(Read Replica) 기능과, 장애 조치(Failover) 기능을 제공하여 고가용성을 보장한다.

    • 또한, 사용자는 필요에 따라 손쉽게 DB 인스턴스의 크기성능을 확장할 수 있다.

      Read Replica


      원본 DB 인스턴스는 read/write 권한을 가지고, read replica는 read 권한을 가짐.

      원본 DB 인스턴스는 애플리케이션의 모든 write 작업 (INSERT, UPDATE, DELETE 등)을 처리하고, Read Replica는 원본 인스턴스의 데이터를 읽을 수만 있지, 직접적인 쓰기 작업은 불가능하다.

      읽기 전용 복제본을 사용하면, 손쉽게 단일 DB 인스턴스의 용량 한도 이상으로 탄력적인 스케일 앗웃하여 읽기 중심의 데이터베이스 워크로드를 사용할 수 있다.

      Amazon RDS에서 소스 DB 인스턴스의 스냅샷을 사용해 두 번째 DB 인스턴스를 생성하고, 엔진의 기본 비동기식 복제 기능을 사용해 소스 DB 인스턴스가 변결될 때마다 읽기 전용 복제본을 업데이트 한다.

      Failover

      Failover는 고가용성을 보장하기 위해 장애 발생 시 자동으로 데이터베이스 인스턴스를 백업 인스턴스로 전환하는 과정이다. 하나의 AZ 영역에서 장애가 발생할 경우 다른 가용 영역의 인스턴스로 자동으로 전환할 수 있도록 한다.

      RDS는 생성 시 다중 AZ 배포 옵션이 있는데, 이를 통해 기존 운영 인스턴스가 되는 primary 인스턴스와 failover 목적으로 대기를 시킬 대기 인스턴스(standby)가 있다. 이때 개기 인스턴스는 primary가 존재하는 AZ와는 다른 AZ에 생성된다.

      운영중인 primary가 이상이 생길 시, RDS는 자동으로 standby 인스턴스로 failover를 시도한다. failover가 되면, 기존 primary가 가지고 있던 접속 정보를 그대로 물려받는다.

  1. 보안
    • RDS는 DB 인스턴스에 대한 네트워크 접근 제어, 데이터 암호화, 보안 그룹 설정 등을 통해 높은 수준의 보안을 제공한다.
    • 또한, AWS Identity and Access Management(IAM)와 통합되어 사용자 및 권한 관리를 효율적으로 수행할 수 있다.
  1. 자동 백업 및 복구
    • RDS는 자동 백업 기능을 제공하여 사용자가 설정한 보존 기간 동안 데이터베이스의 정기적인 스냅샷을 생성한다.
    • 이를 통해 데이터 손실 시에도 손쉽게 특정 시점으로 복구할 수 있다.

RDS의 스냅샷(Snapshot)??

Amazon RDS에서 데이터베이스 인스턴스의 백업을 생성하는 기능을 말한다.

스냅샷을 사용하면, 특정 시점의 DB 상태를 캡쳐하여 저장할 수 있으며, 나중에 이 스냅샷을 사용하여 DB를 복원할 수 있다.

1.1.2 사용 사례

  • 웹 애플리케이션 :
    RDS는 확장 가능하고, 안정적인 데이터베이스 백엔드를 제공하여, 대규모 웹 애플리케이션에도 높은 성능과 가용성을 보장한다.

  • 모바일 애플리케이션 :
    모바일 애플리케이션의 데이터 저장소로 RDS를 사용하여, 신뢰성 있는 데이터 저장 및 관리가 가능하다.

  • 비즈니스 애플리케이션 :
    ERP, CRM 등 다양한 비즈니스 애플리케이션에서 RDS를 사용하여 데이터베이스 관리의 복잡성을 줄이고, 성능을 최적화할 수 있다.

    • ERP (Enterprise Resource Planning) :
      ERP는 기업의 자원 관리를 위한 통합 시스템이다. ERP 시스템은 조직의 모든 부서와 기능을 하나의 통합된 시스템으로 연결한다.

      재무, 인적 자원, 공급망, 생산, 재고, 판매 및 유통 관리 기능이 주로 이룬다.

      부서 간의 협업 강화, 데이터의 일관성, 의사결정 과정을 개선할 수 있다.

    • CRM (Customer Relationship Management) :
      CRM은 고객 관계 관리를 위한 시스템이다. CRM 시스템은 고객과의 모든 상호작용을 기록하고 분석하여, 고객 관계를 개선하고, 판매를 증대시키며, 고객 만족도를 높이는 것을 목표로 한다.

      고객 데이터 관리, 판매 관리, 마케팅 자동화, 고객 서비스, 분석 및 보고 기능이 주로 이룬다.

1.2 RDS의 주요 특징

  1. 완전 관리형 서비스
    Amazon RDS는 데이터베이스 관리의 여러 측면을 자동화한다.

    사용자는 하드웨어 프로비저닝, 데이터베이스 설정, 패치 적용 및 백업과 같은 관리 작업을 걱정할 필요가 없다. RDS가 이러한 관리 작업을 자동으로 수행해주기 때문이다.

    RDS가 관리 작업을 자동으로 수행해주기에, 데이터베이스 관리의 복잡성을 줄일 수 있고, 사용자가 애플리케이션 관리에 집중할 수 있도록 해준다.

  1. 다양한 데이터베이스 엔진 지원
    위에서 언급된 RDS가 지원해주는 데이터베이스 엔진들과 그 중 Amazon의 고성능 데이터베이스 엔진인 Amazon Aurira를 지원함으로써 사용자는 애플리케이션 요구사항에 따라 적합한 데이터베이스 엔진을 선택할 수 있다.
  1. 자동 백업 및 복구
    RDS는 자동 백업 기능을 제공하여 사용자가 설정한 보존 기간 동안 데이터베이스의 자동 백업을 수행한다.

    백업은 사용자의 데이터 손실을 방지하며, 필요 시 특정 시점으로 복구할 수 있는 기능을 제공한다. 또한, 사용자는 수동으로 백업을 생성할 수도 있다.

  2. 고가용성 및 장애 조치
    Amazon RDS는 고가용성을 위해 여러 가용 영역(AZ)에 걸친 자동 장애 조치(failover) 기능을 제공한다.

    다중 AZ 배포를 통해 데이터베이스 인스턴스의 복제본을 다른 가용 영역에 생성하여, 장애 발생 시 자동으로 복제본으로 전환하여 서비스 중단을 최소화할 수 있다.

    read replica(읽기 전용 복제본)는 비동기식으로 DB 인스턴스를 복제하는 반면, standby replica(대기 복제본)는 동기식으로 복제한다. 읽기 전용 복제본과 다르게 대기 복제본은 읽기 트래픽을 처리할 수 없다.

  1. 확장성
    RDS는 읽기 성능을 향상시키기 위해 읽기 복제본(Read Replica)을 지원한다.

    읽기 복제본은 원본 데이터베이스의 읽기 전용 복제본으로, 읽기 전용 작업을 오프로드하여 메인 데이터베이스의 부하를 줄일 수 있다.

    또한, 필요에 따라 데이터베이스 인스턴스의 크기와 성능을 손쉽게 조정할 수 있어 애플리케이션의 성장에 따라 확장이 용이하다.

  2. 보안
    RDS는 데이터베이스 인스턴스에 대한 네트워크 접근 제어를 위해 Virtual Private Cloud(VPC)를 지원하며, 보안 그룹을 설정하여 인스턴스에 대한 액세스를 제어한다.

    데이터 암호화는 전송 중 데이터와 저장된 데이터를 모두 암호화하여 데이터 보안을 강화한다.

    또한, AWS IAM과 통합되어 사용자 및 권한 관리를 효율적으로 수행할 수 있다.

  3. 모니터링 및 로깅
    Amazon RDS는 Amazon CloudWatch를 통해 데이터베이스 인스턴스의 성능 지표를 모니터링하고 로그 파일을 관리한다.

    CloudWatch를 통해 다음과 같은 성능 지표를 실시간으로 모니터링할 수 있다.

    • CPU
    • 메모리
    • 디스크 I/O
    • 등등
  1. 비용 효율성
    RDS는 사용한 만큼만 비용을 지불하는 유연한 결제 방식을 제공한다.사용자는 온디맨드 인스턴스 또는 예약 인스턴스를 선택하여 비용을 최적화할 수 있다.예약 인스턴스를 사용하면, 장기적인 비용 절감 효과를 누릴 수 있다.

📖오늘을 마치며

금일 강의는 개념이나 이론 보다는 실습 위주로 진행되었다. IAM, RDS를 익히는 시간을 가졌고, RDS에서 만든 데이터베이스에 프로젝트를 연결하는 실습을 진행하였다.

그래서 강의 시간에 빠르게 넘어간 부분들 중에 흥미로운 부분들을 복습하면서 발견하였다. 스냅샷을 이용한 데이터 복구, AZ에 생성되는 복제본들에 대한 개념은 특히나 우리가 RDS를 이용하면 좋은 이유를 설명해주는 듯하다.

0개의 댓글