2008-09-10 8 views
13

누군가 Amazon SimpleDB 데이터 저장소의 라인을 따라 백엔드 데이터베이스로 사용할 것을 고려한 사람이 있습니까?Amazon SimpleDB

SQL Server 호스팅 (적어도 영국)은 비싸므로 클라우드 파일 저장소 (S3)와 함께 응용 프로그램을 개발하는 데 사용할 수있는 응용 프로그램을 만들 수 있습니다.

위대한 이론이지만 누구나 사용을 고려해 볼 수 있습니다. 실제로 여러분의 의견을 읽으면서 실제 제작 소프트웨어로 사용하는 사람이 있습니다.

답변

14

아마존 서비스에 대한 좋은 분석은 Dare입니다.

S3는 내가 일반적으로 "blob storage"로 설명한 내용을 처리했습니다. 일반적인 웹 응용 프로그램에는 일반적으로 이름/경로로 간단히 액세스 할 수있는 미디어 파일 및 기타 리소스 (이미지, CSS 스타일 시트, 스크립트, 비디오 파일 등)가 있습니다. 그러나 이러한 리소스에는 메타 데이터도 포함되어 있습니다 (예 : YouTube의 동영상 파일에는 평점에 대한 메타 데이터, 업로드 한 사용자, 조회수 등). 질의 가능하고 도식화 된 스토리지에 대한 필요성은 SimpleDB가 들어오는 곳입니다. EC2는 어떤 이유로 든 가상 서버가 다운 될 경우 지속되지 않는 로컬 파일 시스템 인스턴스로 계산에 사용될 수있는 가상 서버를 제공합니다. SimpleDB와 S3를 사용하면 EC2에서 제공하는 계산 기능을 구현할 때 "Web 2.0"스타일 응용 프로그램의 큰 클래스를 구축 할 수 있습니다. 그러나 S3 나 SimpleDB 어느 쪽도 데이터베이스 구동 웹 응용 프로그램을 구축하는 일반적인 LAMP 또는 WISC 개발자 경험을 원하는 개발자 나 BLOB 저장소의 버킷에 딱 들어 맞지 않는 사용자 지정 저장소 요구 사항이있는 응용 프로그램에 대한 솔루션을 제공하지는 못합니다 또는 체계화 된 저장 장치. 영구적 인 파일 시스템에 액세스하지 않고 Amazon의 클라우드 컴퓨팅 플랫폼 개발자는 원하는 경험을 얻기 위해 EC2에서 S3로 수동으로 데이터를 백업하는 정교한 솔루션을 제시해야했습니다.

0

하지만 SQL Server가 정말로 필요합니까? PostgreSQL 또는 MySQL과 함께 살 수 있습니까? 두 가지 모두 대부분의 작업에서 괜찮은 것으로 입증되었습니다.

이제 SQL Server 기능이 필요한 경우 운이 없어진 것입니다.

또 다른 옵션은 서버를 임대하는 것입니다. 비용이 얼마나 비쌉니까?

(나는 괜찮아요 적어도 그것을 위해, 잘 작동하는 응용 프로그램 이미지를 저장하기 위해 아마존 S3를 사용했습니다)

0

내가 SimpleDB를 사용하지 않은,하지만 S3의 조합을 사용하고, EC2, 우리의 응용 프로그램을위한 MySQL.

SimpleDB를 사용하고자한다면 MySQL을 사용하는 것이 좋습니다 (확장 성이 뛰어나고 가격이 비싸지는 않습니다).

S3 및 EC2 측에서는 실제로 실용적입니다.

+0

RDS> MySQL은 꽤 비쌉니다! – Jasper

11

아마존 클라이언트 라이브러리가 고통 스럽기 때문에 Net2D :: Amazon :: SimpleDB :: Simple에서 간단하게 앱을 포팅 할 수 있도록 라이브러리를 작성했습니다. 라이브러리는 아직 CPAN에 없지만, http://rjurneyopen.s3.amazonaws.com/SimpleDB/Simple.pm에 있습니다. 아이디어는 SimpleDB 안팎에 해시를 채우는 것을 사소한 것으로 만드는 것이 었습니다.

