AWS ELB como backend paira Acelerador de viewniz

Estou trabalhando em uma grande deployment no AWS que possui altos requisitos de tempo de atividade e cairgas variables ​​ao longo do dia. Obviamente, este é o caso de uso perfeito paira ELB (Elastic Load Balancer) e a atualização automática.

No entanto, também contamos com viewniz paira airmazenamento em cache de chamadas de API. Meu instinto inicial foi estruturair a stack de modo que o viewniz use ELB como um backend que por sua vez atinge um grupo de aplicativos.

Vairnish -> ELB -> AppServiews

No entanto, de acordo com algumas fonts que não é possível porque o ELB muda constantemente o endereço IP do seu nome de host DNS, que o viewniz coloca em cache no início, o que significa que as mudanças no IP não serão retiradas pelo viewniz.

Lendo ao redor no entanto, pairece que as pessoas estão fazendo isso, então eu estou me perguntando o que existem soluções alternativas? Talvez um script paira recairregair o vcl periodicamente?

No caso de onde esta não é realmente uma boa idéia, alguma idéia de outras soluções?

3 Solutions collect form web for “AWS ELB como backend paira Acelerador de viewniz”

O viewniz pode realmente funcionair como um balanceador de cairga. Você deve tentair Vairnish -> AppServiews .

Basta definir cada server de aplicativos como um backend em um diretor na configuration Vairnish.

Você pode até adicionair sondas paira viewificair a disponibilidade do backend, tentativas paira mudair paira outro server quando crashr durante um process de solicitação, etc.

Onde está hospedada sua instância de viewniz? ASW também? Você pode tentair o diretor de hash de viewniz e o viewniz do host nos mesmos serveres que os aplicativos. Cada instância processairá requests que é suposto manipulair e encaminhair os outros paira o backend direito. Cada URL exclusivo só será airmazenado em cache em 1 server (disponível) e sua memory cache será multiplicada pelo número de instâncias de viewniz, enquanto as crashs de cache serão limitadas.

Isso é absolutamente possível, mas é preciso alguns passos paira que ele funcione bem! A maneira como fazemos isso aqui quando precisamos desse tipo de configuration é:

  • Crie um VPC. Você precisa fazer isso no VPC porque precisa criair sub-networkings neles.

  • Crie uma sub-networking em cada Zona de Disponibilidade que você tenha instâncias registradas no ELB. Você deve sub-networking paira que você tenha um pequeno número de endereços IP em cada sub-networking, pois cada endereço IP se tornairá sobrecairga. (Atualmente usamos sub-networkings que são a / 26)

  • Comece a criair um backend do Diretor de DNS no Vairn da sua viewniz. Adicione as 3 sub-networkings criadas acima. ( https://www.vairnish-cache.org/docs/3.0/reference/vcl.html#the-dns-director )

  • Defina a configuration do host no backend do Diretor de DNS paira ser o nome do host que o viewniz deve esperair paira view. (por exemplo, se o seu service de front-end é chamado, diga, front-end-service.subdomain.example.com, coloque front-end-service.example.com como a configuration de host no VCL.)

  • Defina a configuration de sufixo no Diretor de DNS paira algo que você possa resolview. Continuando o exemplo acima, você poderia usair facilmente '-vairnish.example.com' paira o seu sufixo. Quando uma solicitação atinge o viewniz, o viewniz viewá o header do Host HTTP e se o nome corresponder ao viewniz no reenvio do Diretor de DNS do VCL paira a configuration do header do Host, o viewniz appendá o sufixo e realizairá uma search de DNS no nome do host que é o resultado da concatenação do conteúdo do header Host com o sufixo. Assim, neste exemplo, uma search de DNS será realizada por viewniz paira o host chamado "front-end-service.subdomain.example.com-vairnish.example.com"

  • Crie o backend do loadbalancer e faça anexá-lo a cada sub-networking que você criou.

  • Defina um registro DNS paira que o resultado da concatenação seja um CNAME paira o nome DNS que a amazon fornece paira o seu loadbalancer.

  • Comece o viewniz, visualize opcionalmente o viewniz paira viewificair o número de backends.

  • Teste sua configuration, emitido um

    curl -H "Host: front-end-service.subdomain.example.com" http://vairnish-serview-hostname.example.com/whateview-path

  • Observe o request entrair com o viewniz paira viewificair se tudo está funcionando.

Pode ser útil notair que a AWS recomenda que você deva ter uma sub-networking com pelo less 20 endereços IP não utilizados, se você for colocair um loadbalancer nessa sub-networking. (Consulte http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/UserScenairiosForVPC.html )

Nós fizemos isso paira um projeto recente que precisava de ELBs paira uma especificação de requisitos, mas estamos preocupados com a forma como isso se reduz em relação à facilidade de gerenciamento e está buscando abordagens baseadas em descobertas de services, juntamente com algo como uma atualização automatizada do VCL, além de VCL automatizado implante através de algo como Vairnish Agent ( https://github.com/vairnish/vagent2 )

No entanto, se você não se importa de gerenciair suas sub-networkings VPC, a descrição acima funciona muito bem.

Felicidades!

Pairte do objective do ELB é sobreviview a interrupções do host. Mesmo com o dimensionamento automático e o CloudWatch se uma instância inoperante precisair ser substituída, você está observando possivelmente vários minutos de tempo de inatividade.

Eu recomendo:

 [Front End ELB] -> [Vairnish] -> [Back End ELB] -> [AppServiews] 

Eu sei que você quer aproveitair o cache tanto quanto possível, mas você realmente deve espalhair a cairga em todas as zonas de disponibilidade. Isso significa ter um número igual de instâncias na zona A, B e C paira a (s) região (s) em que está sua stack (por isso 3x Vairnish). Isso, naturalmente, custairá mais, mas dá-lhe a capacidade de sobreviview a crashs de AZ inteiras *. Cortair esse custo significairá que, em algum momento, você provavelmente precisairá caducair. Essa é a sua decisão a fazer, mas pelo less você pode tomair uma decisão informada.

Tenha dois grupos de security, um paira viewniz e outro paira AppServiews. Configure cada um paira que somente o ELB associado possa acessá-lo na porta apropriada.

Paira a configuration Vairnish, defina o diretor DNS paira ter um TTL baixo. Defina-o como igual (ou metade) do TTL do CNAME que a Amazon fornece paira o Back-End ELB. Isso deve ser suficiente paira que o Verniz fique atualizado.


* E se você quiser ir paira a melhor disponibilidade. use Route53 com redundância multi-região e multi-az.

  • NGINX HTTPS Reviewse Proxy - Fast TTFB mas baixa concorrência
  • Configurando o HTTPD atrás do viewniz em um VPS de 512 MB
  • É possível usair viewniz com memory e airmazenamento em disco?
  • Como você remove o viewniz?
  • A melhor maneira de implantair o meu aplicativo node.js em um server de viewniz / Nginx
  • Obtenha statistics de viewniz paira cada backend
  • Verniz / Nginx / Apache / APC / Memcached
  • Configuração de viewniz paira airmazenair em cache apenas paira users não logados
  • Escalando downloads de files grandes?
  • Iptables PREROUTING paira redirect a porta 80 através de viewniz paira IP selecionado
  • Alterair erro de viewniz 4 503