Konfigurasi AWS seperti apa yang diperlukan untuk menjalankan aplikasi peta Web bandwidth rendah hingga sedang?

17

Adakah yang punya pengalaman menjalankan peta Web (ubin server + skrip JS klien) di Amazon Web Services (S3, EC2 dll ...)? Konfigurasi AWS seperti apa yang diperlukan untuk menjalankan aplikasi peta Web bandwidth rendah hingga sedang, meliputi area kecil (-ish) (ukuran kota ke negara kecil)?

Semua ubin akan dirender dan diunggah ke S3. Idealnya saya membutuhkan aplikasi penayangan ubin di server web yang dapat melayani MBTiles (alih-alih mengunggah ratusan ribu bitmap ubin secara terpisah). Jadi semacam EC2 akan dibutuhkan, tapi seperti apa?

Terima kasih atas petunjuknya.

UPDATE: hanya untuk menguraikan pertanyaan saya. Apa yang saya cari pada dasarnya adalah beberapa umpan balik tentang seberapa layak AWS untuk hosting peta web Anda sendiri sebagai seorang individu (yang berarti seharusnya tidak terlalu mahal, katakan hingga $ 30 / bulan). Saya telah meng-hosting peta web saya untuk beberapa waktu melalui penyedia hosting "biasa", tetapi ini memiliki keterbatasan mereka sendiri (mengunggah bandwidth adalah satu, kecepatan adalah yang lain). Saya juga mencari alternatif yang baik untuk AWS dan apa pun yang harus diperhatikan ketika menggunakan layanan cloud untuk peta web.

Igor Brejc
sumber
3
Satu Proyek "Membangun Server Ubin Nasional" Mapserver + MapProxy + AWS (EC2) Postgres di ubuntu speakerdeck.com/u/walkermatt/p/building-a-national-tile-server
Mapperz
1
@Mapperz terima kasih atas tautannya. Pengaturan mereka sedikit lebih ambisius, dengan pipa render ubin berjalan sepenuhnya pada AWS, jadi ini (saya bayangkan) bisa sangat mahal. Tetapi satu wahyu adalah MapProxy, karena mendukung MBTiles.
Igor Brejc
1
menggunakan server berukuran kecil dan melayani sekitar 500 MB data gis saya telah diberitahu oleh amazon bahwa saya memenuhi syarat untuk tingkat gratis. hanya mengatakan
Brad Nesom

Jawaban:

6

Ketika memilih arsitektur untuk layanan yang sangat bergantung pada arsitektur 'klasik' seperti peta web tidak pernah meremehkan efektivitas solusi hosting yang lebih tradisional seperti RackSpace Cloud Servers atau Linode .

Anda akan memiliki pilihan yang jauh lebih sedikit untuk dibuat (seperti menggunakan S3 atau tidak, memuat penyeimbang atau tidak, cadangan, dll atau tidak dan berapa biayanya?) Yang hasilnya sulit diprediksi DAN, lebih penting lagi Anda akan dapat gunakan alat yang sudah Anda kenal.

