Endereços de teste do SES

A Amazon criou o SES Mailbox Simulator, basicamente são contas de email que simulam situações possíveis de caixas postais. Para testar, basta enviar email para as contas abaixo:
success@simulator.amazonses.com
bounce@simulator.amazonses.com
ooto@simulator.amazonses.com
complaint@simulator.amazonses.com
blacklist@simulator.amazonses.com
Documentação: http://docs.amazonwebservices.com/ses/latest/DeveloperGuide/MailboxSimulator.html

SES – Send Email Service

2000 emails de graça por dia se enviar pela máquina virtual EC2, vamos ver como fazer isso.
Vamos usar o script ses-send-email.pl, ele usa alguns módulos do Perl que precisa instalar (no Readme manda usar o CPAN mas não funciona na micro-imagem da Amazon, tem que ser via yum mesmo):
yum install perl-Digest-SHA.x86_64
yum install perl-libwww-perl.noarch
yum install perl-IO-Socket-SSL.noarch
ses-send-email.pl -k /opt/aws/.aws -s teste -f [mail_from] [mail_to]
Antes de entrar em produção, precisa verificar os emails (pela console do AWS mesmo) que usará nos testes.
Para integrar com o sendmail, seguir o tutorial:
http://docs.amazonwebservices.com/ses/latest/DeveloperGuide/index.html?IntegratingWithServer.Sendmail.html
Como ficou a última linha do meu sendmail.cf:
Maws-email,     P=/opt/aws/bin/ses-send-email.pl, F=mDFMuXn, U=smmsp, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP, A=ses-send-email.pl -r -k /opt/aws/.aws -e https://email.us-east-1.amazonaws.com -f $f $u
Se for testar com o comando mail, lembrar de especificar um remetente (-r) verificado pelo SES.

Nuvem não é algo tão novo

Trecho da Business Week “December 13, 2007”:
“the tech team at The New York Times rented computing power on Amazon’s cloud and used Hadoop to convert 11 million archived articles, dating back to 1851, to digital and searchable documents. They turned around in a single day a job that otherwise would have taken months”
http://www.businessweek.com/magazine/content/07_52/b4064000281756.htm

IP Fixo na nuvem

Vamos combinar, IP dinâmico é chato pra caramba. Por padrão, sua instância Amazon EC2 recebe dinamicamente um IP público e um privado, que você pode verificar pela Console ou por linha de comando:
curl http://169.254.169.254/latest/meta-data/local-ipv4
curl http://169.254.169.254/latest/meta-data/public-ipv4
Para obter um IP fixo você deve solicitar um Elastic IP. Esse IP será associado a sua conta e não a sua instância. Logo, você deve também associá-lo a sua instância.
Cuidado: se deixar um Elastic IP sem associar-se a uma instância, a Amazon irá lhe cobrar por inatividade (afinal, IP válido é um recurso limitado). Se você parar uma instância, a associação é automaticamente desfeita.
Vale lembrar que o Elastic IP pode ser associado a apenas uma instância, então seu controle de falha por exemplo teria que ser manual, associando o IP para outra instância.
Se precisar de Load Balance, precisa utilizar o AWS Elastic Beanstalk, os detalhes vou deixar para outro post.

Passos para criar um servidor na nuvem

Acesse http://aws.amazon.com/ e faça seu cadastro (Sign Up).
Preencha seus dados pessoais e de cartão de crédito (você só paga se usar algo não-gratuito).
O passo final do cadastro é uma validação telefônica. A Amazon te liga e você digita os 4 dígitos que estão na tela. Agora é só esperar o email de confirmação.
Acesse o console do AWS: http://aws.amazon.com/console/
Acesse o item EC2 no menu superior. Deve estar selecionado o item “Instances” no menu lateral. Na página principal, acesse o link “Launch Instance”.
Escolha a imagem do servidor (AMI), lembrando que as gratuitas tem .
Selecione o tipo e quantidade de instâncias (Micro e 1 para gratuito).
As opções seguintes podem ficar no padrão. Sugiro habilitar o Termination Protection. O campo User Data pode ser usado para inserir alguma informação que deseja acessar de dentro do servidor.
Escolha um nome e faça o download da chave PEM que será usada depois para acesso ao servidor.
O próximo passo é configurar o firewall, a porta 22 (SSH) já vem liberada para acesso ao console do servidor, insira também a porta 80 por exemplo para liberar acesso HTTP.
Agora vamos preparar o acesso ao servidor criando o arquivo PPK a partir do PEM. Vamos fazer isso utilizando o puttygen.

Importe o arquivo PEM salvo anteriormente e clique em Save private key.
Volte para console do AWS e clique na instância criada para copiar o Public DNS que será usado como Host Name no Putty.

Configure o usuário ec2-user para login.

Configure a chave, buscando o arquivo PPK e salve a sessão.

Agora você já tem acesso ao servidor, pode instalar os serviços utilizando o yum (yum list / yum install xxx). Lembre de fazer sudo bash para virar root.

Amazon Web Services (AWS)

Não tem coisa mais legal que liberdade. Ainda mais de graça.
A Amazon disponibiliza para seus usuários uma máquina virtual básica que fica na nuvem deles gratuitamente. Pra você fazer o que quiser.
E não é só isso, são diversos serviços que eles oferecem na nuvem e que são cobrados por consumo, ou seja, você só paga o que usar. E estamos falando de centavos.
Mas voltando ao servidor grátis, para ter o seu você precisa apenas se associar ao AWS (http://aws.amazon.com/). Se já tiver usuário da Amazon, é só autenticar e aceitar o contrato. Você precisa fornecer o cartão de crédito.
O servidor fornecido tem 1 CPU de 2.6GHz, 600MB de RAM e 8GB de HD. Não é nada de outro mundo, mas pra rodar uns sites e fazer umas brincadeiras, está ótimo.
Precisa tomar cuidado para escolher os serviços “micro” e “Free Tier Eligible”, ou seja, gratuitos. Por exemplo, o Elastic IP não é cobrado desde que você associe a uma máquina; se pedir o serviço e deixar solto será cobrado.