Elastic Load Balancer e terminação SSL

1

Estou configurando um aplicativo do Rails na AWS que: 1) todo o tráfego deve ser SSL criptografado 2) irá flutuar altamente na quantidade de tráfego em uma base semanal 3) será mantido por alguém que é um codificador mais strong que o sysadmin

Estou pensando que a terminação SSL em um balanceador de carga elástico apoiado por pequenas instâncias ec2 executando nginx e unicórnio

Um pequeno subconjunto dos pedidos levará mais de 10s, por isso também estou debatendo usando 'thin' em vez de 'unicorn'.

Minha pergunta é: isso é sensato? Estou entrando em um atoleiro de custo, manutenção, segurança ou problemas de desempenho?

    
por Aaron Scruggs 29.12.2010 / 00:17

1 resposta

2

Mais do que é são ou não, se você não é um administrador de sistema e vai cuidar disso, você vai se tornar um administrador de sistemas, bem rápido. Você está disposto para isso? :) Eu poderia estar perdendo o ponto aqui, mas deixe-me contar um pouco da minha experiência de ser um cara ruby jogando como sysadmin na amazon:

Existem muitos truques que você precisa fazer para rodar no amazon: - O ELB (Elastic load balancer) na amazon é apenas um registro CNAME, então você não pode fazer yourdomain.com apontar para o ELB, então você precisará ter um webserver com um ip elástico para ter um .htaccess ou reflexo ou o que for a coisa reescrita em nginx ou unicórnio. Plano para que ele não te mordeu de volta.

No que diz respeito a thin vs unicorn, é uma estratégia de design além da amazon neste caso. Eu nunca usei magra, mas ouvi falar que há muito tempo associando o estilo dos cometas. Amazon deve ser muito bem para conexões de longa duração, IMHO. Se você quiser mesmo ir mais seguro, você pode usar os cookies para garantir que o navegador do cliente se atenha a apenas um servidor.

"Estou entrando em um atoleiro de custo?"

Sim, fica caro rapidamente na Amazon.

"Estou entrando num pântano de manutenção?"

Sim e não. Eu estava acostumado a ter as máquinas "com algumas milhas", onde eu poderia ir e apertar redefinir ou substituir um disco rígido. Na Amazon, você precisa estar preparado para ter uma de suas máquinas obsoletas, e você terá que reiniciá-lo. Então você precisa planejar para ter uma imagem strong e mantê-la atualizada ou ir para uma coisa de chef ou marionete para gerenciar seus servidores (e enlouquecer, que é tão difícil de configurar, levei um mês, mas aprendi de 0)

"Estou entrando em um atoleiro de desempenho?"

Lembre-se que o disco io está longe de ser o ideal, então o DB para gravações fica lento se o seu banco de dados escreve muito, definitivamente faça um teste simples para ter certeza de que a velocidade é boa o suficiente. E também, você terá que usar o EBS para arquivos de banco de dados.

A velocidade e a memória do processador são muito boas. Eu não me preocuparia.

E também, eu iria a instâncias maiores antes de ficar na horizontal em muitas instâncias pequenas, a menos que você planeje ficar sem portas por causa dessas conexões longas de pooling. Se você quiser ter um desempenho melhor, é mais barato dimensionar verticalmente até atingir o xlarge, em vez de girar toneladas de máquinas.

"Estou entrando em um pântano de manutenção?" --- novamente

Se você tem uma tonelada de pequenas máquinas, você quer fazer com que as máquinas fiquem elásticas para cima e para baixo, e é um incômodo fazer isso.

Se você quiser desenvolvedor amigável, eu gostaria de ir com o EngineYard e verificar se você pode implantar com o serviço deles. Vale a pena.

Por favor, sinta-se livre para fazer perguntas!

    
por 29.12.2010 / 05:07