Düşük ila orta bant genişliği Web haritası uygulamasını çalıştırmak için ne tür AWS yapılandırması gerekir?


17

Herkes Amazon Web Services (S3, EC2 vb ...) üzerinde Web haritaları (döşeme sunucusu + istemci JS komut dosyası) çalıştırma konusunda deneyime sahip mi? Küçük (-ish) bir alanı (şehirden küçük ülke boyutuna) kapsayan, düşük ila orta bant genişliği Web haritası uygulamasını çalıştırmak için ne tür AWS yapılandırması gerekir?

Tüm karolar önceden işlenecek ve S3'e yüklenecekti. İdeal olarak ben web sunucusunda MBTiles (tek başına yüz binlerce kiremit bitmap yüklemek yerine) hizmet verebilir bir kiremit hizmet uygulaması gerekir. Öyleyse bir tür EC2 örneğine ihtiyaç duyulacaktı, ama ne tür?

Herhangi bir ipucu için teşekkürler.

GÜNCELLEME: sadece sorumu detaylandırmak için. Temelde aradığım şey, AWS'nin kendi web haritalarınızı bir birey olarak barındırmak için ne kadar geçerli olduğu hakkında bazı geri bildirimlerdir (yani, çok fazla maliyeti olmamalı, ayda 30 dolara kadar). Ben "sıradan" hosting sağlayıcıları aracılığıyla bir süredir web haritalarımı barındırıyorum, ancak bunların kendi sınırlamaları var (yükleme bant genişliği bir, hız başka). Ayrıca AWS'ye iyi alternatifler ve web haritaları için bulut hizmetlerini kullanırken dikkat edilecek her şeyi arıyorum.


3
Mapserver + MapProxy + AWS (EC2) Postgres üzerinde ubuntu "Ulusal Çini Sunucusu Bina" Tek Proje speakerdeck.com/u/walkermatt/p/building-a-national-tile-server
Mapperz

1
@Mapperz bağlantı için teşekkürler. Onların kurulumu biraz daha iddialı, karo işleme boru hattı tamamen AWS üzerinde çalışıyor, bu yüzden (sanırım) oldukça pahalı olabilir. Ancak bir açıklama, MBTiles'i desteklediği için MapProxy'dir.
Igor Brejc

1
küçük boyutlu sunucuyu kullanarak ve yaklaşık 500 MB gis verisi sunan amazon tarafından ücretsiz katmana hak kazandığım bildiriliyor. sadece söyleyerek
Brad Nesom

Yanıtlar:


6

Web haritaları gibi 'klasik' bir mimariye dayanan bir hizmet için bir mimari seçerken, RackSpace Bulut Sunucuları veya Linode gibi daha geleneksel barındırma çözümlerinin etkinliğini asla hafife almazsınız .

