[AWS] RDS & DynamoDB

PinkTopaz·2023년 11월 20일
0
post-thumbnail

RDS

RDS는 Relational Database Service의 약자로, SQL을 언어로 사용하는 완전 관리형 관계형 데이터베이스 서비스이다.

RDS의 특징

1. Read Replicas

  • 백업과 성능향상을 위해서 데이터베이스를 여러 대의 서버에 복제하는 행위를 Replication이라고 하는데, RDS에서도 읽기 전용 복제본을 최대 5개까지 만들 수 있다.
  • SELECT 쿼리와 같은 read 작업만 가능하다.
  • 비동기 방식이라 짧은 시간 동안 Replica와 Master 간의 데이터 차이가 발생할 수 있다는 한계는 있다.

2. Storage Auto Scaling

  • 데이터베이스 인스턴스의 수를 증가시키거나 감소시키는 horizontal scaling이다.
    (* vertical scaling : adding more power (CPU, RAM, storage, etc.) to an existing machine.)
  • 읽기 부하가 높을 때에는 추가적인 read replica를 자동으로 생성(최대 5개)하여 부하를 분산한다.

3. Multi AZ (다중 AZ)

  • 다중 AZ를 설정하면 AZ별 인스턴스에는 마스터 DB로부터 동기적인 복제가 일어난다.
    • 하나의 작업이 완료될 때까지 다음 작업이 시작되지 않아서 동기적이 복제가 실패하지 않는 이상은 데이터의 일관성을 지킬 수 있다.
    • 여러개의 RDS 이지만, 하나의 DNS만 바라본다.
      (CNAME DNS를 통해 여러개의 RDS지만 하나의 도메인으로 접속해서 거기서 특정 데이터베이스로 접속하게 되는 것!)

서버를 이중화하는 방법

그래서 평소에는 read/write 작업 둘 다 지원을 하지 않는데, active에 장애가 되면 standby에서 active로 승격되서 그때부턴 read/write 둘 다 가능해진다고 한다! (인터레스팅)

Read Replica는 Read만 가능하고 Primary 서버에서 read와 write가 가능하다!

RDS 사용하기 vs EC2에서 MySQL 사용하기

$20.5 정도 차이가 난다고 생각하면 DBA(데이터베이스 관리자)를 고용하는 것보다는 나을지도 모르겠다.
관리형 서비스니까 데이터 내결함성( 시스템의 일부 구성 요소가 작동하지 않더라도 계속 작동할 수 있는 기능)이 중요하다면 RDS의 장점을 이용해보는 것도 나쁘지는 않을 것 같다.
이 글을 참고해보면 EC2에서 mysql을 사용하는 것과 RDS를 사용하는 것의 차이를 이해하기 좋다!


DynamoDB

managed serverless NoSQL DB로

  • 완전 관리형
  • 서버리스
  • 관계형 데이터베이스가 아닌
    서비스이다.

DynamoDB는 이렇게 key-value쌍으로 데이터를 저장한다.

DynamoDB를 사용할만한 이유

  • 특정 시간 동안만 데이터가 저장되는 TTL 기능을 지원한다.
  • DAX 클러스터를 읽기 캐시로 사용할 수 있다.
    • 클라이언트는 일반적으로 DynamoDB 엔드포인트 대신 DAX 엔드포인트를 사용하여 데이터에 액세스하여 ms 단위의 latency만 갖고도 충분히 데이터를 읽어올 수 있다.
  • Global Table 기능
    • 여러 서로 다른 리전에 테이블을 복사하고 이들 각각에 대해 active-active 설정을 하여 어디서든 빠르게 접근할 수 있다.
  • DynamoDb 스트림과 Lambda/Kinesis Data Streams를 통합할 수 있다.
    • Dynamo 테이블의 모든 변화에 따라 함수를 호출할 수 있다.
  • 운영하다 장애가 발생하면 AWS support의 도움으로 어떻게든 문제를 해결 할 수 있다고 한다.

느낀점

DynamoDB가 뭔가 좋다는 건 알겠는데,,,
아직 DB에 대한 지식이 많이 부족해서 구조에 대한 글을 읽어도 좀 와닿지 않는 부분이 있어서 DB에 대해 공부를 좀 하고 다시 DynamoDB 문서를 읽어봐야겠다!

profile
🌱Connecting the dots🌱

0개의 댓글