2011-09-09 7 views
0

높은 트래픽을 처리하기 위해 일부 EC2 인스턴스에서 웹 응용 프로그램 (WordPress 기반)을 실행할 때 확장 할 계획입니다. AWS가 처음입니다. 인스턴스는 동일한 데이터 (이미지, 비디오 ...)에서 작업해야합니다.Amazon EC2 인스턴스에 대한 공유 데이터

이 공유 데이터의 저장소로 S3을 사용하려고 생각합니다.

내 질문은 : 나는 S3를 사용하는 경우

  • , 내가 업로드하고 S3로 /로부터 데이터를 얻을 내 응용 프로그램에 대한 별도의 코드를 작성해야합니까? 또는 EC2 인스턴스를 S3에 마운트하는 마술 방법이 있습니다. 그런 다음 EC2 인스턴스가 S3에 액세스하여 로컬 스토리지에 액세스 할 수 있습니까?

  • S3가 웹 서비스 (사용자가 파일을 업로드하고 S3에 파일을 업로드하는 데 시간이 걸리는 경우)를 통해 액세스되기 때문에 조금 느리다는 말을 들었습니다. 공유 데이터를 저장하는 더 좋은 방법이 있습니까?

Amazon EC2의 크기 조정 기능에 대한 문서를 읽었습니다. 그러나 공유 데이터를 처리하는 방법에 대해서는 언급하지 않았습니다. 어떤 도움을 주셔서 감사합니다. 감사.

답변

0

S3 저장소를 가상 드라이브 나 저장소로 사용할 수있는 메커니즘을 제공하는 여러 가지 타사 응용 프로그램이 있지만 EC2 인스턴스에 저장소로 S3 버킷을 '탑재'할 수있는 고유 기능이 없습니다. 대부분은 미리 설정된 양의 무료 저장 용량을 제공 한 다음 더 많은 양의 계층화 된 요금 청구 메커니즘 (Google for 'S3 storage interface')을 제공합니다.

API를 통해 S3를 사용하거나 인터페이스 레이어를 사용하는 코드를 작성할 때 앱과 저장소 간에는 항상 대기 시간이 있습니다. 이는 물리적 인 사실이며 S3 저장소가 EC2 클러스터에 국한되지 않기 때문에 지연을 없앨 수있는 방법이 없습니다. 따라서 '로컬'스토리지 액세스 속도를 얻지 못할 것입니다.

대안이 당신의 EC2 인스턴스에 지역입니다 EBS를 사용할 수 있습니다 - 그것은 (예를 들어,이 지역 지역화 액세스 에지 위치를 제공하지 않습니다) S3에 서로 다른 특성을 가지고 있지만, 응용 프로그램 사용을 위해 훨씬 빠릅니다 이는 EC2 클러스터 내부에 있고 로컬 스토리지로 마운트되기 때문입니다.

+0

답변 해 주셔서 감사합니다. 그러나 EBS을 저장소로 사용하는 경우 폴더의 최대 저장 용량은 1TB입니다 (해당 폴더에 1 EBS 만 마운트 할 수 있음). 그리고 다른 인스턴스는이 EBS에 액세스 할 수 없습니다. 내 경우에는 사람들이 보통 무엇을하는지 알고 있습니까? EC2 인스턴스를 사용하면서 거대한 데이터를 어떻게 저장합니까? – Jack

0

S3 버킷을 모든 EC2 인스턴스에 장착 할 수 있습니다. 모든 파일이 동기화되도록 2 웨이 마운트입니다. 마운트를 수행하려면 s3f3을 사용할 수 있습니다.

나는이 가이드를 사용하고 꽤 빠른 내 설정 : 당신은 속도에 대해 다음 염려되는 경우 Mount S3 onto EC2

, 당신은 Amazon ElastiCache를 사용하거나 캐시 드라이브로 EBS를 사용할 수 있습니다.

0

처음에는 응용 프로그램 아키텍처에 대한 세부 정보가 부족하지만 몇 가지 가능성이 있습니다.

첫째, 당신은 프로젝트 경우, 당신은 (네이티브 또는 NFS 프로토콜을 사용하여) 동시에 서버와 클라이언트로 메인 노드에 글루 스터 FS (GlusterFS)를 사용할 수 RDS * 다중 AZ * MySQL의 중간 크기이다 DataBase의 인스턴스입니다. CloudFront with CDN CDN 링커 또는 W3TC 플러그인. ELB를 앞에 두십시오. 이 특별한 경우에 나는 한 쌍을 추천 할 것이다 c3.큰 인스턴스 이상.

둘째, 프로젝트가 커지면 인스턴스 AMI를 만들어 메인 저장소와 인스턴스를 연결하는 자동 스케일링 그룹을 만들어야합니다. (이 작은 인스턴스에서 계산로드를 들어 올리는 것도 고려하십시오.) 추가로 고려해야 할

것들 :