Czy ktoś ma doświadczenie w uruchamianiu map internetowych (serwer kafelków + skrypty JS klienta) w Amazon Web Services (S3, EC2 itp.)? Jaka konfiguracja AWS jest potrzebna do uruchomienia aplikacji mapy sieci o niskiej do średniej przepustowości, obejmującej mały (-ishish) obszar (od miasta do małego kraju)?
Wszystkie kafelki zostaną wstępnie renderowane i przesłane do S3. Idealnie potrzebowałbym aplikacji do serwowania kafelków na serwerze internetowym, która mogłaby obsługiwać MBTiles (zamiast przesyłać osobno setki tysięcy bitmap kafelkowych). Potrzebna byłaby więc jakaś instancja EC2, ale jaki?
Dzięki za wszelkie wskazówki.
AKTUALIZACJA: aby rozwinąć moje pytanie. W zasadzie szukam informacji zwrotnych na temat tego, jak opłacalne jest AWS do hostingu twoich własnych map internetowych jako osoby fizycznej (co oznacza, że nie powinno to kosztować zbyt wiele, powiedzmy do 30 USD / miesiąc). Od jakiegoś czasu hostuję moje mapy internetowe za pośrednictwem „zwykłych” dostawców hostingu, ale mają one swoje własne ograniczenia (przepustowość przesyłania jest jedna, prędkość inna). Szukam również dobrych alternatyw dla AWS i wszystkiego, na co należy uważać, korzystając z usług chmurowych do map internetowych.
źródło
Odpowiedzi:
Wybierając architekturę dla usługi, która w tak dużym stopniu opiera się na „klasycznej” architekturze, takiej jak mapy internetowe, nigdy nie lekceważ skuteczności bardziej tradycyjnych rozwiązań hostingowych, takich jak RackSpace Cloud Servers lub Linode .
Będziesz miał znacznie mniej opcji do wyboru (np. Użyj S3 lub nie, równoważenia obciążenia czy nie, kopii zapasowych itp., Czy nie, a ile to będzie kosztować?), Którego wynik trudno przewidzieć ORAZ, co ważniejsze, będziesz w stanie użyj narzędzi, które już znasz.
Przeszedłem to samo jakiś czas temu, mogę powiedzieć, że krytycznymi czynnikami mojej decyzji o hostowaniu usługi map internetowych w Rackspace zamiast AWS były:
Nie twierdzę, że Amazon AWS jest gorszy od innych, po prostu mówię, że czasami tradycyjne rozwiązania hostingowe mogą być skalowane tak samo jak rozwiązania oparte na chmurze. Godnym uwagi przykładem jest sama sieć StackExchange .
Tak więc w twoim przypadku uruchomiłbym dużą instancję w Rackspace, a następnie załadowałem wszystkie dane do lokalnej instancji Postgis. Następnie, po skonfigurowaniu mechanizmu renderowania, zasiałbym pamięć podręczną. Duża instancja zakończy proces inicjowania wystarczająco szybko, aby jego uruchomienie nie stało się zbyt drogie. Możesz przechowywać kafelki w fs, MTBtiles, nawet na S3 (przy okazji możesz obsługiwać dane S3 na CDN za pomocą CloudFront ).
Po zakończeniu inicjowania zrestartowałem serwer i zmieniłem jego rozmiar na małą (może nawet 512 MB) instancję, ponieważ w tym momencie musiałby obsługiwać tylko dane statyczne.
To dość długa odpowiedź, więc zamierzam się tutaj zatrzymać. Jeśli chcesz, żebym rozwinął pewne aspekty, po prostu napisz komentarz.
Oświadczenie: Nie jestem powiązany z Rackspace, Linode ani żadnym innym cytowanym przeze mnie dostawcą.
źródło
Używam WebFaction do hostowania danych GIS w bazie danych Postgresql / PostGIS z MapServer i myślę, że usługa ta jest bezkonkurencyjna pod względem kosztu
<$10
miesięcznego. Jeśli chcesz korzystać z PostGIS 2.0, musisz go zainstalować samodzielnie, co jest nieco trudne, ale domyślnie zapewniają PostGIS 1.5 (musisz otworzyć bilet pomocy technicznej). Jest to wspólna usługa hostingowa w CentOS, w której masz pełną elastyczność, aby zainstalować cokolwiek we własnej części serwera.Nie używałem Webfaction do wyświetlania kafelków, ale zapewniają one 100 GB miejsca; Nie jestem pewien, czy pamięć RAM byłaby zbyt kosztowna, ponieważ domyślnie jest to 256 MB (a każdy 256 blok kosztuje dodatkowo 7 USD miesięcznie)
źródło
Jeszcze jedna możliwość, która wykorzystuje AWS:
Być może warto przyjrzeć się metodzie AWS Lambda Tiler, którą opracował Seth Fitzsimmons. Używał go do projektu Open Aerial Map, a ja użyłem go do projektu prywatnego klienta podczas pracy w Stamen Design.
Istnieje dokładny post na blogu, który napisałem, który dokumentuje, jak skonfigurować AWS Lambda Tiler na Medium.com . Pamiętaj, że post na blogu dotyczy tylko kafelkowania danych rastrowych, ale wykorzystaliśmy ten proces również w Stamen do napędzania naszych globalnych kafelków mapy Terrain Classic, które są generowane z kombinacji danych OSM i Natural Earth za pośrednictwem PostgreSQL, PostGIS, Mapnik i CartoCSS.
Jedną z zalet tego podejścia jest to, że nie musisz utrzymywać serwera kafelków i płacisz tylko za każde wywołanie funkcji AWS Lambda, co, jestem pewien, jest niedrogie w przypadku mniejszych projektów, które nie otrzymywać ogromną ilość ruchu w sieci. Jedną z wad tego podejścia jest to, że kafelki są zasiewane przez użytkownika przesuwania i powiększania mapy, więc pierwsze renderowanie może odbywać się wolniej, chociaż wcześniej można było wstępnie przesiać kafelki. Płytki są zapisywane i przechowywane w S3 po ich pierwszym renderowaniu, więc kolejne ładowanie płytek jest znacznie szybsze.
źródło
Aby uzyskać szczegółowe ceny usług AWS, możesz skorzystać z kalkulatora online znajdującego się tutaj: http://calculator.s3.amazonaws.com/calc5.html
W przypadku małej instancji EC2 z systemem Linux, jeśli chcesz poświęcić rok, możesz kupić Instancję zarezerwowaną, która będzie kosztować około 25 USD miesięcznie. To jest w porównaniu do około 44 / miesiąc dla cen na żądanie lub cen bez umowy.
Myślę, że krótka odpowiedź na twoje pytanie brzmi: jeśli szukasz dostawcy infrastruktury, który zajmie się Twoimi osobistymi aplikacjami do mapowania sieci, AWS może być przesadą. Jeśli szukasz dostawcy IT dla aplikacji produkcyjnych, zwłaszcza jeśli wymagają one wysokiej dostępności i skalowalności, AWS jest Twoją odpowiedzią. Staje się to jeszcze bardziej prawdziwe, jeśli tworzysz aplikacje, które wykorzystują wiele usług klejenia, które zapewnia AWS, takich jak SQS, SNS, SWF itp.
Jakiego rodzaju EC2 potrzebujesz? Jest to funkcja specyficzna dla Twoich aplikacji. Chodzi o to, że informatyka oparta na chmurze polega na tym, że możesz spróbować przed zakupem. Przetestuj swoją aplikację bez zobowiązań i tylko wtedy, gdy wiesz, podejmij świadomą decyzję o zaangażowaniu się w typ EC2 w określonym czasie (zakup RI).
źródło
Nie jestem ekspertem, który nie ma dużej wiedzy na ten temat, poza tym, że od jakiegoś czasu prowadzę serwer internetowy na Amazon EC2, więc to nie jest odpowiedź.
Nie jestem pewien, czy używasz tych narzędzi do ich najlepszego wykorzystania poprzez wstępne renderowanie i przesyłanie.
Jeśli to nie powstrzymuje ani nie powoduje ponownego przemyślenia, Najprawdopodobniej najpierw wybierz swój ulubiony serwer map, Następnie wybierz obsługiwany system operacyjny dla tego serwera map, Następnie przejdź do AWS EC2 i znajdź Instancję, która najlepiej odpowiada Twoim potrzebom (rozmiar, pamięć, przestrzeń, region).
Może istnieć AMI zawierający cały stos, którego potrzebujesz, więc skonfiguruj go, a następnie zainstaluj.
Istnieje duża możliwość, że osiągniesz to wszystko „za darmo” lub tanio.
źródło
To prawda, że możesz skorzystać z AWS, jeśli korzystasz z różnych ich usług, ponieważ AWS jest dość kosztowny. Jeśli chcesz wybrać tańsze ceny z tymi samymi korzyściami, poleciłbym https://fxdata.cloud lub https://digitalocean.com, ponieważ oba mają znaczące usługi i najniższe ceny. Zasadniczo otrzymasz wszystkie opcje systemu operacyjnego i DBMS o wysokiej niezawodności.
źródło