중저 대역폭 웹 맵 앱을 실행하려면 어떤 종류의 AWS 구성이 필요합니까?


17

누구나 Amazon Web Services (S3, EC2 등)에서 웹 맵 (타일 서버 + 클라이언트 JS 스크립팅)을 실행 한 경험이 있습니까? 소규모 (-ish) 영역 (도시에서 소규모로)을 포괄하는 중간에서 낮은 대역폭의 웹 맵 앱을 실행하려면 어떤 종류의 AWS 구성이 필요합니까?

모든 타일은 사전 렌더링되어 S3에 업로드됩니다. 이상적으로는 웹 서버에 MBTiles를 제공 할 수있는 타일 제공 앱이 필요합니다 (수십만 개의 타일 비트 맵을 개별적으로 업로드하는 대신). 어떤 종류의 EC2 인스턴스가 필요하지만 어떤 종류입니까?

힌트를 주셔서 감사합니다.

업데이트 : 내 질문에 대해 자세히 설명합니다. 내가 기본적으로 찾고있는 것은 AWS가 개인으로서 자신의 웹 맵을 호스팅하는 방법에 대한 피드백입니다 (비용이 너무 많이 들지 않아야 함). "일반적인"호스팅 제공 업체를 통해 일정 시간 동안 웹 맵을 호스팅 해 왔지만 이들은 자체 제한이 있습니다 (업로드 대역폭은 하나이고 속도는 다른 것입니다). 또한 웹 맵에 클라우드 서비스를 사용할 때주의해야 할 AWS 및 다른 대안을 찾고 있습니다.


3
한 프로젝트 "국가 타일 서버 구축"Mapserver + MapProxy + AWS (EC2) Postgres on ubuntu speakerdeck.com/u/walkermatt/p/building-a-national-tile-server
Mapperz

1
@Mapperz 링크 감사합니다. 타일 ​​렌더링 파이프 라인이 AWS에서 완전히 실행되므로 설정이 좀 더 야심적이므로 비용이 많이들 수 있습니다. 그러나 MBTiles를 지원하기 때문에 한 가지 계시가 MapProxy입니다.
Igor Brejc

1
작은 크기의 서버를 사용하고 약 500MB의 gis 데이터를 제공하면서 Amazon에서 프리 티어 자격이 있다는 알림을 받았습니다. 그냥 말하기
브래드 네섬

답변:


6

웹 맵과 같은 '클래식'아키텍처에 의존하는 서비스의 아키텍처를 선택할 때 RackSpace Cloud Servers 또는 Linode 와 같은보다 전통적인 호스팅 솔루션의 효율성을 과소 평가하지 마십시오 .

결과를 예측하기 어려운 S3 사용 여부,로드 밸런서 사용 여부, 백업 여부, 비용 등은 훨씬 적습니다. 더 중요하게는 이미 익숙한 도구를 사용하십시오.

얼마 전에 같은 일을 겪은 결과 AWS가 아닌 Rackspace에서 웹 맵 서비스를 호스팅하기로 한 결정의 중요한 요소는 다음과 같습니다.

  1. 클라우드 서버는 EC2 인스턴스보다 탄력적입니다. EC2 인스턴스는 실제로 실패 할 것으로 예상 되며 실패합니다
  2. EBS 볼륨도 실패하고 (뉴스에는 슬픈 이야기가 많이 있습니다) 일반적으로 I / O가 좋지 않습니다.
  3. 더 큰 인스턴스를 선택하지 않으면 I / O 경합이 문제가 될 수 있습니다 (특히 타일을 복사하지 않고 EC2에 시드 할 계획 인 경우). MTBtiles 데이터베이스에서도 문제가 될 수 있습니다
  4. 서버를 재부팅 할 때마다 공개 IP가 변경됩니다. Linode 또는 Rackspace에서는 발생하지 않습니다.
  5. Linode와 Rackspace는 일일 및 주간 자동 스냅 샷 및 복원을 제공하는 반면 백업 및 복원 전략을 직접 마련해야합니다.
  6. VPS를 실행하는 호스트에 장애가 발생하면 Rackspace는 인스턴스를 재배치하고 다른 서버에서 다시 시작하여 4 시간 내에 (SLA에 있음) 처리합니다. 휴가 중일 때 일어났습니다. 매우 전문적인 느낌이었습니다. 리노 드는 똑같이해야합니다
  7. Linode는 99.9 %의 가용성 SLA를 가지고 있으며 초과 프로비저닝하지 않기 때문에 뛰어난 성능을 요구합니다
  8. Rackspace는 최근 EBS와 같은 볼륨 전략을 제시하여 디스크 공간이 더 이상 문제가되지 않습니다. 이전에는 EC2에서 대용량 인스턴스를 확보하기 위해 많은 디스크 공간이 필요한 경우보다 세밀한 제어로 스토리지, CPU 및 메모리를 프로비저닝 할 수 있습니다.

이것으로 Amazon AWS가 다른 AWS보다 열등하다는 말은 아닙니다. 때로는 전통적인 호스팅 솔루션뿐만 아니라 클라우드 기반 솔루션도 확장 할 수 있다고 말하고 있습니다. 주목할만한 예는 StackExchange 네트워크 자체입니다.