Sonuçlarını tahmin etmek zor olan (S3'ü kullan ya da kullanma, yük dengeleyicileri ya da değil, yedekler, vb. Ve ne kadara mal olacak?) Gibi çok daha az seçeneğiniz olacak ve daha da önemlisi zaten aşina olduğunuz araçları kullanın.

Bir süre önce kendim de aynı şeyi yaşadıktan sonra, AWS yerine Rackspace'de bir web haritaları hizmeti barındırma kararımda kritik faktörlerin olduğunu söyleyebilirim:

  1. Cloud Server, EC2 bulut sunucularına göre (daha fazla) dayanıklıdır. EC2 örnekleri aslında edilir beklenen başarısız olmasına ve onlar olacaktır başarısız
  2. EBS hacimleri de başarısız oluyor (haberlerde çok sayıda üzücü hikaye var) ve genellikle zayıf G / Ç var
  3. daha büyük örnekleri seçmediğiniz sürece G / Ç çekişmesi bir sorun olabilir (özellikle karoları kopyalamak yerine EC2'de tohumlamayı planlıyorsanız). Ayrıca MTBtiles veritabanlarıyla ilgili bir sorun da olabilir
  4. Sunucunuzu her yeniden başlattığınızda genel ip değişecektir: bu Linode veya Rackspace'de gerçekleşmez
  5. Hem Linode hem de Rackspace günlük ve haftalık otomatik anlık görüntüler ve geri yüklemeler sunarken, bir yedekleme ve geri yükleme stratejisi bulmanız gerekir.
  6. VPS'nizi çalıştıran ana bilgisayar başarısız olursa Rackspace örneğinizi yeniden konumlandırmaya ve farklı bir sunucuda yeniden başlatmaya özen gösterir ve bunu 4 saat içinde yapar (SLA'larındadır). Tatildeyken başıma geldi: çok profesyonel hissettim. Linode aynı şeyi yapmalı
  7. Linode harika bir kullanılabilirlik SLA'sına sahiptir:% 99,9 ve aşırı provizyon almadıkları için harika performans iddia ediyorlar
  8. Rackspace son zamanlarda EBS gibi bir birim stratejisi geliştirdi, bu nedenle disk alanı artık bir sorun olmamalı. Daha önce EC2'de büyük bir örnek almak için çok fazla disk alanına ihtiyacınız varsa, daha iyi kontrol ile depolama, işlemci ve bellek sağlayabilirsiniz

Bununla birlikte, Amazon AWS'nin diğerlerinden daha düşük olduğunu söylemiyorum, sadece geleneksel barındırma çözümlerinin Bulut tabanlı olanların yanı sıra ölçeklenebileceğini de söylüyorum. Dikkate değer bir örnek StackExchange ağının kendisidir.


Yani, sizin durumunuzda Rackspace üzerinde büyük bir örnek başlatıp tüm verileri yerel bir Postgis örneğine yüklerdim. Ardından, oluşturma motorunu yapılandırdıktan sonra önbelleği çekerdim. Büyük bir örnek, tohumlama işlemini yeterince hızlı tamamlar, böylece çalışması çok pahalı olmaz. Döşemeleri f3, MTBtiles, hatta S3'te saklayabilirsiniz (btw, S3 verilerini CloudFront ile bir CDN'de sunabilirsiniz ).

Tohumlama tamamlandıktan sonra sunucuyu yeniden başlatır ve bu noktada yalnızca statik veri sunmak zorunda olduğu için küçük (belki 512 MB) bir örnekte yeniden boyutlandırırdım.


Bu biraz uzun bir cevap alıyor, bu yüzden burada duracağım. Belirli yönleri ayrıntılı olarak açıklamamı istiyorsanız, bir yorum bırakın.

Feragatname: Rackspace, Linode veya bahsettiğim diğer herhangi bir sağlayıcıya bağlı değilim.


