Alguns básicos fora do topo da minha cabeça:
- Use EBS em vez de armazenar instâncias para todos os dados que precisam ser persistentes.
- Mantenha um backup externo de todos os dados críticos. A Amazon cita o EBS como sendo 10 vezes mais confiável do que as unidades físicas, mas você quer evitar que os serviços da Amazon se tornem indisponíveis.
- Use grupos de segurança cuidadosamente para controlar o acesso às suas instâncias. Quando você precisar adicionar uma porta a um grupo de segurança, restrinja-a a outros endereços na rede da AWS, se possível.
- Os grupos de segurança também podem ser usados para identificar suas instâncias do EC2 (quem pode lembrar um monte de nomes como "i-a27999c"?) Por exemplo, se você tiver um conjunto de servidores da Web e um conjunto de servidores de aplicativos, use grupos de segurança para cada conjunto, mesmo que as regras de acesso sejam as mesmas.
- Use endereços IP elásticos se quiser ter um endereço IP fixo para acesso externo que possa se mover entre diferentes instâncias . Se você tem uma única instância de longa execução, eu não me incomodaria com IPs elásticos.
- Se você planeja executar suas instâncias por um longo período, considere Instâncias reservadas ; você paga uma taxa inicial, mas depois recebe uma taxa horária muito menor.
Na pergunta de backup, qualquer uma das suas opções poderia ser boa - o banco de dados de espera lhe daria uma recuperação mais rápida, mas você estaria pagando pela instância extra do EC2 e seu volume do EBS. Usar o S3 para backups tem a vantagem de você pagar apenas pelo armazenamento que você usa; se você tiver outro volume EBS para backups, pagará pelo tamanho total do volume, mesmo que não esteja usando todo o espaço de armazenamento.