2010-07-15 6 views
3

Google 서버에있는 데이터 파일에 대한 요청을 대량 생성 할 수있는 제품을 만들었습니다. 현재 PHP를 실행하여 DB를 쿼리하고 각 사용자 요청에 대한 데이터 파일을 생성하는 공유 호스팅 서버가 있습니다. 이는 효율적이지 않고 지금까지 문제가되지 않았지만 확장 성이 뛰어난 시스템으로 전환하여 EC2를 살펴보고자합니다. 우리의 주요 관심사는 트래픽이 발생할 때 많은 양의 트래픽을 처리 할 수 ​​있고 데이터 파일을 다운로드하는 사용자에게 낮은 대기 시간을 제공 할 수 있다는 것입니다.확장 가능한 웹 응용 프로그램 개발 계획

나는이 모든 아직 일 것입니다 방법에 대한 100 % 확실하지 않다 그러나 이것은 생각이다 :

우리는 우리의 관리자 패널을 호스팅하고로 제공되는 파일을 생성하는 EC2 인스턴스를 사용 앱 사용자 관리자가 이러한 데이터 파일 (사용자가 다운로드 함)에 영향을주는 변경을하면 CloudFront를 사용하여 S3로 복사본을 만듭니다. 여기에 데이터를 캐시하고 S3에서 대기하여 계산 시간을 적게 유지하고 CloudFront를 사용하여 파일을 요청하는 모든 사용자에 대해 대기 시간을 줄이는 것이 좋습니다.

나는 아직도 시스템을 배우고 있으며, 누구나이 아이디어에 대한 의견이나 통찰력이 있다면 어떻게 작동 하는지를 알고 싶다. 카산드라와 같은 프로젝트의 목적에 대해서도 궁금합니다. EC2 서버에 응용 프로그램을 두는 것만으로도 서버의 특성에 따라 확장이 가능하다는 것을 알고 있습니다. Cassandra는 리소스 사용량을 낮게 유지하고 있습니까? 아니면 EC2에서도 이와 같은 시스템을 사용해야 할 이유가 있습니까?

CloudFront를 : http://aws.amazon.com/cloudfront/ EC2 : http://aws.amazon.com/cloudfront/ 카산드라 : http://cassandra.apache.org/

답변

2

카산드라는 비 관계형 데이터베이스 엔진이며,이 경우 당신이 필요 먼저 아마존의 SimpleDB 평가해야한다 : 비 관계형 데이터베이스 엔진에 내장 S3의 상단.

시간에 따라 파일을 업데이트해야하는 경우 (일별, 시간별 등 ...) 합리적인 해결책 인 것 같습니다. 하지만로드 밸런서를 두 개의 EC2 이미지 앞에 배치하고 각 이미지는 응용 프로그램의 사본을 실행하는 것이 좋습니다. 이렇게하면 나중에 확장하고 하나의 인스턴스가 실패하면 더 안전하게 할 수 있습니다.

당신이 위로 읽어야 일부 다른 서비스 :

http://aws.amazon.com/elasticloadbalancing/ - 아마존의 부하 분산 솔루션입니다.

http://aws.amazon.com/sqs/ - DA (분산 아키텍처)에서 시스템간에 메시지를 전달하는 데 사용됩니다. 예를 들어, 데이터 파일을 만드는 시스템이 사이트를 호스팅하는 시스템과 다를 경우.

http://aws.amazon.com/autoscaling/이 - 당신이

하는 EC2와 좋은 백업 프로세스를 가지고 있는지 확인 트래픽 기반의 온라인 인스턴스의 수를 조정하여 OS가 종종 드라이브 스냅 샷 및 휘발성 데이터를 배치 할 수 있습니다 (예를 들어, 데이터베이스 파일) EBS 블록에. EC2는 자주 실패하지 않지만 하드웨어에 액세스 할 필요가 없으며 최신 스냅 샷이 있으면 온라인으로 새 인스턴스를 시작할 수 있습니다.

+0

: 클라우드 프론트 가장 유용 때 해외에서 연결됩니다. 모든 트래픽이 미국 사용자의 트래픽 일 경우 유용하지 않을 수 있습니다. 기본적으로 S3를 Content Delivery Network (CDN)로 변환합니다. http://bit.ly/2eILb – eSniff

0

데이터 집합에 따라 Cassandra는 쿼리 응답 시간을 크게 향상시킬 수 있습니다.

도움이되는 NoSQL 솔루션에 사용되는 데이터 구조의 훌륭한 설명이 있습니다이 도움이 적절한 솔루션의 경우 당신은 다음을 참조하십시오

는 또 다른 의견

WTF is a Super Column