2013-02-25 3 views
0

나는 내 안드로이드 응용 프로그램이 현재의 GPS 위치를 기준으로 가장 가까운 매장을 보여주고 싶은, 내가 보여주고 싶은 것을, 두 개의 파일 이미지 및 HTML 파일을 포함하는 각 상점의 버킷을 보유 S3의 인스턴스가 상점 페이지에서 까지 아주 좋습니다. 내 GPS 위치를 기반으로 가장 가까운 매장을 선택할 수있는 방법을쿼리 S3 버킷

내 질문은? 각 버킷의 다른 값으로 위도 및 경도 점을 저장해야합니까? 내가 쿼리 할 수 ​​있도록 RDS와 같은 다른 AWS 서비스를 사용하고 표시 할 권리 버킷을 선택하거나 어쩌면 내가 다른 AWS 서비스를 사용하지 않고 S3를 통해 SQL 쿼리를 수행 할 수 있습니다해야합니까. 감사의, 데이비드 첫번째

답변

1

우선 일 :
당신은 아마 각 점포에 대해 하나의 양동이와 다른 접두사를하는 것에 대한 이야기. 각 저장소에 대해 버킷을 가지고 있으므로 각 버킷에 2 개의 파일을 유지하는 것이 분명 과잉입니다. 가장 가까운 매장에

는 질문 : 당신은 S3에 SQL 쿼리를 수행 할 수 없습니다.
솔루션은 실제로 응용 프로그램의 규모에 따라 달라집니다. 웹 (또는 인터넷) 규모 응용 프로그램 (또는 그보다 더 작은 규모의 응용 프로그램)에 대해 이야기하고 있다면 S3 앞에 물건을 추가하고 싶을 것입니다. S3는 스토리지에 관한 것이지 계산을 쿼리하거나 수행하는 것에 관한 것이 아닙니다.

고객 기반의 크기와 상점베이스의 크기에 따라 다음 중 하나가 될 것입니다 나의 제안 :
1 작은 규모 : 당신은 단지 고객의 부부와 부부가 가정 (< (100) 같은) 상점. 당신은 S3의 앞에 m1.small 또는 유사한 EC2 인스턴스가 상점 목록이 (그 문제에 대한, 또는 S3에) 인스턴스 저장소에 지속 유지하고 인스턴스의 메모리 캐시에 위치 기반 쿼리를 수행 할 수 있습니다. 원하는 서버 기술 (Python, Java, node.js)을 사용하여 구현할 수 있습니다.
2 중간 규모 이상 : 확실히 응용 프로그램 계층 및 데이터베이스 계층에 충실 : 상점, 몇 가지 (또는 수백만) 클라이언트의 여러 (또는 수백만). 응용 프로그램 계층에는 선호하는 AWS 기술 (여러 EC2 인스턴스 + ELB, Elastic Beanstalk 등)이 포함될 수 있으며 DB 계층은 SQL (RDS가 권장 사항) 또는 NoSQL (DynamoDB 등) 중 하나 여야합니다. 상점을 데이터베이스 계층으로 모델링하고 앱 계층에서 쿼리를 수행하도록합니다.

여러 가지 방법으로 문제를 해결할 수 있지만 제 제안은 위의 일반적인 아키텍처 중 하나를 고수 할 것입니다.

+0

감사합니다. 내 문제를 도와 주셔서 감사합니다. 내 데이터베이스가 처음에는 꽤 작을 것입니다. 그래서 첫 번째 옵션을 택할 것입니다. 행운 인 경우 S3 버킷에 대해 두 번째 버턴으로 전환 할 것입니다. 하나의 버킷을 사용할 수 있으며 각 저장소는 폴더에 보관됩니다. – BoazGarty

+0

그건 나에게 의미가 있습니다. 행운을 빕니다! – Viccari