Problema de serviços do Amazon EC2

1

Nossa aplicação é uma aplicação web ASP.Net 3.5. Atualmente estamos hospedando nosso aplicativo em nossos servidores dedicados que estão nos EUA. Agora estamos tendo usuários dos EUA e da Ásia e, conforme a configuração atual, os usuários nos EUA estão obtendo boa velocidade, mas os usuários da Ásia não estão obtendo muita velocidade com a aplicação. Então, chegamos a conhecer o Serviço Amazon EC2 e queríamos ter uma ideia sobre esse serviço, mas antes de prosseguir, queremos saber se faremos ou não a configuração desejada no serviço Amazon EC2.

Queremos configurar o seguinte ambiente no Amazon EC2:

  • 1 servidor da Web na região dos EUA
  • 1 servidor da Web na região de Singapura
  • 1 servidor de banco de dados na região dos EUA
  • Crie um Loadbalancer entre essas duas instâncias

Queremos fazer a configuração acima, pois nosso aplicativo está sendo usado por usuários que residem nos EUA e na Ásia, portanto, queremos que ambos sejam beneficiados com boa velocidade. De acordo com nossa pesquisa atual, ficamos sabendo que não é possível configurar um balanceador de carga entre duas instâncias pertencentes a diferentes regiões. Está correto?

Outra questão é sobre o recurso AutoScaling da Amazon. Nós passamos por vários blogs e sites e ficamos sabendo que o AutoScaling também é um bom recurso da Amazon, mas queremos saber se isso será útil para nós ou não, considerando a configuração acima. Fizemos algumas pesquisas sobre o AutoScaling e ficamos sabendo que, para configurá-lo na Amazon, precisamos executar alguns scripts de API ou precisamos usar suas ferramentas de linha de comando da API. Então, essas são a única maneira de configurar ou há algumas ferramentas baseadas na GUI disponíveis que podemos usar para fazer isso.

EDITAR:
Aplicativo Web sendo usado por mais de 4 anos por usuários de todo o mundo. E nosso aplicativo é ter imagens, capas, temas, css, vídeos e ao longo

com eles, também temos recursos como gerenciamento de funções, outros. Para executar este aplicativo a partir do CloudFront, podemos colocar nosso código, ou seja, dlls e

outros itens relacionados ao código no CloudFront e depois usar isso? E também precisaremos usar a conexão com o banco de dados para isso. Então, por favor, deixe-me saber

se, no meu cenário, for possível executar nosso aplicativo em mais de uma instância de duas regiões diferentes que usam código do CloudFront? Por favor deixe-me saber. Minha outra pergunta foi sobre a configuração do AutoScaling. De acordo com nossa pesquisa, essa é uma boa opção para nós, pois, em alguns casos, estamos obtendo mais hits por um determinado período de tempo. Com isso, podemos usar o recurso AutoScaling para manter nosso aplicativo atendendo usuários adicionando uma ou mais instâncias automaticamente conforme o requisito. Mas não conseguimos encontrar nenhuma opção para configurar isso usando alguma ferramenta GUI. Então você pode nos informar sobre isso também?

    
por Jalpesh Vadgama 06.09.2010 / 14:33

1 resposta

1

Isso é muito que você tenta realizar em uma única etapa:

  • indo para a nuvem a partir de um servidor dedicado
  • executando várias instâncias do seu aplicativo em vez de uma instância
  • introduza o balanceamento de carga

Cada passo pode ter muitas armadilhas. Apenas um exemplo: se você tiver apenas um servidor de banco de dados e a latência entre diferentes regiões do mundo for um problema, provavelmente a configuração proposta será mais lenta do que antes se a comunicação entre seus servidores da Web em todo o mundo e seu servidor de banco de dados apenas um local é mais "tagarela" do que entre o agente do usuário e seu navegador da Web!

Então, o que eu recomendaria fazer é:

  • Use uma rede de entrega de conteúdo como o Amazon CloudFront para todos os seus arquivos estáticos (como JavaScript, imagens, CSS, arquivos HTML estáticos etc.). É fácil de integrar no seu aplicativo e implantação atual, é muito mais barato (sem taxas mínimas, como executar várias instâncias do EC2 24x7), e sua página será carregada de maneira significativamente mais rápida, especialmente a primeira solicitação de página por sessão. Seus arquivos serão distribuídos por muitos datacenters no mundo (não apenas dois), com seu aplicativo real ainda em execução em um único servidor da Web.
  • Tente usar um provedor de hospedagem com links melhores para backbones e roteamento internacionais. Para uma única solicitação HTTP, o efeito na latência não deve ser perceptível para usuários "normais" (embora ainda mensuráveis, é claro), geralmente não mais que 300 ms. Na primeira solicitação (ou visita), o efeito é somado porque muitos arquivos podem ter que ser carregados de uma só vez.
por 06.09.2010 / 15:28

Tags