Quando si sceglie un'architettura per un servizio che si basa così tanto su un'architettura "classica" come le mappe Web, non sottovalutare mai l'efficacia di soluzioni di hosting più tradizionali come RackSpace Cloud Servers o Linode .
Avrai molte meno scelte da fare (come usare S3 o no, bilanciamento del carico o no, backup, ecc. O no e quanto costerà?) Il cui risultato è difficile da prevedere E, cosa ancora più importante, sarai in grado di usa strumenti che conosci già.
Avendo vissuto la stessa cosa qualche tempo fa, posso dirti che i fattori critici nella mia decisione di ospitare un servizio di mappe web su Rackspace piuttosto che AWS erano:
- I server cloud sono (più) resistenti rispetto alle istanze EC2. Istanze EC2 sono in realtà tenuti a fallire e che saranno fallire
- Anche i volumi EBS falliscono (ci sono molte storie tristi nelle notizie) e generalmente hanno un I / O scadente
- a meno che non si scelga la contesa I / O di istanze più grandi potrebbe essere un problema (specialmente se si prevede di eseguire il seeding dei riquadri su EC2, anziché copiarli). Potrebbe anche essere un problema con i database MTBtiles
- Ogni volta che riavvii il tuo server, l'ip pubblico cambierà: ciò non accade su Linode o Rackspace
- Dovrai elaborare tu stesso una strategia di backup e ripristino, mentre Linode e Rackspace forniscono snapshot e ripristini automatici giornalieri e settimanali
- Se l'host che esegue il tuo VPS fallisce, Rackspace si occuperà di riposizionare la tua istanza e riavviarla su un altro server e lo faranno in 4 ore (è nel loro SLA). Mi è successo mentre ero in vacanza: mi sono sentito molto professionale. Linode dovrebbe fare lo stesso
- Linode ha un ottimo SLA di disponibilità: 99,9% e pretende grandi prestazioni perché non esegue l'overprovision
- Rackspace ha recentemente messo a punto una strategia di volume come EBS, quindi lo spazio su disco non dovrebbe più essere un problema. In precedenza, se avevi bisogno di molto spazio su disco, dovevi avere un'istanza di grandi dimensioni, mentre su EC2 puoi eseguire il provisioning di archiviazione, CPU e memoria con un controllo più preciso
Con questo non sto dicendo che Amazon AWS sia inferiore agli altri, sto solo dicendo che a volte le soluzioni di hosting tradizionali possono scalare così come quelle basate su cloud. Un esempio notevole è la rete StackExchange stessa.
Quindi, nel tuo caso, vorrei avviare una grande istanza su Rackspace e quindi caricare tutti i dati in un'istanza Postgis locale. Quindi, dopo aver configurato il motore di rendering, eseguivo il seeding della cache. Un'istanza di grandi dimensioni completerà il processo di seeding abbastanza velocemente da non essere troppo costoso da eseguire. Puoi archiviare i riquadri in fs, MTBtiles, anche su S3 (tra l'altro, puoi servire i dati S3 su un CDN con CloudFront ).
Dopo aver completato il seeding, riavviavo il server e lo ridimensionavo in un'istanza piccola (forse anche 512 MB) poiché a quel punto avrebbe dovuto solo servire dati statici.
Questa è una risposta un po 'lunga, quindi mi fermo qui. Se vuoi che elabori alcuni aspetti, lascia un commento.
Disclaimer: non sono affiliato con Rackspace, Linode o qualsiasi altro provider che ho citato.