Alguém tem experiência com a execução de mapas da Web (servidor de tile + script JS do cliente) no Amazon Web Services (S3, EC2 etc ...)? Que tipo de configuração da AWS é necessária para executar um aplicativo de mapa da Web de largura de banda de baixa a média, cobrindo uma área pequena (-ish) (tamanho da cidade para o país pequeno)?
Todos os blocos seriam pré-renderizados e enviados para o S3. Idealmente, eu precisaria de um aplicativo de veiculação de bloco no servidor Web que pudesse servir MBTiles (em vez de carregar centenas de milhares de bitmaps de bloco individualmente). Então, algum tipo de instância do EC2 seria necessário, mas que tipo?
Obrigado por todas as dicas.
ATUALIZAÇÃO: apenas para elaborar minha pergunta. O que estou procurando basicamente é um feedback sobre a viabilidade da AWS para hospedar seus próprios mapas da web como indivíduo (o que significa que não deve custar muito, digamos, US $ 30 / mês). Hospedo meus mapas da web há algum tempo por meio de provedores de hospedagem "comuns", mas eles têm suas próprias limitações (a largura de banda de upload é uma, a velocidade é outra). Também estou procurando boas alternativas para a AWS e qualquer coisa a observar ao usar serviços em nuvem para mapas da web.
fonte
Respostas:
Ao escolher uma arquitetura para um serviço que depende tanto de uma arquitetura 'clássica' como os mapas da Web, nunca subestime a eficácia de soluções de hospedagem mais tradicionais, como o RackSpace Cloud Servers ou o Linode .
Você terá muito menos opções a fazer (como usar S3 ou não, balanceadores de carga ou não, backups etc. ou não e quanto isso vai custar?), Cujo resultado é difícil de prever E, mais importante, você será capaz de use ferramentas que você já conhece.
Tendo passado pelo mesmo processo há algum tempo, posso dizer que os fatores críticos na minha decisão de hospedar um serviço de mapas da web no Rackspace, em vez da AWS, foram:
Com isso, não estou dizendo que o Amazon AWS seja inferior aos outros, apenas estou dizendo que, às vezes, as soluções de hospedagem tradicionais podem ser escaláveis e também as baseadas na nuvem. Um exemplo notável é a própria rede StackExchange .
Portanto, no seu caso, eu iniciaria uma instância grande no Rackspace e carregaria todos os dados em uma instância local do Postgis. Depois de configurar o mecanismo de renderização, eu propriamente o cache. Uma instância grande concluirá o processo de propagação rápido o suficiente para que não fique muito caro para executar. Você pode armazenar blocos no fs, MTBtiles, mesmo no S3 (entre, você pode servir dados do S3 em uma CDN com o CloudFront ).
Depois que a propagação foi concluída, eu reinicializava o servidor e o redimensionava em uma instância pequena (talvez até 512 MB), pois, nesse ponto, seria necessário apenas servir dados estáticos.
Está recebendo uma resposta longa, então vou parar por aqui. Se você quiser que eu elabore alguns aspectos, basta comentar.
Isenção de responsabilidade: Eu não sou afiliado à Rackspace, Linode ou a qualquer outro provedor que citei.
fonte
Eu tenho usado o WebFaction para hospedar dados GIS em um banco de dados Postgresql / PostGIS com o MapServer e acho que o serviço é incomparável pelo custo
<$10
mensal. Se você deseja usar o PostGIS 2.0, é necessário instalá-lo, o que é um pouco complicado, mas eles fornecem o PostGIS 1.5 por padrão (você precisa abrir um tíquete de suporte). Este é um serviço de hospedagem compartilhada no CentOS, onde você tem total flexibilidade para instalar qualquer coisa em sua própria parte do servidor.Eu não uso o Webfaction para servir blocos, mas eles fornecem 100 GB de espaço; Não tenho certeza se a RAM seria muito cara, pois o padrão é 256 MB (e cada bloco 256 custa US $ 7 adicionais por mês)
fonte
Outra possibilidade que usa a AWS:
Você pode usar o método AWS Lambda Tiler que Seth Fitzsimmons criou. Ele o usa para o projeto Open Aerial Map e eu o uso para um projeto de cliente privado enquanto trabalhava no Stamen Design.
Há uma publicação completa no blog que escrevi que documenta como configurar o AWS Lambda Tiler no Medium.com . Observe que a postagem do blog cobre apenas dados rasterizados lado a lado, mas também usamos esse processo no Stamen para conduzir nossos blocos globais de mapas Terrain Classic, que são gerados a partir de uma combinação de dados OSM e Natural Earth via PostgreSQL, PostGIS, Mapnik e CartoCSS.
Um dos benefícios dessa abordagem é que você não tem um servidor de bloco para manter e paga apenas pelo uso de cada chamada de função do AWS Lambda, o que tenho quase certeza de que é barato para projetos menores que não receber uma enorme quantidade de tráfego na web. Uma das desvantagens dessa abordagem é que as peças são propagadas pelo usuário fazendo o zoom e o zoom no mapa, de modo que a primeira renderização pode ser lenta, embora você possa pré-propagar as peças com antecedência. Os blocos são gravados e armazenados no S3 após serem renderizados pela primeira vez, portanto, o carregamento subsequente dos blocos é muito mais rápido.
fonte
Para obter preços detalhados dos serviços da AWS, você pode usar a calculadora on-line localizada aqui: http://calculator.s3.amazonaws.com/calc5.html
Para uma pequena instância do EC2 executando Linux, se você deseja se comprometer com um ano, pode comprar uma Instância Reservada que custará cerca de US $ 25 / mês. Isso é comparado a cerca de 44 / mês para preços sob demanda ou preços sem contrato.
Acho que a resposta curta para sua pergunta é que, se você estiver procurando por um provedor de infraestrutura para cuidar de suas necessidades pessoais de aplicativos de mapeamento da web, a AWS pode ser um exagero. Se você procura um provedor de TI para aplicativos de produção, especialmente se eles exigem alta disponibilidade e escalabilidade, a AWS é sua resposta. Isso se torna ainda mais verdadeiro se você estiver criando aplicativos que aproveitam os vários serviços de cola que a AWS fornece, como SQS, SNS, SWF etc.
Quanto ao tipo de EC2 que você precisa? Essa é uma função dos requisitos específicos de seus aplicativos. O ponto principal da TI baseada na nuvem é que você pode tentar antes de comprar. Teste seu aplicativo sem compromisso, e somente quando você souber, tome uma decisão informada sobre como se comprometer com um tipo de EC2 por um período de tempo (a compra do RI).
fonte
Eu não sou um especialista com muito ou realmente nenhum conhecimento sobre ele, além de estar executando um servidor Web no Amazon EC2 há algum tempo, portanto, essa não é uma resposta.
Não tenho certeza se você está utilizando essas ferramentas da melhor forma possível, pré-renderizando e fazendo upload.
Se isso não dissuadir ou causar repensar, provavelmente primeiro escolha seu servidor de mapa favorito, escolha um SO suportado para esse servidor de mapa e vá para o AWS EC2 e encontre a Instância que melhor atenda às suas necessidades (tamanho, memória, espaço, região).
Pode ou não haver uma AMI contendo toda a pilha necessária, então, configure-a e instale-a.
Existe uma forte possibilidade de você realizar tudo isso de forma "gratuita" ou barata.
fonte
É verdade que você pode optar pela AWS se estiver usando os diferentes serviços deles, pois a AWS é bastante cara. Se você deseja obter preços mais baratos com os mesmos benefícios, eu recomendaria para https://fxdata.cloud ou https://digitalocean.com, pois ambos estão tendo serviços apreciáveis e preços mais baratos. Você basicamente obterá todas as opções de sistema operacional e DBMS com alta confiabilidade.
fonte