방금 ​​앱을 사용하기 위해 포팅했습니다. 전반적으로 SimpleDB에 깊은 인상을 받았습니다 ... 비효율적 인 쿼리조차도 반환하는데 2-3 초 밖에 걸리지 않습니다. SimpleDB는 Erlang/parallel 특성으로 인해 테이블의 크기를 신경 쓰지 않는 것처럼 보입니다. 테이블 캔은 쉽게 사용할 수 있습니다.

고통은 당신이 세거나, 합계하거나, 그룹화 할 수 없다는 사실에서 비롯됩니다. 그런 일을하려고한다면 ... SimpleDB는 아마 당신을위한 것이 아닙니다. 지금은 기능면에서 memcached와 MySQL 사이의 어딘가에 존재합니다. 당신은 제한적으로 주문을하실 수 있습니다. 그것도 당신 자신이 그것을 확장 할 필요가 없다는 것은 좋은, 그리고 당신이 그것에 얼마나 많은 것들을 상관 상관하지 않는 좋은. 그러나 분석과 같은 고급 작업은 기껏해야 고통 스럽습니다. 당신은 자신의 계산 서버 측을해야 할 것이다. 그것도 큰 플러스 모든 컴퓨터에서 나는 simpledb CLI를 http://code.google.com/p/amazon-simpledb-cli/ 내 데이터를 쿼리를 사용할 수 있습니다.

혼란스러운 '잡았다'가 있습니다. 예를 들어, 속성은 둘 이상의 값을 가질 수 있으며 아이템을 저장할 때 'replace'를 명시 적으로 설정해야합니다. 또한 undef 또는 null 문자열을 저장하면 해당 속성 이름/값 쌍을 삭제하거나 null/빈 문자열을 설정하는 대신 라이브러리 오류가 발생합니다.

크게 정규화되지 않은 방식으로 생각하는 것을 배우는 것은 조금 이상합니다. 위의 제안은 새로운 응용 프로그램에 가장 적합하다고 말하면서 두 번째 이유입니다. SQL 응용 프로그램에서 SimpleDB로 이식하는 것은 응용 프로그램 논리를 변경해야하기 때문에 고통 스러울 수 있습니다. 당신이하는 일은 조금 다릅니다. 아마존의 문서는 이것을 설명하는 데 꽤 능숙합니다.

이 모든 것은 SimpleDB 꼭대기에있는 라이브러리에서 추출 할 수 있습니다. 따라서 SimpleDB를 사용하기 위해서는 좋은 라이브러리를 선택하고 싶을 것입니다. 아마 직접적으로 다루지 않을 것입니다. PHP 측에서는 일을 쉽게하기위한 몇 가지 작업이 있으며 내 라이브러리가 있습니다. RAILS activesource가 있지만,별로 도움이되지 않는 것 같습니다.

여전히 게임 초기이지만 다른 API와 비교할 때 (트위터가 떠오른다), SimpleDB REST API는 매우 간단하며 (특히 XML이라고 생각하면) 와. 나는 당신의 응용 프로그램의 요구 사항과 그것의 사용의 경제성에 따라 그것을 추천 할 것입니다. DB에 큰 부담을주지 않고 확장 가능한 MySQL/memcache 콤보로 귀찮게하지 않으려는 서비스를 빠르게 확장하려는 경우 SimpleDB는 '간단한'솔루션을 제공 할 수 있습니다.

필자는 기능이 계속 성장할 것으로 기대하며, 더 복잡하고 흥미로운 것들을 많이하는 응용 프로그램에 좋은 선택이 될 것입니다. 그러나 지금은 일반적인 Web 2.0 서비스를 타깃으로하며 이에 적합합니다.

3

우리는 거의 독점적으로 새로운 프로젝트에 SimpleDB를 사용하고 있습니다. 유지 보수가 필요없고 가용성이 높으며 설치가 쉽지 않습니다. Ruby 개발자라면 SimpleDB의 ActiveRecord 인터페이스 인 SimpleRecord을 사용하면 쉽게 사용할 수 있습니다.

0

SimpleDB는 많은 응용 프로그램에서 훌륭하게 작동합니다 ... 프로젝트에 많은 분석보고, 가입 등이 필요할 경우 MySQL 또는 하이브리드 모델을 고려할 수 있습니다.

SimpleDB로 간다면 우리는 내부 용으로 Radquery.com을 개발하여 대중에게 공개했습니다.

관련 문제