Vai iniciar um novo projeto ou talvez esteja prestes a desenvolver algumas novas funcionalidades? Antes de começar a realizar qualquer ação, vale a pena informar-se o mais possível sobre as várias ferramentas externas que lhe podem ser úteis.
Dois básicos e provavelmente os mais populares AWS são o EC2 e o S3. Em poucas palavras: com o EC2 pode configurar o seu projeto e mostrá-lo ao mundo, enquanto o S3 é usado para armazenar os dados de qualquer tipo. No entanto, neste artigo, gostaria de abordar outras ferramentas mais ou menos populares da AWS que normalmente utilizamos aqui, na Codest.

Cloudfront
Trata-se de uma ferramenta especialmente criada para fornecer recursos muito rapidamente a muitos utilizadores. E muitos não significa centenas ou milhares, mas milhões de pedidos para um único recurso. Por exemplo, quer permitir colocar o seu gráfico, css, html ou javascript em qualquer página. Também quer ter um impacto total no conteúdo que o recurso fornece - precisa de alterar algo e quer que essa alteração aconteça em todas as páginas com o seu ficheiro. E aqui entra o AWS Cloudfront, com todas as suas capacidades, que farão com que o utilizador final receba o seu recurso o mais rapidamente possível.
O Cloudfront também oferece uma série de estatísticas. Por exemplo, as páginas que foram mais solicitadas, os dispositivos com que o pedido de recurso foi efectuado, os estados http, etc.
É claro que esta ferramenta é bastante cara, mas quanto mais pedidos forem feitos ao cloudfront, menos se paga pelo serviço. Por conseguinte, deve considerar esta solução no caso de querer colocar o recurso nos sítios Web com um tráfego realmente grande ou mesmo enorme.
Lote
Em termos simples, é um serviço que permite a execução de um grande número de trabalhos diretamente no AWS. Tudo o que tem de preparar é um script de execução e um doca enquanto o AWS Batch fará o resto. O Batch criará dinamicamente instâncias no EC2, atribuirá um local adequado para os trabalhos e lançá-los-á ao mesmo tempo. Não tem de se preocupar com o facto de a sua instância EC2 ficar sem espaço ou memória, ou de ter de pensar constantemente sobre quando e como o trabalho pode ser iniciado. Para a comunicação entre o script na imagem docker e o seu serviço, basta criar a API e já está. Se quiser utilizar o Batch, deve também preparar o seu repositório docker no serviço Amazon Elastic Container Registry (ECR).
Também vale a pena mencionar outro serviço que beneficia dos contentores do docker. Chama-se Elastic Container Service (ECS). A sua principal diferença em relação ao Batch é que tem de configurar e escalar a instância EC2 por si próprio, enquanto o Batch faz todo o trabalho por si. Os custos do Batch dependem das instâncias EC2 que podem ser utilizadas, uma vez que, neste caso, só paga pelas instâncias em execução.
Lambda
O AWS Batch faz o trabalho lançando imagens docker, enquanto o serviço seguinte - AWS Lambda - permite-lhe executar o script diretamente. Não precisa de configurar nenhum servidor, o código é executado virtualmente, e o que é ainda melhor, também pode devolver algum valor da forma que quiser.
Quando é que pode ser utilizado? Digamos que quer fazer alguns cálculos no nosso sítio Web com base em parâmetros do navegador e talvez, além disso, estes cálculos exijam algumas consultas extra a outros sítios na Web. Neste caso, tudo o que precisa de fazer é criar um endpoint no Lambda, adicionar o seu script e utilizar este endpoint no sítio Web. É muito fácil.
Os custos do Lambda só são contabilizados quando o script está a ser executado; quando o ponto final não é utilizado, não paga nada.
SNS
O Simple Notification Service, como o nome sugere, é uma ferramenta especialmente desenvolvida para enviar notificações. Pode ser facilmente utilizado para a comunicação entre vários serviços AWS. Por exemplo, tem um grupo de micro-serviços e quer que um deles lidere os outros - inicie alguns deles ou execute algumas acções. Neste caso específico, pode enviar notificações a partir do serviço principal e tratar da receção de mensagens noutros micro-serviços da sua preferência. A propósito, também vale a pena mencionar o Amazon Simple Queue Service (SQS), que pode criar uma conexão muito interessante junto com o SNS.
No caso do SNS (bem como do SQS), o pagamento é efectuado apenas para pedidos executados: envio de mensagens para o SNS, envio de mensagens do SNS para outros serviços e outros pedidos adicionais do conjunto de API do SNS.
RDS
O Amazon Relational Database Service é apenas uma base de dados externa. Com este serviço, a AWS permite uma fácil configuração, utilização e escalonamento de uma base de dados relacional. Por exemplo, se espera que a sua base de dados tenha um tamanho considerável e cresça cada vez mais todos os dias, e se planeia realizar regularmente operações mais ou menos complexas com ela, por exemplo, processar e copiar dados para outra base de dados, vale a pena considerar esta solução. Os motores de bases de dados disponíveis incluem o PostgreSQL, MySQL e MariaDB.
É fácil adivinhar que os custos do RDS estão relacionados com o tamanho da base de dados e a sua utilização, pelo que é difícil dizer se vai ser muito caro ou não.

Resumo
A AWS está constantemente a mudar, quer seja para melhorar os serviços existentes ou para criar algo novo. É preferível não só manter-se atualizado em relação às inovações tecnológicas, mas também conhecer o que já existe.
Ligações úteis