Яка конфігурація AWS потрібна для запуску програми веб-карт із низькою та середньою пропускною здатністю?


17

Хтось має досвід роботи з веб-картами (сервер плиток + сценарій клієнта JS) на веб-службах Amazon (S3, EC2 тощо)? Яка конфігурація AWS потрібна для запуску програми веб-карт із низькою та середньою пропускною здатністю, що охоплює невелику (-ish) область (місто до розміру малої країни)?

Усі плитки будуть попередньо виведені та завантажені в S3. В ідеалі мені знадобиться додаток, що обслуговує плитку на веб-сервері, який може обслуговувати MBTiles (замість того, щоб завантажувати сотні тисяч бітових зображень плиток окремо). Значить, потрібен якийсь екземпляр EC2, але який тип?

Дякуємо за будь-які підказки.

ОНОВЛЕННЯ: просто для детального пояснення мого питання. Я в основному шукаю відгуки про те, наскільки життєздатним AWS є розміщення власних веб-карт як особистості (це означає, що воно не повинно коштувати занадто багато, скажімо, до 30 доларів на місяць). Я деякий час розміщував свої веб-карти через "звичайних" хостинг-провайдерів, але у них є свої обмеження (пропускна здатність завантаження одна, швидкість - інша). Я також шукаю будь-які хороші альтернативи AWS та на що слід бути уважним при використанні хмарних сервісів для веб-карт.


3
Один проект "Створення національного сервера плитки" Mapserver + MapProxy + AWS (EC2) Postgres на ubuntu speakerdeck.com/u/walkermatt/p/building-a-national-tile-server
Mapperz

1
@Mapperz дякую за посилання. Їх налаштування трохи більш масштабне, тому що трубопровід рендеринга повністю працює на AWS, тому це (я думаю) може бути досить дорогим. Але одне одкровення - MapProxy, оскільки воно підтримує MBTiles.
Ігор Брейц

1
використовуючи невеликий розмір сервера і обслуговуючи близько 500 Мб даних gis, я отримав повідомлення від Amazon, що я маю право на безкоштовний рівень. просто кажучи
Бред Несом

Відповіді:


6

Підбираючи архітектуру для сервісу, який так сильно покладається на "класичну" архітектуру, як веб-карти, ніколи не занижуйте ефективність більш традиційних хостингових рішень, таких як RackSpace Cloud Server або Linode .

У вас буде набагато менше варіантів зробити (наприклад, використовувати S3 чи ні, завантажувати балансири чи ні, створювати резервні копії тощо) чи ні, і скільки це буде коштувати?), Результат якого важко передбачити І, що ще важливіше, ви зможете використовувати інструменти, які ви вже знайомі.

Переглянувши те саме я деякий час тому назад, я можу вам сказати, що критичними факторами мого рішення про розміщення служби веб-карт на Rackspace, а не AWS були:

  1. Хмарний сервер є (більш) стійким, ніж екземпляри EC2. Екземпляри EC2 насправді очікуються невдачі, і вони будуть терпіти невдачу
  2. Обсяги EBS теж не вдається (в новинах є багато сумних історій) і, як правило, поганий I / O
  3. якщо ви не вибрали більші екземпляри, суперечка вводу / виводу може бути проблемою (особливо якщо ви плануєте висівати плитки на EC2, а не копіювати їх наново). Також це може бути проблемою з базами даних MTBtiles
  4. Щоразу, коли ви перезавантажуєте сервер, публічний ip буде змінюватися: цього не відбувається на Linode або Rackspace
  5. Вам доведеться самостійно придумувати стратегію резервного копіювання та відновлення, тоді як Linode та Rackspace забезпечують автоматичні знімки та відновлення щоденних та щотижневих точок та натискань.
  6. Якщо хост, який запускає ваш VPS, не вдасться, Rackspace подбає про переміщення вашого примірника та перезапуск його на іншому сервері, і вони зроблять це через 4 години (це в їх SLA). Це сталося зі мною, коли я був у відпустці: почувався дуже професійно. Ліноде має робити те саме
  7. Linode має велику доступність SLA: 99,9%, і вони вимагають чудової продуктивності, оскільки не надмірно забезпечені
  8. Компанія Rackspace нещодавно розробила таку стратегію, як EBS, тому дисковий простір більше не повинен бути проблемою. Раніше, якщо вам потрібно було багато місця на диску, ви HAD, щоб отримати великий екземпляр, тоді як на EC2 ви можете забезпечити сховище, процесор і пам'ять з більш точним керуванням