1
Ayrıntılı yanıtınız için teşekkürler. Göz önünde bulundurmadığım bazı konulara işaret ettiniz (EC2'nin IP değişikliği gibi). Seçim için bir çok seçenek. Şu anda çok fazla bulut-CPU gücü aramıyorum, çünkü sadece önceden oluşturulmuş fayanslara ev sahipliği yapacağım (bu yüzden PostGIS vb. Yok). Ama depolama kapasitesi, bant genişliği (ve hız) olduğu önemli.
Igor Brejc

Harika tavsiye! Yıllar içinde fark ettiğim şey, diğer hizmetlerini de kullanacaksanız AWS ile gitmeniz gerektiğidir. Bulutta VM'ler arıyorsanız, Digital Ocean, Linode vb. Gibi diğer sağlayıcılara gitmek en iyisidir. Bu daha sağlam olmak için daha ucuz bir çözüm olacaktır.
Devdatta Tengshe

5

MapServer ile bir Postgresql / PostGIS veritabanında CBS verilerini barındırmak için WebFaction kullanıyorum ve hizmetin <$10aylık maliyet için rakipsiz olduğunu düşünüyorum . PostGIS 2.0'ı kullanmak istiyorsanız biraz kendiniz yüklemeniz gerekir, ancak varsayılan olarak PostGIS 1.5 sağlarlar (bir destek bileti açmanız gerekir). Bu, sunucunun kendi bölümünüze herhangi bir şey yüklemek için tam esnekliğe sahip olduğunuz CentOS'ta paylaşılan bir barındırma hizmetidir.

Fayans sunmak için Webfaction kullanmıyorum, ancak 100GB alan sağlıyorlar; RAM'in varsayılan 256 MB olduğu için çok maliyetli olup olmayacağından emin değilim (ve her 256 bloğun aylık ek 7 $ maliyeti)


Bu arada, bu tür soruları yanıtlarken bir yönlendirme bağlantısı eklemek uygun mudur? Düşüncemi bilinçli olarak etkilemez, ancak teoride olabilir!
djq

1
ipucu için teşekkürler. WebFaction'ın fiyatları davetkar görünüyor. Çok kötü sundukları uygulamalar hakkında daha fazla bilgi sunmuyorlar. PostGIS ve MapServer'ı BTW ne kadar zordu?
Igor Brejc

PostGIS 1.5 gereken tek şeyse bu sadece bir destek bileti. PostGIS 2.0 çok zor değil ama sadece GDAL gibi birkaç paket indirip yüklemeyi gerektirir. Destek personeli çok yardımcı ve hızlı bir şekilde yanıt veriyor. (yazarken cevabımın bir kısmını sildiğimi fark et; güncelleyeceğim.).
djq

1
Kısa süre önce MapFuner ve TinyOWS'u WebFaction web barındırma hesabıma yükledim. Uzamsal verilerim aynı web barındırma hesabındaki PostGIS 1.5 veritabanında saklanır. Bir MapServer WMS hizmetini burada
açmak

5

AWS kullanan bir başka olasılık:

Seth Fitzsimmons'ın tasarladığı AWS Lambda Tiler yöntemini kullanarak bakmak isteyebilirsiniz. Açık Hava Haritası projesi için kullanıyor ve ben Stamen Design'da çalışırken özel bir müşteri projesi için kullandım.

Medium.com'da AWS Lambda Kiremitçi'nin nasıl kurulacağını belgelediğim kapsamlı bir blog yazısı var . Blog gönderisinin yalnızca döşeme raster verilerini kapsadığını, ancak PostgreSQL, PostGIS, Mapnik ve CartoCSS aracılığıyla OSM ve Natural Earth verilerinin bir kombinasyonundan üretilen küresel Terrain Classic harita karolarımızı yönlendirmek için Stamen'de bu işlemi kullandığımızı unutmayın.

Bu yaklaşımın avantajlarından biri, korumak için bir döşeme sunucunuz olmaması ve her AWS Lambda işlev çağrısının kullanımı başına ödeme yapmanızdır; ki, emin olmadığınız daha küçük projeler için ucuz taraftadır. çok miktarda web trafiği alırsınız. Bu yaklaşımın dezavantajlarından biri, karoların kullanıcının haritayı kaydırıp yakınlaştırmasıyla tohumlanmasıdır, bu nedenle ilk render yavaş tarafta olabilir, ancak karoları önceden önceden ekebilirsiniz. Karolar ilk oluşturulduktan sonra S3'e yazılır ve saklanır, böylece sonraki karo yüklemesi çok daha hızlıdır.


Güzel cevap. Herhangi bir AWS hizmetiyle Vector kutucukları geliştirmenin otomatik bir yolu var mı?
Devils Dream

"Otomatik" ile ne demek istediğinizden emin değilim ama Brain Bancroft'un
AWS'de Tegola'yı

3

AWS hizmetleri için ayrıntılı fiyatlandırma almak için, burada bulunan çevrimiçi hesap makinesini kullanabilirsiniz: http://calculator.s3.amazonaws.com/calc5.html

Linux çalıştıran küçük bir EC2 örneği için, bir yıl taahhüt etmeye hazırsanız, ayda yaklaşık 25 ABD dolarına mal olacak bir Rezerve Bulut Sunucusu satın alabilirsiniz. Bu, talep üzerine fiyatlandırma veya sözleşmesiz fiyatlandırma için aylık yaklaşık 44'tür.

Sorunuzun kısa cevabı, kişisel web haritalama uygulaması ihtiyaçlarınızı karşılayacak bir altyapı sağlayıcı arıyorsanız, AWS'nin aşırıya kaçmış olabileceğini düşünüyorum. Özellikle HA ve ölçeklendirilebilirlik gerektiriyorsa, üretim uygulamaları için BT sağlayıcısı arıyorsanız, AWS sizin cevabınızdır. AWS'nin SQS, SNS, SWF gibi birçok yapıştırıcı hizmetinden yararlanan uygulamalar oluşturuyorsanız, bu daha da doğru olur.

Ne tür EC2'ye ihtiyacınız var? Bu, uygulamalarınıza özgü gereksinim olan bir işlevdir. Bulut tabanlı BT'nin asıl amacı, satın almadan önce deneyebileceğiniz. Uygulamanızı herhangi bir taahhütte bulunmadan test edin ve yalnızca bildiğiniz zaman, bir EC2 türüne belirli bir süre (UR satın alma) taahhüt etme konusunda bilinçli bir karar verin.


3

Ben amazon EC2 üzerinde bir süredir bir web sunucusu çalıştırmak dışında bu konuda çok veya gerçekten herhangi bir bilgiye sahip bir uzman değilim, Yani bu bir cevap değil.

Ön işleme ve yükleme yoluyla bu araçları en iyi şekilde kullandığınızdan emin değilim.

  • Aws giderimin en büyük kısmı veri aktarımımdır (yükleme hakkında konuştuğunuz şey).
  • Sunucunuzun başka yapması gerekenler (kutucukları işlemek için lisans kullanmıyorsanız ve AWS için lisansınız yoksa).

Bu durum caydırmaz veya yeniden düşünmeye neden olmazsa, muhtemelen en sevdiğiniz harita sunucusunu seçin, sonra o harita sunucusu için desteklenen bir işletim sistemi seçin, sonra AWS EC2'ye gidin ve ihtiyaçlarınızı en iyi karşılayan Örneği (boyut, bellek, boşluk, bölge).
İhtiyacınız olan tüm yığını içeren bir AMI olabilir veya olmayabilir, bu yüzden daha sonra yapılandırın ve ardından yığınızı kurun.
Tüm bunları "özgür" ya da ucuz olarak yapabileceğiniz güçlü bir olasılık var.


1
Cevabınız için teşekkürler. Ön oluşturmanın ideal olmadığını kabul ediyorum, ancak isteğe bağlı oluşturma, oldukça pahalı olan çok daha fazla bulut uygulaması kaynağı gerektiriyor. Bir ön işleme senaryosunda, sunucunun yalnızca bir MBTiles (sqlite) deposundan fayans alması ve sunması gerekir, böylece çok daha az CPU, disk depolama alanı ve gerçek RDBMS gerekmez. En yüksek zum düzeyini yönetilebilir bir şeyle sınırlarsanız, yüklenecek çok fazla karo yoktur. BTW Sorumu biraz güncelledim.
Igor Brejc

0

AWS oldukça maliyetli olduğu için farklı hizmetlerini kullanıyorsanız AWS için gidebileceğiniz doğru. Aynı faydaları olan daha ucuz fiyatlara gitmek istiyorsanız , her ikisi de takdir edilebilir hizmetler ve en ucuz fiyatlara sahip oldukları için https://fxdata.cloud veya https://digitalocean.com için tavsiye ederim . Temel olarak tüm işletim sistemi ve DBMS seçeneklerini yüksek güvenilirliğe sahip olacaksınız.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.