(Slides are in PORTUGUESE) A small presentation containing some of the most important cloud-based services provided by AWS (Amazon Web Services). This is useful if you're considering using cloud services (AWS is one of the key vendors in this field) but you're a little bit confused at the great variety of products and services provided by Amazon.
1. Amazon Web Services
40-50 minutos
Atualizado em Dez 2013
falmeida1988@gmail.com
Um resumo básico dos principais serviços
2. EC2 - Elastic Computing Cloud
Máquinas virtuais remotas customizáveis, com modelo de pagamento pay-as-
you-go
desde uma máquina de 1 núcleo 600MB de RAM até 8 núcleos, 30 GB de
RAM e 160 GB SSD
acesso root total com máquinas Windows e Linux
Bom para: quem quer colocar um serviço na web (site, web service ou aplicativo web) sem ter que
assumir muitos custos de início - você começa sem pagar nada e, quando você precisar de mais
processamento, provavelmente já estará faturando com seu site/aplicativo.
3. Workspaces
Desktops remotos hospedados na nuvem. Você configura
um ambiente desktop e os disponibiliza para seus funcionários.
Suporta notebooks, tablets e outros tipos de thin clients.
Você pode instalar aplicativos como MS Office, browsers e anti-vírus.
Bom para: empresas que querem padronizar o ambiente desktop dos funcionários; empresas que
querem maior controle sobre seus dados (impedir que dados corporativos sejam mantidos em
máquinas de funcionários) e compliance com regulamentos.
4. EMR - Elastic MapReduce
Ambiente Hadoop disponibilizado através de web services, hospedados em
um cluster de instâncias EC2 que pode ser aumentado ou diminuído.
Modelo pay-as-you-go, baseado no serviço EC2.
O usuário não precisa tomar conta da administração das instâncias.
Bom para: quem quer processar grandes quantidades de dados (aplicação em processamento de
logs, machine learning, bioinformática) em paralelo e não quer/não pode fazer um grande
investimento inicial.
5. Kinesis
Serviço de processamento de dados em larga escala em tempo real.
Cada instância (shard) suporta em torno de 1000 requisições (HTTP PUT) por
segundo.
Integração com Storm.
Bom para: empresas que precisam detectar eventos e/ou padrões de comportamento em dados
para tomar decisões na mesma hora, como um IDS/IPS ou um aplicativo que faz operações de
compra e venda na bolsa de valores, por exemplo.
6. Appstream
Serviço de processamento e streaming de video games, vídeos e outros tipos
de aplicativos que precisem de muito processamento e hardware avançado.
Todo o processamento é feito na infraestrutura da Amazon, e o resultado é
enviado (streamed) de volta para o usuário, respondendo a clicks ou outras
ações típicas de jogos ou outros aplicativos interativos.
Suporta múltiplos dispositivos; móveis ou não.
Bom para: desenvolvedores de jogos ou outros aplicativos que envolvam renderização de gráficos
on demand ou outro tipo de processamento pesado que desejem terceirizar o processamento para a
nuvem, liberando o público de ter que investir em hardware avançado.
7. CloudSearch
Serviço de busca em um dataset. Você envia documentos para um contêiner
pré-definido na nuvem e todo o conteúdo vai sendo indexado automaticamente
para você e depois você pode fazer todo tipo de busca sobre eles.
Suporte a (e indexação de) vários formatos de dados - Texto puro, Word,
Excel, PDF, HTML (mas tem que converter para o formato SDF antes (a Amazon disponibiliza o
conversor))
Outros competidores: Apache Solr, ElasticSearch
Bom para: quem precisa de mecanismos de busca sem se preocupar com gerenciamento de
infraestrutura e de escala, heterogeneidade dos dados.
8. SWF - Simple Workflow Service
Serviço de construção de Workflows ou pipelines corporativos, com
possibilidade de envio de mensagens (para um aplicativo, por exemplo).
Defina processos e workers (callbacks que podem ser um script, um aplicativo
web ou até uma ação humana) que agirão para completar um passo do
workflow.
Use o SWF para controlar um aplicativo inteiro orientado a eventos
assíncronos (que dispararão em resposta à completude de uma etapa, por
exemplo).
Bom para: empresas que têm algum processo complexo que precisa ser bem preciso (e talvez
auditável) e não querem arcar com os custos e riscos de desenvolver uma plataforma para controlar
os passos e etapas do mesmo.
9. SQS - Simple Queue Service
Serviço de gerenciamento de filas de mensagens. Se propõe a resolver o
problema dos produtores/consumidores (produtos são produzidos de um lado e
consumidos de outro, cada um com diferentes taxas de atuação (capacidade)).
Competidores: RabbitMQ, IronMQ, StormMQ (MQ == Message Queue)
Interface RESTful
Bom para: organizações que possuem vários aplicativos que precisam se comunicar, mas eles não
têm a mesma capacidade de processamento; é necessária uma estrutura de dados (um buffer) que
armazene os dados produzidos por um lado e ainda não consumidos pelo outro.
10. SES - Simple E-mail Service
Serviço de envio de e-mails. Você usa uma API da Amazon e envia e-mails de
dentro do seu aplicativo.
E-mails são atrelados a um domínio - não caem na caixa de spam do Gmail.
Só para envio, não para recebimento.
Bom para: quem quer mandar e-mails de seus aplicativos mas não quer ter o trabalho de montar
um servidor de e-mails e outras coisas para garantir que seu e-mail não seja considerado spam, etc.
11. SNS - Simple Notification Service
Serviço de envio de mensagens push. (Mensagens push (em contraste com mensagens,
GET e POST, por exemplo, que são mensagens do tipo pull, pois são iniciadas pelo cliente, não pelo
servidor).
Mensagens push são usadas com frequência para enviar notificações para
dispositivos móveis.
Mensagens push aparecem com destaque na interface de dispositivos móveis.
Bom para: empresas que querem enviar mensagens e talvez anúncios/propaganda para usuários
de dispositivos móveis, por exemplo. Lembre-se que usuários podem facilmente desativar essas
mensagens caso se tornem incômodas.
12. Elastic Transcoder
Serviço de conversão de vídeo e áudio de vários formatos de origem para
vários formatos de destino.
Defina um bucket S3 como fonte de seus dados e outro onde os arquivos
convertidos serão depositados pelo serviço.
Bom para: quem produz ou transmite conteúdo multimídia na Internet e quer ter versões diferentes
do seu conteúdo para os mais diversos dispositivos, taxas de transferência e formatos.
13. VPC - Virtual Private Cloud
Disponibilização de “nuvens privadas”. Uma parte da infraestrutura da AWS é
reservada para seu uso apenas.
Isole seus dados em uma seção da nuvem sem acesso à Internet, para
garantir sua inviolabilidade.
Pode-se conectar uma VPN à rede VPC, para melhor conexão.
Bom para: organizações que queiram estender sua rede interna para a nuvem ou organizações
que precisem de serviços de nuvem mas não podem abrir mão de manter seus dados isolados da
Internet, geralmente por questões de segurança.
14. CloudFront
Serviço (rede) de distribuição de conteúdo (CDN).
Use a infraestrutura da Amazon em todo o mundo para replicar seus dados.
Competidores: MaxCDN, Akamai
Bom para: quem tem um site ou serviço web e quer disponibilizar várias cópias, uma em cada local
do planeta, para que cada um acesse conteúdo perto de casa para reduzir a latência.
15. RDS - Relational Database Service
Como o nome diz, é um serviço de banco de dados relacional
Baseado em instância EC2, então só escalam até um certo ponto (não mais do
que alguns terabytes por instância)
Suportam todos os modelos de RDBMS comumente usados.
Bom para: quem precisa de escala para seus bancos de dados mas não quer deixar de usar seu
código atual, feito com bancos de dados relacionais em mente. Além disso, o usuário não perde
tempo com manutenção e instalação de servidores de banco de dados.
16. DynamoDB
Serviço de banco de dados NoSQL altamente escalável e com boa
performance, armazenado em discos SSD.
Otimizado para operações simples de consulta e inserções, sem muitos JOINS
ou transações.
Escala muito bem, até uma escala de petabytes.
Bom para: quem precisa de um serviço de banco de dados não-relacional que tenha performance
minimamente previsível e que escala bem, sem precisar perder tempo com instalação,
gerenciamento, etc.
17. ElastiCache
Serviço de armazenamento de dado in-memory para acesso rápido.
Usa Redis ou memcached por baixo dos panos.
Bom para: quem já faz uso destes serviços e quer terceirizar o servidor (e sua manutenção) para a
nuvem e contar com melhores recursos de máquina.
18. SimpleDB
Serviço de banco de dados distribuído, não relacional.
Abre mão de um pouco de consistência para atingir disponibilidade e tolerância
a falhas (pois os nós estão conectados por uma rede que pode falhar)
Melhor usado com conjuntos de dados não muito grandes (< 10GB)
Bom para: quem precisa de um banco de dados sem schema, com atributos esparsos (muitos
valores NULL) não particularmente grande.
19. S3 - Simple Storage Service
Serviço de armazenamento e recuperação (retrieval) de arquivos na nuvem.
Interfaces REST, SOAP e até BitTorrent para operação de CRUD.
Há em torno de 2 trilhões de objetos guardados no S3 (2013)
Útil para arquivos estáticos (CSS, Javascript, Imagens) de Websites.
Bom para: quem precisa de um serviço de armazenamento escalável e disponível em toda web,
sem se preocupar com gerenciamento de infraestrutura, segurança e afins.
20. Glacier
Armazenamento de arquivos e dados a longo prazo (meses - anos). Baixo
preço de armazenamento.
A partir de USD 0,01 por GB para envio e armazenamento.
Um pouquinho mais caro para recuperar os dados.
Bom para: quem precisa guardar dados (seus ou de terceiros) por muito tempo, para fins de
auditoria, backup, arquivamento de mídia e para armazenamento de logs.
21. Mechanical Turk
Serviço de crowdsourcing. Leilão de pequenos serviços com pessoas
interessadas em fazê-los por uma pequena quantia.
Use para validar algoritmos de aprendizado de máquina ou de inteligência
artificial.
263 000 trabalhos (HITs) disponíveis em Fevereiro/2014
Bom para: organizações que precisam de serviços em massa que não podem ser facilmente
automatizados e que precisam de input humano, como pesquisas, limpeza de dados,
tratamento/classificação de imagem, etc.