З цим я не кажу, що Amazon AWS поступається іншим, я просто кажу, що іноді традиційні хостингові рішення можуть масштабуватися так само, як і хмарні. Помітний приклад - сама мережа StackExchange .


Отже, у вашому випадку я запустив би великий екземпляр у Rackspace і потім завантажував усі дані в локальний екземпляр Postgis. Потім, після налаштування двигуна візуалізації, я закладав би кеш. Великий екземпляр завершить процес посіву досить швидко, щоб він не став занадто дорогим для запуску. Ви можете зберігати плитки у fs, MTBtiles, навіть у S3 (btw, ви можете подавати дані S3 на CDN з CloudFront ).

Після завершення висіву я перезавантажую сервер і зміню його розмір у невеликий (можливо, навіть 512 Мб) екземпляр, оскільки в цей момент він повинен був би лише подавати статичні дані.


Це отримує якусь довгу відповідь, тому я збираюся зупинитися тут. Якщо ви хочете, щоб я детальніше зупинився на певних аспектах, просто залиште коментар.

Відмова: Я не пов'язаний з Rackspace, Linode або будь-яким іншим процитованим мною постачальником.


1
Дякуємо за вашу глибоку відповідь. Ви вказали на деякі проблеми, які я не розглядав (як-от зміна IP-адреси EC2). Дуже багато варіантів на вибір. Зараз я не шукаю великої кількості хмарних процесорних потужностей, оскільки я буду розміщувати тільки попередньо викладені плитки (тому ніякого PostGIS тощо). Але ємність накопичувача, пропускна здатність (і швидкість) є важливою.
Ігор Брейц

Чудова порада! Що я зрозумів за ці роки, це те, що вам слід користуватися AWS, якщо ви також збираєтесь користуватися іншими їх послугами. Якщо ви шукаєте VM в хмарі, краще звернутися до інших постачальників, таких як Digital Ocean, Linode і т.д.
Devdatta Tengshe

5

Я використовував WebFaction для розміщення даних ГІС у базі даних Postgresql / PostGIS з MapServer, і я думаю, що послуга не має собі рівних за вартість <$10місяця. Якщо ви хочете використовувати PostGIS 2.0, вам потрібно встановити його самостійно, що трохи складно, але вони надають PostGIS 1.5 за замовчуванням (вам потрібно відкрити квиток підтримки). Це спільний хостинг-сервіс на CentOS, у якому ви маєте повну гнучкість для встановлення будь-чого у власній частині сервера.

Я не використовував Webfaction для подачі плиток, але вони забезпечують 100 Гб місця; Я не впевнений, чи буде оперативна пам'ять занадто дорогою, оскільки за замовчуванням - 256 Мб (а кожен 256-й блок коштує додаткові 7 доларів на місяць)


Між іншим, чи нормально включати реферальне посилання під час відповіді на такі запитання? Це не впливає свідомо на мій погляд, але теоретично це могло!
djq

1
дякую за підказку. Ціни WebFaction виглядають привабливо. Шкода, що вони не пропонують більше інформації про програми, які вони пропонують. Наскільки важко було встановити PostGIS і MapServer на ньому, BTW?
Ігор Брейц

Якщо PostGIS 1.5 - все, що потрібно, це лише квиток на підтримку. PostGIS 2.0 не надто складний, але він просто потребує завантаження та встановлення декількох пакетів, таких як GDAL, і т. Д. Служби підтримки дуже корисні та швидко реагують. (зрозумійте, що я стерв частину своєї відповіді під час написання; оновлю її.).
djq

1
Нещодавно я встановив MapServer і TinyOWS у своєму обліковому записі веб-хостингу WebFaction. Мої просторові дані зберігаються в базі даних PostGIS 1.5 в тому ж обліковому записі веб-хостингу. Я описав кроки, які я зробив, щоб створити сервіс MapServer WMS і запустити тут: посилання
jirikadlec2

5

Ще одна можливість використання AWS:

Ви можете вивчити, використовуючи метод AWS Lambda Tiler, який розробив Сет Фіцсиммонс. Він використовував його для проекту Open Aerial Map, і я використовував його для приватного клієнтського проекту, працюючи в Stamen Design.

Є ретельна публікація в блозі, в якій я писав, що документи, як налаштувати AWS Lambda Tiler на Medium.com . Зауважте, що запис у блозі охоплює лише дані про растрові дані, але ми також використовували цей процес у Stamen для керування нашими глобальними плитковими картами Terrain Classic, які генеруються за допомогою поєднання даних OSM та Natural Earth за допомогою PostgreSQL, PostGIS, Mapnik та CartoCSS.