따라서 귀하의 경우 랙 공간에서 큰 인스턴스를 시작한 다음 모든 데이터를 로컬 Postgis 인스턴스에로드합니다. 그런 다음 렌더링 엔진을 구성한 후 캐시를 시드합니다. 큰 인스턴스는 시딩 프로세스를 너무 빨리 완료하여 실행하기에 너무 비싸지 않습니다. S3에서도 fs, MTBtiles에 타일을 저장할 수 있습니다 (btw, CloudFront 를 사용하여 CDN에 S3 데이터를 제공 할 수 있음 ).

시드가 완료된 후 서버를 재부팅하고 그 시점에서 정적 데이터 만 제공하면되므로 작은 (512MB 정도) 인스턴스로 크기를 조정합니다.


이것은 약간의 대답을 얻고 있으므로 여기서 멈출 것입니다. 특정 측면에 대해 자세히 설명하려면 의견을 남기십시오.

면책 조항 : 나는 Rackspace, Linode 또는 내가 인용 한 다른 공급 업체와 제휴하지 않습니다.


1
심층적 인 답변에 감사드립니다. EC2의 IP 변경과 같이 고려하지 않은 일부 문제를 지적했습니다. 선택할 수있는 많은 옵션이 있습니다. 지금은 사전 렌더링 된 타일 만 호스팅하므로 PostGIS 등이 없기 때문에 많은 클라우드 CPU 성능을 찾고 있지 않습니다. 그러나 스토리지 용량, 대역폭 (및 속도) 중요합니다.
Igor Brejc

좋은 조언! 지난 몇 년 동안 내가 깨달은 것은 다른 서비스도 사용하려는 경우 AWS와 함께 가야한다는 것입니다. 클라우드에서 VM을 찾고 있다면 Digital Ocean, Linode 등과 같은 다른 제공 업체를 찾는 것이 가장 좋습니다.이 방법은보다 저렴한 Wile입니다.
Devdatta Tengshe

5

MapServer 를 사용하여 Postgresql / PostGIS 데이터베이스에서 GIS 데이터를 호스팅하기 위해 WebFaction 을 사용 하고 있으며 <$10월별 비용으로 서비스가 독보적이라고 생각합니다 . PostGIS 2.0을 사용하려면 약간 까다로운 설치가 필요하지만 기본적으로 PostGIS 1.5를 제공합니다 (지원 티켓을 열어야 함). 이것은 CentOS의 공유 호스팅 서비스로, 서버 자체에 무엇이든 설치할 수있는 유연성이 있습니다.

나는 타일을 제공하기 위해 Webfaction을 사용하지 않았지만 100GB의 공간을 제공합니다. 기본값이 256MB이므로 RAM이 너무 비쌀 지 확실하지 않습니다 (각 256 블록은 한 달에 7 달러 씩 추가 비용이 듭니다)


또한 이와 같은 질문에 답변 할 때 추천 링크를 포함해도 괜찮습니까? 그것은 의식적으로 나의 견해에 영향을 미치지 않지만 이론 상으로는 가능합니다!
djq

1
힌트 주셔서 감사합니다. WebFaction의 가격이 매력적으로 보입니다. 그들이 제공하는 앱에 대한 자세한 정보를 제공하지 않는 것이 너무 나쁩니다. BTW에 PostGIS와 MapServer를 설치하는 것이 얼마나 어려웠습니까?
Igor Brejc

PostGIS 1.5가 필요한 모든 것은 지원 티켓 일뿐입니다. PostGIS 2.0은 너무 까다 롭지는 않지만 GDAL 등과 같은 몇 가지 패키지를 다운로드하여 설치하면됩니다. 지원 담당자는 매우 도움이되고 신속하게 응답합니다. (작성할 때 일부 답변을 지 웠음을 인식하고 업데이트합니다.).
djq

1
최근에 WebFaction 웹 호스팅 계정에 MapServer 및 TinyOWS를 설치했습니다. 내 공간 데이터는 동일한 웹 호스팅 계정의 PostGIS 1.5 데이터베이스에 저장됩니다. MapServer WMS 서비스를 시작하고 실행하기 위해 수행 한 단계를 설명했습니다. link
jirikadlec2

5

AWS를 사용하는 또 다른 가능성은 다음과 같습니다.

Seth Fitzsimmons가 고안 한 AWS Lambda Tiler 방법을 사용하는 것이 좋습니다. 그는 Open Aerial Map 프로젝트에 사용했으며 Stamen Design에서 일하는 동안 개인 클라이언트 프로젝트에 사용했습니다.

Medium.com 에서 AWS Lambda Tiler 를 설정하는 방법을 문서화 한 철저한 블로그 게시물이 있습니다. 블로그 게시물은 타일링 래스터 데이터 만 다루지 만, Stamen에서이 프로세스를 사용 하여 PostgreSQL, PostGIS, Mapnik 및 CartoCSS를 통해 OSM과 Natural Earth 데이터의 조합으로 생성 된 글로벌 Terrain Classic 맵 타일 을 구동 했습니다.

