source

AWS MySQL RDS vs AWS DynamoDB

lovecheck 2023. 1. 2. 22:42
반응형

AWS MySQL RDS vs AWS DynamoDB

저는 MySQL을 꽤 오랫동안 사용해 왔습니다만, 구조나 SQL Query 등에 대해서는 매우 만족하고 있습니다.

현재 AWS에서 새로운 시스템을 구축하고 있으며, DynamoDB를 검토하고 있습니다.지금은 조금밖에 몰라요.

한쪽이 다른 쪽보다 나아요?

Dynamo DB의 장점은 무엇입니까?

MySQL 쿼리 등으로부터 이 플랫 스타일의 DB로의 이행은 어떠한가?

실제로 DynamoDB와 MySQL은 사과와 오렌지입니다.DynamoDB는 NoSQL 스토리지 레이어이며 MySQL은 관계형 스토리지에 사용됩니다.응용 프로그램의 실제 요구에 따라 사용할 항목을 선택해야 합니다.실제로 일부 애플리케이션은 둘 다 사용하여 적절하게 처리될 수 있습니다.

예를 들어 단일 키 또는 키/범위 조합에 대해 조회할 수 있는 관계형 스키마(트리 구조, 스키마 없는 JSON 표현 등)에 적합하지 않은 데이터를 저장하는 경우 DynamoDB(또는 기타 NoSQL 저장소)가 최선의 선택입니다.

릴레이셔널 구조에 적합한 데이터에 대해 잘 정의된 스키마가 있고 다양한 방법으로 데이터를 쿼리할 수 있는 유연성(물론 필요에 따라 인덱스를 추가)이 필요한 경우 RDS가 더 나은 솔루션이 될 수 있습니다.

DynamoDB를 NoSQL 스토어로 사용하는 주된 이점은 클러스터 데이터 스토어를 관리할 필요 없이 필요한 수준에서 읽기/쓰기 처리량을 보장할 수 있다는 것입니다.따라서 애플리케이션에 초당 1000개의 읽기/쓰기가 필요한 경우 해당 수준의 처리량을 위해 DynamoDB 테이블을 프로비저닝하면 기본 인프라에 대해 걱정할 필요가 없습니다.

RDS는 인프라스트럭처 자체에 대해 걱정할 필요가 없다는 이점도 많지만, 최대 인스턴스 크기가 더 이상 유지되지 않을 정도로 많은 수의 쓰기를 수행해야 하는 경우에는 옵션이 없습니다(읽기 복제본을 사용하여 읽기용으로 수평으로 확장할 수 있습니다).

업데이트 노트:DynamoDb는 글로벌 secondary 인덱싱을 지원하므로 해시 및 범위 키의 조합 이외의 데이터 필드에서 최적화된 룩업을 수행할 수 있습니다.

모든 DynamoDB 테이블을 RDS MySQL로 이행했습니다.

특정 태스크에 DynamoDB를 사용하는 것은 타당할 수 있지만 DynamoDB 위에 새로운 시스템을 구축하는 것은 정말 나쁜 생각이다.최적의 계획 등 항상 DB의 추가 유연성이 필요합니다.

여기 우리가 다이너모에서 이사한 이유가 있다.DB:

  1. 인덱싱 - 새 테이블을 만들지 않으면 키를 즉시 변경하거나 추가할 수 없습니다.
  2. 쿼리 - 데이터 쿼리가 매우 제한됩니다.특히 색인화되지 않은 데이터를 쿼리하려는 경우.물론 가입은 불가능하므로 코드/캐시 계층에서 복잡한 데이터 관계를 관리해야 합니다.
  3. 백업 - 이러한 번거로운 백업 절차는 RDS의 슬릭한 백업에 비해 실망스러운 일입니다.
  4. GUI - UX 불량, 검색 제한, 재미 없음
  5. 속도 - 응답 시간이 RDS에 비해 문제가 있습니다. RDS의 내부 캐싱을 위해 설정한 장소에서 이를 보완하기 위한 정교한 캐싱 메커니즘을 구축할 수 있습니다.
  6. 데이터의 무결성 - 유동적인 데이터 구조라는 개념은 처음에는 좋지만 일부 데이터는 "확정"되어 있는 것이 좋습니다.작은 버그가 당신의 데이터베이스를 파괴하려고 할 때 강력한 타이핑은 축복입니다.DynamoDB를 사용하면 모든 것이 가능하며, 실제로 잘못될 수 있는 것은 모두 가능합니다.

현재 일부 시스템에서는 DynamoDB를 백업으로 사용하고 있으며, 향후에는 명확하게 정의된 특정 작업에 사용할 수 있을 것입니다.이는 나쁜 DB가 아니라 핵심 시스템의 100%를 지원하는 DB가 아닙니다.

장점은 확장성과 내구성입니다.믿을 수 없을 정도로 투명하게 확장되며 항상 (어느 정도) 올라갑니다.이것들은 매우 훌륭한 기능이지만, 단점을 보완하는 것은 아닙니다.

AWS의 설명은 이쪽에서 보실 수 있습니다.

, Lookup 쿼리를 주로 사용하는 경우(참가 쿼리가 아닌 경우), DynamoDB(및 기타 NoSQL DB)가 좋습니다.많은 데이터를 처리해야 하는 경우 MySQL(및 기타 RDBMS)을 사용할 때 제한됩니다.

MySQL 쿼리나 데이터 스키마를 재사용할 수 없지만 NoSQL을 배우기 위해 노력을 기울인다면 중요한 도구를 도구 상자에 추가합니다.DynamoDB가 가장 간단한 솔루션을 제공하는 사례는 많습니다.

Dynamo 사용 시DB는 DynamoDB의 항목/레코드가 400KB로 제한되어 있다는 것도 알아야 합니다(DynamoDB 제한 참조).대부분의 경우 이 방법은 작동하지 않습니다.그래서 DynamoDB는 몇 가지 장점이 있지만 전부는 아닙니다.다른 많은 NoSQL 데이터베이스도 마찬가지입니다.

언급URL : https://stackoverflow.com/questions/13966368/aws-mysql-rds-vs-aws-dynamodb

반응형