Однією з переваг такого підходу є те, що у вас немає сервера для роботи з плитками, і ви платите лише за використання кожного дзвінка функції AWS Lambda, що, напевно, впевнено, є для дешевих проектів, які не роблять отримувати величезну кількість веб-трафіку. Одним із недоліків такого підходу є те, що плитки висіваються користувачем, що переміщується та збільшує масштаб карти, тому перше відображення може бути з повільної сторони, хоча ви можете заздалегідь посадити плитки раніше часу. Плитки записуються і зберігаються в S3 після їх першої візуалізації, тому подальше завантаження плитки відбувається набагато швидше.


Гарна відповідь. Чи є автоматизований спосіб розробити векторну плитку за допомогою будь-яких служб AWS?
Дьяволська мрія

Не впевнений, що ви маєте на увазі під "автоматизованим", але підручник "Брейн Банкрофт" щодо налаштування MVT-сервера, використовуючи Tegola на AWS, як один з таких методів: bancroft.io/blog/mvt-server-2
clhenrick

3

Щоб отримати детальну ціну на послуги AWS, ви можете скористатися онлайн-калькулятором, розміщеним тут: http://calculator.s3.amazonaws.com/calc5.html

Для невеликого екземпляра EC2 під управлінням Linux, якщо ви готові взяти на себе зобов’язання до року, ви можете придбати зарезервований екземпляр, який коштуватиме близько $ 25 на місяць. Це порівняно з приблизно 44 / місяць для ціноутворення на вимогу або ціноутворення без контракту.

Я думаю, що коротка відповідь на ваше запитання полягає в тому, що якщо ви шукаєте постачальника інфраструктури, який би піклувався про ваші особисті потреби в програмі веб-картографічних програм, AWS може бути надмірним. Якщо ви шукаєте ІТ-провайдера для виробничих додатків, особливо якщо вони вимагають HA та масштабованості, тоді AWS - це ваша відповідь. Це стає ще більш істинним, якщо ви створюєте додатки, які користуються багатьма послугами з клею, що надаються AWS, такими як SQS, SNS, SWF тощо.

Що стосується того, який тип EC2 вам потрібен? Це функція, яку вимагають ваші програми. Вся суть хмарних ІТ полягає в тому, що ви можете спробувати перед покупкою. Тестуйте свою програму без зобов'язань і лише тоді, коли знаєте, прийміть обгрунтоване рішення про прихильність до типу EC2 протягом певного періоду часу (покупка RI).


3

Я не є експертом, який має багато чи насправді будь-яких знань про це, крім того, що я вже деякий час керував веб-сервером на amazon EC2, тому це не відповідь.

Я не впевнений, що ви використовуєте ці інструменти для найкращого використання, попередньо надаючи та завантажуючи.

  • Найбільша частина моїх витрат на кошти припадає на мою передачу даних (про що ви говорите про завантаження).
  • Що ще повинен робити ваш сервер (якщо ви не використовуєте ліцензії для візуалізації плиток і не маєте ліцензії на AWS).

Якщо це не стримує або не викликає переосмислення, ймовірно, спочатку виберіть улюблений сервер карт, потім виберіть підтримувану ОС для цього сервера карт, потім перейдіть до AWS EC2 і знайдіть екземпляр, який найкраще відповідає вашим потребам (розмір, пам'ять, простір, регіон).
Може бути, а може і не бути AMI, що містить увесь стек, який вам потрібен. Наступним чином налаштуйте його та встановіть свій стек.
Є велика можливість, що ви все це зробите за "безкоштовно" або дешево.


1
Дякую за вашу відповідь. Я погоджуюсь, що попередній рендерінг не є ідеальним, але для надання на вимогу потрібно набагато більше ресурсів хмарних додатків, які теж досить дорогі. У сценарії попереднього рендерінгу сервер повинен лише отримати плитки із сховища MBTiles (sqlite) та обслуговувати їх, тому вам потрібно набагато менше процесора, дискового накопичувача та реальних RDBMS. І якщо ви обмежите найвищий рівень масштабування чимось керованим, завантажувати не так багато плиток. BTW Я трохи оновив своє запитання.
Ігор Брейц

0

Це правда, що ви можете скористатися AWS, якщо ви використовуєте різні сервіси, як AWS, досить дорого. Якщо ви хочете піти на дешевші ціни з однаковими перевагами, я рекомендую https://fxdata.cloud або https://digitalocean.com, оскільки обидва вони мають помітні послуги та найдешевші ціни. Ви в основному отримаєте всі варіанти ОС та СУБД з високою надійністю.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.