Eu configurei esta pilha muitas vezes na AWS. Opção # 1 sempre funcionou bem para mim e é o que eu normalmente escolho porque é o mais simples. Estou curioso para saber com quanto tráfego você está lidando, onde os acertos do cache inicial são menores do que os ideais? Estou exibindo alguns milhões de exibições de página por mês em um par de instâncias de m1.small e elas mal são arranhadas.
Outros pensamentos:
-
O Nginx pode usar o memcached como um armazenamento em cache. Conecte-o em um cluster ElasticCache. Isso fornecerá um datastore muito rápido e centralizado para várias instâncias para se conectar ao conteúdo do cache. (nunca fiz isso, mas parece factível. Por favor, poste os resultados se você tentar.)
-
O problema SPoF mencionado na Opção 2 pode ser atenuado pela configuração de um grupo de escalonamento automático que contenha uma única instância. Se ele morrer, ele deve voltar a ficar on-line em questão de alguns minutos. Você precisará mexer com um script de inicialização que automaticamente agarra o Elastic IP.
-
Tenha em mente que colocar qualquer coisa na frente de um ELB exigirá que você use o VPC. Em geral, essa é uma boa prática, mas pode ter uma curva de aprendizado acentuada.
As -
Ações de alarme do CloudWatch foram anunciadas hoje. Você poderia fazer algumas coisas legais com isso para ajudar a minimizar o problema do SPoF.