Setelah mengalami hal yang sama sendiri beberapa waktu lalu saya dapat memberitahu Anda bahwa faktor-faktor penting dalam keputusan saya untuk meng-host layanan peta web di Rackspace daripada AWS adalah:

  1. Cloud Server lebih tangguh daripada mesin virtual EC2. Contoh EC2 sebenarnya diharapkan gagal dan mereka akan gagal
  2. Volume EBS juga gagal (ada banyak kisah sedih di berita) dan umumnya memiliki I / O yang buruk
  3. kecuali Anda memilih contoh I / O yang lebih besar bisa menjadi masalah (terutama jika Anda berencana untuk menabur ubin di EC2, daripada menyalinnya). Ini juga bisa menjadi masalah dengan basis data MTBtiles
  4. Setiap kali Anda me-reboot server Anda, ip publik akan berubah: ini tidak terjadi pada Linode atau Rackspace
  5. Anda harus membuat sendiri strategi backup dan restore, sedangkan Linode dan Rackspace memberikan point dan klik snapshot otomatis harian dan mingguan serta mengembalikan
  6. Jika host yang menjalankan VPS Anda gagal, Rackspace akan menangani relokasi instance Anda dan memulai ulang pada server yang berbeda dan mereka akan melakukan ini dalam 4 jam (ada dalam SLA mereka). Itu terjadi pada saya ketika saya sedang berlibur: rasanya sangat profesional. Linode harus melakukan hal yang sama
  7. Linode memiliki SLA ketersediaan yang luar biasa: 99,9% dan mereka mengklaim kinerja yang hebat karena mereka tidak melakukan overprovisi
  8. Rackspace baru-baru ini datang dengan strategi volume seperti EBS sehingga ruang disk seharusnya tidak menjadi masalah lagi. Sebelumnya jika Anda membutuhkan banyak ruang disk, Anda HARUS mendapatkan contoh besar sementara pada EC2 Anda dapat mengatur penyimpanan, cpu dan memori dengan kontrol yang lebih baik

Dengan ini saya tidak mengatakan bahwa Amazon AWS lebih rendah daripada yang lain, saya hanya mengatakan bahwa kadang-kadang solusi hosting tradisional dapat menskala serta yang berbasis Cloud. Contoh penting adalah jaringan StackExchange itu sendiri.


Jadi, dalam kasus Anda, saya akan memulai contoh besar di Rackspace dan kemudian memuat semua data dalam contoh Postgis lokal. Kemudian, setelah mengkonfigurasi mesin rendering, saya akan me-seed cache. Sebuah instance besar akan menyelesaikan proses penyemaian cukup cepat sehingga tidak menjadi terlalu mahal untuk dijalankan. Anda dapat menyimpan ubin di fs, MTBtiles, bahkan di S3 (btw, Anda dapat menyajikan data S3 pada CDN dengan CloudFront ).

Setelah seeding selesai saya akan me-reboot server dan mengubah ukurannya menjadi instance kecil (mungkin bahkan 512MB) karena pada saat itu hanya perlu melayani data statis.


Ini mendapatkan jawaban yang agak panjang jadi saya akan berhenti di sini. Jika Anda ingin saya menguraikan aspek-aspek tertentu, berikan komentar.

Penafian: Saya tidak berafiliasi dengan Rackspace, Linode, atau penyedia lain yang saya kutip.

unicoletti
sumber
1
Terima kasih atas jawaban mendalam Anda. Anda menunjuk beberapa masalah yang belum saya pertimbangkan (seperti perubahan IP EC2). Banyak opsi untuk dipilih. Saat ini saya tidak mencari banyak kekuatan cloud-CPU, karena saya hanya akan menjadi hosting ubin yang sudah dirender (jadi tidak ada PostGIS dll). Tapi kapasitas penyimpanan, bandwidth (dan kecepatan) adalah penting.
Igor Brejc
Nasihat Hebat! Apa yang saya sadari selama bertahun-tahun adalah bahwa Anda harus menggunakan AWS, jika Anda akan menggunakan layanan mereka yang lain juga. Jika Anda mencari VM di cloud, yang terbaik untuk pergi ke penyedia lain seperti Digital Ocean, Linode dll. Ini akan menjadi lebih murah karena lebih kuat.
Devdatta Tengshe
5

Saya telah menggunakan WebFaction untuk meng-hosting data GIS dalam database Postgresql / PostGIS dengan MapServer dan saya pikir layanan ini tidak ada bandingannya dengan biaya <$10per bulan. Jika Anda ingin menggunakan PostGIS 2.0, Anda harus menginstalnya sendiri yang agak rumit, tetapi secara default mereka menyediakan PostGIS 1.5 (Anda harus membuka tiket dukungan). Ini adalah layanan hosting bersama di CentOS di mana Anda memiliki fleksibilitas penuh untuk menginstal apa pun di bagian server Anda sendiri.

