2012-12-17 4 views
0

현재 우리는 모든 사용자 생성 콘텐츠를 중간 크기의 EC2 인스턴스에 업로드하고 거기에서 업로드 된 모든 콘텐츠를 S3에 동기화하는 cron 작업을 실행합니다. 우리는 리소스가 S3로 옮겨 졌는지 여부 또는 업로드 인스턴스에서만 사용 가능한지 여부를 확인하는 백엔드 (업로드 된 파일에 액세스해야 할 때마다)에서 실행되는 코드가 있습니다.Amazon S3는 EC2와 독립적으로 사용할 수 있습니까?

이것은 다소 낭비가되지만 중복성을 제공합니다. S3이 다운 된 경우 업로드 상자에서 파일을 강제로 가져 오는 자바 스크립트 코드가 있습니다. 실제 파일 업로드는 인스턴스가 아니라 EBS에 저장됩니다.

S3 버킷에는 약 150GB 상당의 파일이 있습니다. S3 버킷의 별도 백업을 수행하는 데 시간이 오래 걸리며 모든 종류의 정기적 인 실행이 거의 불가능합니다.

내 질문은 이것도 필요합니까? 누구든지 S3와 EC2 사이의 가동 시간 통계를 알려줄 수 있습니까? S3가 다운되었지만 EC2를 사용할 수 있습니까? S3에 모든 것을 직접 업로드하고 그것이 성공했다는 것을 믿는 것이 더 쉬운 것처럼 보입니다. 반면에, 우리는 EBS에 모든 것을 저장하고 S3를 완전히 잊어 버릴 수 있습니다.

답변

2

EC2 인스턴스가 다운되는 것보다 S3가 다운 될 확률이 훨씬 높습니다. 단일 가용성 영역에서 단일 네트워크 연결을 사용하는 단일 호스트에서 실행되는 단일 인스턴스가 있습니다. S3는 2008 년

S3는 선택의 여지가 귀하의 지역에 걸쳐 퍼져 분산 시스템이기 때문에 중요한 가용성 이벤트를했다하지 않은 반면 그 과거, 플랫폼 수준에서, EC2 (특히 EBS 포함)는 severalprotractedoutages 있었다. 최종 일관성 보장을 사용하여 개체 수준에서 작동하는 것은 EBS 및 EC2에서 해결 된 문제보다 훨씬 간단합니다.이 모두가 일관성을 보장하기 때문에 (따라서 실패 할 수있는 방법도 있습니다.)

일반적으로 업로드 프로세스는 S3을 백업 저장소로 취급합니다. 즉, S3에 직접 업로드하거나 직접 쓰는 방식으로 EC2 인스턴스를 통해 업로드합니다. S3이 다운되면 처리 할 수 ​​없습니다. 업로드. 이 방법을 사용하면 앱이 실행되고 있지만 S3가 아닌 오류 모드가 발생하지만 데이터 손실 가능성이 크게 줄어 듭니다. 이는 일반적으로 사용할 수없는 것보다 심각한 문제입니다. 또한 EC2 실패에 대한 헤징뿐 아니라 인스턴스 저장소 인스턴스를 통한 EBS 실패에 대한 헤징과 같은 다른 가용성 영역의 여러 EC2 인스턴스를 통한 업로드를 동시에 처리 할 수 ​​있습니다.

관련 문제