1. Introdução a Sistemas Distribuídos
Elastic Cloud Computing – EC2
Elastic Load Balancing – ELB
Auto Scaling
CloudWatch
Eduardo de Lucena Falcão
2. Elastic Cloud Computing - EC2
● Regiões e Zonas de Disponibilidade
● Características EC2
● Vocabulário EC2
● Tipos de Instância EC2
● Preço de Instâncias EC2
● Ciclo de vida de uma Instância EC2
● Grupos de Segurança
● Ferramentas EC2 para gerência e
monitoramento
3. Características do EC2
Capacidade Computacional Redimensionável
As much as you need, when you need it. Scale up or down in minutes.
Controle Completo via API
Create, scale, & manage instances programmatically.
Variedade de Tamanhos de Instâncias
CPU Power, Cores, RAM, Disk.
Grande Variedade de AMIs (Amazon Machine Images) Pré-Configuradas
Linux, Windows, and OpenSolaris. Besides AMIs with pre-installed software: Wordpress, Joomla, SVN, …
Modelo de Segurança de Rede Segura & Flexível
Full control of access for each running instance.
Keypair required for SSH access.
4. Vocabulário EC2
Regiões
Um conjunto isolado de Data Centers em
determinada Geografia.
Zonas de Disponibilização (Availability
Zone)
Projetadas para serem independentes. Separadas
fisicamente. Porém com conectividade rápida dentro da
mesma região.
5. Vocabulário EC2
Instância
Máquina executável (parte virtual de uma máquina
real).
AMI - Amazon Machine Image
Imagem de Sistema pré-configurada armazenada
na Amazon S3.
APIs
Ferramentas de linhas de comando ou SDKs da AWS
para gerenciar (iniciar, parar, terminar) instâncias
EC2, ou executar outras tarefas, como criar AMIs,
configurar Elastic Load Balancer, Auto Scaling, etc.
SSH
Secure Shell Protocol – para acesso remoto ao shell
das instâncias EC2.
Abcdefghijklmnopqrstuvwxyz
x = a + bc + d2
6. Máquinas Virtuais (US East)
Micro Standard High
Memory
High
CPU
Cluster
Compute
Cluster
GPU
Micro Small Large
Extra
Large
XL 2 XL 4 XL Medium
Extra
Large
4 XL 4XL
Bits
32/64 32 64 64 64 64 64 32 64 64 64
RAM
613 MB 1.7 GB
7.5
GB
15 GB 17.1 34.2 68.4 1.7 GB 7 GB 23 22
Disk
420 GB 160 GB
850
GB
1690 GB 420
850
GB
1690
GB
350 GB 1690 GB 1690 GB 1690 GB
Virtual
Cores 1 1 2 4 2 4 8 2 8 8
2 NVIDIA
Tesla
“Fermi”
GPUs
EC2
Compute
Units
2
(Burst)
1 4 8 6.5 13 26 5 20 33.5 33.5
Firewall
Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
On-Demand Pricing
Linux
Per Hour $0.02 $0.085 $0.34 $0.68 $0.50 $1.00 $2.00 $0.17 $0.68 1.60 2.10
Window
s
$0.03 $0.12 $0.48 $0.96 $0.62 $1.24 $2.48 $0.29 $1.16 N/A N/A
7. Spot Instances
● Você simplesmente faz uma oferta para instâncias do
Amazon EC2 disponíveis e as executa sempre que sua
oferta exceder o Preço Spot atual, que varia em tempo
real com base no fornecimento e demanda.
● AWS pode terminar Spot Instances sem aviso prévio.
● Interessante quando se trabalha com um grande número
de servidores para diminuir o custo das instâncias EC2.
10. Ciclo de Vida da Instância EC2
AMI ou EBS
Snapshot
Instance
(Pending)
RunInstances call to cloud
• Specify which AMI to launch
• Provide parameters
(# instances, security group,
etc)
Instance
(Running)
Instance
(Shutting
Down)
Instance
(Terminated)
Instance
(Stop)
Instance
(Start)
• Snapshot loaded back into EBS
• EBS executed by hypervisor
11. Grupos de Segurança
● Grupo de Segurança – conjunto de
regras de acesso
● Ao criar cada instância, deve ser
atribuído à mesma um grupo de
segurança
● As portas devem ser abertas
manualmente caso necessário
● Grupo de Segurança Default:
inicialmente 100% fechado
● Regras de acesso: Nome,
Descrição, Protocolo, Portas, IP
EC2
Instance
Port 22
(SSH)
Port 80
(HTTP)
EC2 Firewall
12. Endereçamento de uma Instância
EC2
● Toda instância tem:
– Endereço de IP privado;
– Nome DNS privado (*.internal);
– Nome DNS público (*.amazonaws.com);
● Pode ser atribuída um IP elástico;
● Pode ser atribuída a um Elastic Load Balancer.
13. Ferramentas EC2
● API
– Acesse todas as funcionalidades da API EC2 a partir da linha de
comando;
– Multi-plataforma (Java);
– Use a SDK Java para gerenciar e monitorar programaticamente
suas instâncias EC2;
– Para uma visualização mais interativa, use o AWS Management
Console.
15. Elastic Load Balancing - ELB
O que é o Elastic Load Balancing?
Benefícios do Elastic Load balancing
16. O que é o Elastic Load Balancing?
● Todo o hardware tem o seu limite, e muitas vezes o
mesmo serviço tem que ser repartido por várias
máquinas, sob pena de se tornar congestionado.
● Balancear a carga é uma técnica para distribuir carga de
trabalho uniformemente para dois ou mais
computadores, links de rede, CPUs, discos rígidos, ou
outros recursos, com o intuito de obter utilização
otimizada de seus recursos, maximizando vazão e
minimizando tempo de resposta, para evitar sobrecarga.
● Pode também aumentar confiabilidade através de
redundância.
17. O que é o Elastic Load Balancing?
● Elastic Load Balancing distribui automaticamente o tráfego web de
entrada para as múltiplas instâncias EC2.
● Com o ELB é possível adicionar e remover instâncias EC2 de forma
transparente, pois não há necessidade de remodelar qualquer
componente.
● Se uma instância falha, o ELB automaticamente encaminha as
requisições para servidores em pleno funcionamento.
18. Benefícios proporcionados pelo ELB
● Distribuição das requisições de instâncias EC2 em várias Zonas
de Disponibilidade de forma que minimiza o risco de
sobrecarga de uma única instância. E se uma Zona de
Disponibilidade inteira ficar offline, devido à problemas de rede
ou energia, o ELB direciona o tráfego automaticamente para
instâncias em outras Zonas.
● Monitoramento contínuo da “saúde” das instâncias EC2
registradas ELB, para que as requisições sejam enviadas
apenas para instâncias “saudáveis”. Se uma instância torna-se
disfuncional, o ELB pára de enviar tráfego para essa instância e
distribui a carga em todo o restante de instâncias saudáveis.
● Suporte para uso de ambos os protocolos de Internet: IPv4 e
IPv6.
20. O que é o Auto Scaling?
● O Auto Scaling permite escalar a capacidade de seu Amazon
EC2 para cima ou para baixo, automaticamente, de acordo
com as condições que você definir. Com a confiabilidade do
Auto Scaling, o número de instâncias de Amazon EC2 que está
usando aumenta facilmente durante picos de demanda para
manter o desempenho e diminui automaticamente durante
quedas de demanda para minimizar custos. O Auto Scaling é
especialmente útil para aplicativos que experimentam
variabilidade de uso por hora, dia ou semana. O Auto Scaling é
ativado pelo Amazon CloudWatch e é disponibilizado sem
custo adicional além das taxas do Amazon CloudWatch.
22. O que é o CloudWatch?
● O Amazon CloudWatch oferece monitoramento de recursos em
nuvem da AWS e de aplicativos que clientes executam na AWS.
Desenvolvedores e administradores de sistema podem utilizá-lo para
coletar e monitorar métricas, obter insight e reagir imediatamente
para manter seus aplicativos e negócios funcionando sem
problemas. O Amazon CloudWatch monitora recursos da AWS como
instâncias de Banco de Dados do Amazon EC2 e do Amazon RDS e
também pode monitorar métricas personalizadas geradas pelos
aplicativos e pelos serviços do cliente. Com o Amazon CloudWatch,
você ganha visibilidade integral do sistema da utilização de recursos,
do desempenho de aplicativos e do status operacional.