Saya belum pernah menggunakan Webfaction untuk melayani ubin, tetapi mereka memberikan 100GB ruang; Saya tidak yakin apakah RAM akan terlalu mahal karena standarnya adalah 256 MB (dan setiap blok 256 biaya tambahan $ 7 per bulan)

djq
sumber
Secara kebetulan, apakah boleh memasukkan tautan rujukan saat menjawab pertanyaan seperti ini? Itu tidak secara sadar memengaruhi pandangan saya, tetapi itu bisa secara teori!
djq
1
terima kasih atas petunjuknya. Harga WebFaction memang terlihat mengundang. Sayang sekali mereka tidak menawarkan informasi lebih lanjut tentang aplikasi yang mereka tawarkan. Seberapa keras menginstal PostGIS dan MapServer di atasnya, BTW?
Igor Brejc
Jika PostGIS 1.5 diperlukan, itu hanya tiket dukungan. PostGIS 2.0 tidak terlalu rumit tetapi hanya perlu mengunduh dan menginstal beberapa paket seperti GDAL, dll. Staf pendukung sangat membantu dan cepat merespons. (Sadarilah saya menghapus beberapa jawaban saya saat menulis; akan memperbaruinya.).
djq
1
Saya baru-baru ini menginstal MapServer dan TinyOWS di akun webhosting WebFaction saya. Data spasial saya disimpan dalam database PostGIS 1.5 pada akun webhosting yang sama. Saya menjelaskan langkah-langkah yang saya lakukan untuk membuat layanan MapServer WMS aktif dan berjalan di sini: tautan
jirikadlec2
5

Satu kemungkinan lain yang menggunakan AWS:

Anda mungkin ingin melihat ke dalam menggunakan metode AWS Lambda Tiler yang dirancang Seth Fitzsimmons. Dia telah menggunakannya untuk proyek Open Aerial Map dan saya menggunakannya untuk proyek klien pribadi saat bekerja di Stamen Design.

Ada posting blog menyeluruh yang saya tulis yang mendokumentasikan cara mengatur AWS Lambda Tiler di Medium.com . Perhatikan bahwa posting blog hanya mencakup data raster ubin, tetapi kami juga menggunakan proses ini di Stamen untuk menggerakkan ubin peta Terrain Classic global kami yang dihasilkan dari kombinasi data OSM dan Bumi Alami melalui PostgreSQL, PostGIS, Mapnik, dan CartoCSS.

Salah satu manfaat dari pendekatan ini adalah bahwa Anda tidak memiliki server ubin untuk dipelihara dan Anda hanya membayar per penggunaan setiap panggilan fungsi AWS Lambda, yang saya cukup yakin ada di sisi murah untuk proyek-proyek kecil yang tidak menerima sejumlah besar lalu lintas web. Salah satu kelemahan dari pendekatan ini adalah bahwa ubin diunggah oleh pengguna menggeser dan memperbesar peta, sehingga rendering pertama bisa berada di sisi yang lambat, meskipun Anda bisa melakukan pra-seed ubin sebelumnya. Ubin ditulis dan disimpan ke S3 setelah pertama kali diberikan, sehingga pemuatan ubin berikutnya jauh lebih cepat.

clhenrick
sumber
Jawaban bagus. Apakah ada cara otomatis untuk mengembangkan ubin vektor dengan layanan AWS?
Setan Mimpi
Tidak yakin apa yang Anda maksud dengan "otomatis" tetapi tutorial Brain Bancroft tentang pengaturan server MVT menggunakan Tegola di AWS sebagai salah satu metode seperti: bancroft.io/blog/mvt-server-2
clhenrick
3

Untuk mendapatkan harga terperinci untuk layanan AWS Anda dapat menggunakan kalkulator online yang terletak di sini: http://calculator.s3.amazonaws.com/calc5.html