이 방법의 이점 중 하나는 유지 관리 할 타일 서버가없고 각 AWS Lambda 함수 호출을 사용할 때마다 요금을 지불한다는 것입니다. 이는 소규모 프로젝트에 대해서는 저렴한 편입니다. 엄청난 양의 웹 트래픽을 수신합니다. 이 방법의 단점 중 하나는 사용자가 맵을 이동하고 확대 / 축소하여 타일을 시드한다는 점입니다. 따라서 타일을 미리 시드 할 수는 있지만 첫 번째 렌더링이 느린쪽에있을 수 있습니다. 타일은 처음 렌더링 된 후 S3에 작성되고 저장되므로 후속 타일 로딩이 훨씬 빠릅니다.


좋은 대답입니다. AWS 서비스로 벡터 타일을 개발하는 자동화 된 방법이 있습니까?
악마의 꿈

"자동화 된"의 의미는 확실하지 않지만 Brain Bancroft의 AWS에서 Tegola를 사용하여 MVT 서버를 설정하는 방법에 대한 자습서는 다음과 같은 방법 중 하나입니다. bancroft.io/blog/mvt-server-2
clhenrick

3

AWS 서비스에 대한 자세한 요금을 얻으려면 다음 위치에있는 온라인 계산기를 사용하십시오. http://calculator.s3.amazonaws.com/calc5.html

Linux를 실행하는 소규모 EC2 인스턴스의 경우 1 년을 기꺼이 투입하려는 경우 약 $ 25 / 월의 예약 인스턴스를 구입할 수 있습니다. 이는 온 디맨드 요금 또는 비 계약 요금의 경우 약 44 / 월과 비교됩니다.

귀하의 질문에 대한 짧은 대답은 개인 웹 매핑 애플리케이션 요구를 처리 할 인프라 제공 업체를 찾고 있다면 AWS가 과도 할 수 있다는 것입니다. 프로덕션 앱을위한 IT 제공 업체, 특히 HA 및 확장 성이 필요한 경우 AWS를 찾으십시오. SQS, SNS, SWF 등과 같이 AWS가 제공하는 많은 글루 서비스를 활용하는 앱을 만드는 경우 더욱 그렇습니다.

어떤 종류의 EC2가 필요합니까? 이는 앱별 요구 사항에 따라 달라집니다. 클라우드 기반 IT의 요점은 구입하기 전에 시도해 볼 수 있다는 것입니다. 약속없이 앱을 테스트하고 알고있을 때만 일정 기간 동안 EC2 유형에 대한 커밋에 대한 정보에 근거한 결정을 내립니다 (RI 구매).


3

나는 지금 얼마 동안 아마존 EC2에서 웹 서버를 실행하고있는 것 이외의 다른 지식에 대해 많은 지식을 가진 전문가가 아닙니다. 그래서 이것은 대답이 아닙니다.

사전 렌더링 및 업로드를 통해 이러한 도구를 최대한 활용하고 있는지 잘 모르겠습니다.

  • 내 AWS 비용의 가장 큰 부분은 내 데이터 전송 (로드에 대해 이야기하는 것)에 있습니다.
  • 타일을 렌더링하기 위해 라이센스를 사용하고 AWS에 대한 라이센스가없는 경우를 제외하고 서버가해야 할 일

그래도 문제가 해결되지 않거나 다시 생각하지 않으면 아마도 가장 선호하는 맵 서버를 선택한 다음 해당 맵 서버에 대해 지원되는 OS를 선택한 다음 AWS EC2로 이동하여 필요에 가장 적합한 인스턴스 (크기, 메모리, 공간, 지역).
필요한 모든 스택을 포함하는 AMI가있을 수도 있고 없을 수도 있으므로 다음에 스택을 구성한 다음 스택을 설치하십시오.
"무료"또는 저렴하게 모든 것을 달성 할 수있는 강력한 가능성이 있습니다.


1
답변 주셔서 감사합니다. 사전 렌더링은 이상적이지 않지만 온 디맨드 렌더링에는 훨씬 더 많은 클라우드 앱 리소스가 필요하다는 데 동의합니다. 사전 렌더링 시나리오에서 서버는 MBTiles (sqlite) 스토리지에서 타일을 가져 와서 제공하기 만하면되므로 CPU, 디스크 스토리지가 훨씬 적고 실제 RDBMS가 필요하지 않습니다. 그리고 가장 높은 줌 레벨을 관리하기 쉬운 것으로 제한하면 업로드 할 타일이 많지 않습니다. BTW 내 질문을 약간 업데이트했습니다.
Igor Brejc

0

AWS가 상당히 비싸기 때문에 서로 다른 서비스를 사용하고 있다면 AWS로 갈 수 있습니다. 동일한 혜택으로 더 저렴한 가격으로 가고 싶다면 https://fxdata.cloud 또는 https://digitalocean.com 을 모두 권장하는 서비스와 저렴한 가격으로 권장합니다 . 기본적으로 모든 OS 및 DBMS 옵션을 높은 안정성으로 제공합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.