복붙노트

[HADOOP] Amazon S3 아키텍처 [닫힘]

HADOOP

Amazon S3 아키텍처 [닫힘]

post @ http://highscalability.com/amazon-architecture는 Amazon의 아키텍처를 전반적으로 설명하지만 Amazon S3의 구현 방법을 알고 싶습니다.

내 추측 중 일부는 다음과 같습니다.

파이썬이나 PHP 같은 스크립팅 언어를 사용하여 훨씬 작은 규모로 이와 비슷한 것을 구현할 수 있습니까?

해결법

  1. ==============================

    1.Amazon S3는 Dynamo Paper에 설명 된 아키텍처를 사용하여 구현됩니다.

    Amazon S3는 Dynamo Paper에 설명 된 아키텍처를 사용하여 구현됩니다.

    http://www.allthingsdistributed.com/2007/10/amazons_dynamo.html

    이 논문은 일관된 해싱과 그 보장이 "궁극적 인 일관성"인 이유와 이유에 대해 설명합니다.

    Dynamo에 대해 이야기하는 충돌 해결은 S3 사용자에게 노출되지 않습니다. Amazon의 응용 프로그램에서 내부적으로 사용되지만 S3의 경우 유일한 충돌 해결 방법은 마지막으로 작성한 것입니다.

    편집 : Werner Vogels는 "Dynamo는 웹 서비스로 외부에 직접 노출되지 않지만 Dynamo 및 이와 유사한 Amazon 기술은 S3와 같은 Amazon Web Services의 일부에 사용됩니다." http://www.allthingsdistributed.com/2007/10/amazons_dynamo.html

    나는 그가 S3와 Dynamo의 구성 요소를 공유한다고 말하지 않고 있으며 Dynamo 자체가 S3에 전력을 공급하는 기술 중 하나라고 명시 적으로 말합니다. 주의 사항을 포함하여 S3에서 본 모든 내용은 S3가 인증, 회계 및 Dynamo 주변의 환상적인 웹 서비스 래퍼이며 사용자에게 보이지 않는 마지막 쓰기 성공 충돌 해결이라고 가정하여 설명합니다.

    원래의 질문은 S3의 기본 저장 메커니즘에 관한 것입니다. 명시 적으로 HDFS 나 CouchDB와 같은 비 관계형 데이터베이스와 같은 분산 파일 시스템이 아닙니다. Dynamo가이 역할을 수행합니다.

  2. ==============================

    2.Amazon S3의 아키텍처도 구현은 아직 공개되지 않았다. 이와 같이, 개발을 위해 확장을 위해 사용할 수 없다. 어떤 규모의 프라이빗 클라우드를 만들 수있는 능력.

    Amazon S3의 아키텍처도 구현은 아직 공개되지 않았다. 이와 같이, 개발을 위해 확장을 위해 사용할 수 없다. 어떤 규모의 프라이빗 클라우드를 만들 수있는 능력.

    클라우드 스토리지 아키텍처 주제에 대한 몇 가지 문서가 있습니다. 유용하다고 생각할 수도 있습니다. CACSS : 일반 클라우드 스토리지 서비스를 향한

    다른 방법으로 기술을 결합하여 하나의 우수한 성능, 확장 성 및 신뢰성 높은 클라우드 제공 스토리지 시스템에 대해서도 자세히 설명합니다. 이 연구는 경험이 부족한 클라우드를위한 지식 소스 역할을합니다. 제공 업체는 클라우드 스토리지 서비스를 신속하게 설정할 수 있습니다.

  3. ==============================

    3.콘텐츠가 "BLOB"로 저장되었지만 콘텐츠에 대해 신경을 쓰지 않고도 CouchDB와는 달리 2에 가깝습니다. 백엔드 스토리지는 여러 복사본을 저장하는 데 사용되는 클러스터 노드에 로컬 DB (BDB?)를 사용합니다. 읽기는 쓰기와 마찬가지로 사본이있는 노드로 갈 수 있지만 충돌을 제거하려면 쓰기를 해결해야합니다. Kevin이 언급했듯이 이것은 "결과 일관성"을 보장하지만, 언제 (또는 외부 POV에서 내부적으로 정의되었는지)에 대해 엄격한 보증을 제공하지는 않습니다.

    콘텐츠가 "BLOB"로 저장되었지만 콘텐츠에 대해 신경을 쓰지 않고도 CouchDB와는 달리 2에 가깝습니다. 백엔드 스토리지는 여러 복사본을 저장하는 데 사용되는 클러스터 노드에 로컬 DB (BDB?)를 사용합니다. 읽기는 쓰기와 마찬가지로 사본이있는 노드로 갈 수 있지만 충돌을 제거하려면 쓰기를 해결해야합니다. Kevin이 언급했듯이 이것은 "결과 일관성"을 보장하지만, 언제 (또는 외부 POV에서 내부적으로 정의되었는지)에 대해 엄격한 보증을 제공하지는 않습니다.

    Dynamo 문서를 읽는 것은 많은 개념을 이해하는 데 유용하지만 AFAIK 구현은 다릅니다. Dynamo는 다른 용도로 Amazon에서 내부적으로 사용됩니다. 두 가지 모두에 대한 오픈 소스 구현도 있습니다. 한 가지 흥미로운 것은 Project Voldemort입니다. CouchDB는 분명히 매우 흥미 롭습니다.

  4. from https://stackoverflow.com/questions/564223/amazon-s3-architecture by cc-by-sa and MIT license