Untuk instance EC2 kecil yang menjalankan Linux, jika Anda mau berkomitmen untuk satu tahun, Anda dapat membeli Mesin Virtual Cadangan yang harganya sekitar $ 25 / bulan. Itu dibandingkan dengan sekitar 44 / bulan untuk harga permintaan, atau harga tanpa kontrak.

Saya pikir jawaban singkat untuk pertanyaan Anda adalah bahwa jika Anda mencari penyedia infrastruktur untuk mengurus kebutuhan aplikasi pemetaan web pribadi Anda, AWS mungkin berlebihan. Jika Anda mencari penyedia TI untuk aplikasi produksi, terutama jika mereka membutuhkan HA dan skalabilitas, maka AWS adalah jawaban Anda. Ini menjadi lebih benar jika Anda membuat aplikasi yang memanfaatkan banyak layanan lem yang disediakan AWS, seperti SQS, SNS, SWF dll.

Seperti apa EC2 yang Anda butuhkan? Itu adalah fungsi persyaratan khusus aplikasi Anda. Inti dari TI berbasis cloud adalah Anda dapat mencoba sebelum membeli. Uji aplikasi Anda tanpa komitmen, dan hanya ketika Anda tahu, buat keputusan yang terinformasi tentang melakukan jenis EC2 selama periode waktu tertentu (pembelian RI).

Mark Korver
sumber
3

Saya bukan seorang ahli dengan banyak atau benar-benar pengetahuan tentang hal itu selain saya telah menjalankan server web di amazon EC2 untuk beberapa waktu sekarang, Jadi ini bukan jawaban.

Saya tidak yakin Anda menggunakan alat ini untuk penggunaan terbaik mereka dengan pra-render dan mengunggah.

  • Bagian terbesar dari biaya aws saya adalah pada transfer data saya (apa yang Anda bicarakan tentang memuat).
  • Apa lagi yang harus dilakukan server Anda (kecuali jika Anda menggunakan lisensi untuk membuat ubin dan tidak memiliki lisensi untuk AWS).

Jika itu tidak menghalangi atau menyebabkan berpikir ulang, Mungkin pertama-tama pilih server peta favorit Anda, Kemudian pilih OS yang didukung untuk server peta itu, Lalu pergi ke AWS EC2 dan temukan Mesin Virtual yang paling memenuhi kebutuhan Anda (ukuran, memori, ruang, wilayah).
Mungkin ada atau tidak ada AMI yang berisi semua tumpukan yang Anda butuhkan sehingga selanjutnya konfigurasikan dan kemudian instal tumpukan Anda.
Ada kemungkinan yang kuat bahwa Anda akan mencapai semua itu dengan "gratis" atau murah.

Brad Nesom
sumber
1
Terima kasih atas jawaban anda. Saya setuju pre-rendering tidak ideal, tetapi rendering berdasarkan permintaan membutuhkan lebih banyak sumber daya aplikasi cloud, yang juga cukup mahal. Dalam skenario pra-rendering server hanya perlu mengambil ubin dari penyimpanan MBTiles (sqlite) dan melayani mereka, sehingga Anda membutuhkan CPU yang jauh lebih sedikit, penyimpanan disk, dan tidak ada RDBMS nyata. Dan jika Anda membatasi level zoom tertinggi untuk sesuatu yang dapat dikelola, tidak ada banyak ubin untuk diunggah. BTW Saya sudah sedikit memperbarui pertanyaan saya.
Igor Brejc
0

Itu benar Anda bisa menggunakan AWS jika Anda menggunakan layanan yang berbeda dari mereka karena AWS cukup mahal. Jika Anda ingin mendapatkan harga yang lebih murah dengan manfaat yang sama saya sarankan untuk https://fxdata.cloud atau https://digitalocean.com karena keduanya memiliki layanan yang lumayan dan harga termurah. Anda pada dasarnya akan mendapatkan semua opsi OS dan DBMS dengan keandalan tinggi.

pengguna79544
sumber