문제

1kb 크기의 데이터 청크 모음 (수억만 순서대로)이 있으며 이러한 데이터 청크를 저장하고 쿼리하는 방법이 필요합니다. 데이터 청크가 추가되지만 삭제하거나 업데이트되지 않았습니다. 당사의 서비스는 S3, EC2 플랫폼에 배포됩니다.

Amazon Simpledb가 존재한다는 것을 알고 있지만 플랫폼의 아그나 스틱 인 솔루션을 원합니다 (예를 들어 AWS를 벗어나야 할 경우).

제 질문은 데이터 청크를 저장하고 검색하기위한이 두 가지 옵션 중 프로와 사기가 무엇입니까? 성능은 어떻게 비교됩니까?

  • 데이터 청크를 S3의 파일로 저장하고 필요할 때 가져 오십시오.
  • MySQL 서버 클러스터에 데이터 청크를 저장하십시오

성능 차이가 많이 있습니까?

도움이 되었습니까?

해결책

이러한 데이터 청크에 대한 액세스를 응용 프로그램 사용자에게 직접 제공해야합니까? 그렇지 않다면 S3 및 HTTP GET 요청은 과잉입니다. 또한 S3은 보안 서비스라는 점을 염두에두고 모든 GET 요청 (1KB의 데이터에 대한 오버 헤드)은 상당히 클 것입니다.

MySQL 서버 클러스터가 더 나은 아이디어이지만 EC2에서 실행하려면 탄성 블록 저장소를 사용해야합니다. 마지막으로 SimpleDB를 배제하지 마십시오. 아마도 문제를위한 최상의 솔루션 일 것입니다. 시스템을 신중하게 설계하면 향후 다른 데이터베이스 시스템 (배포 또는 관계형)에서 쉽게 마이그레이션 할 수 있습니다.

다른 팁

작은 XML 파일을 사용하여 구조화 된 데이터 객체를 유지하고 S3 "키"에 의존하여 이러한 객체를 찾아보기 위해 S3를 일종의 "데이터베이스"로 사용하려고 시도했습니다.

EC2에서도 성능은 용납 할 수 없었습니다. S3에 대한 대기 시간은 너무 높습니다.

EBS 장치에서 MySQL을 실행하면 레코드가 너무 많아도 더 빠릅니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top