OCEL001 – Comércio Eletrônico
Módulo 9_5: AWS
Prof. Charles Christian Miers e-mail: charles.miers@udesc.br
2
Amazon AWS
Histórico, entrevista com Jeff Bezos
http://blog.b3k.us/2009/01/25/ec2-origins.html Datas importantes:
Julho/2002 – Lançamento AWS
Março/2006 – Lançamento Amazon S3 Agosto/2006 – Lançamento EC2
3
Amazon AWS
É o conjunto de web services que constituem uma
plataforma de computação em nuvem
Desenvolvida e mantida pela Amazon Os serviços mais populares
Amazon EC2 – Permite a criação de servidores virtuais Amazon S3 – Armazenamento escalável na nuvem
Amazon AWS
Amazon Web Services (AWS): http://aws.amazon.com/
Permite terceirização de recursos computacionais
Amazon Elastic Compute Cloud (Amazon EC2) Amazon Simple Storage Service (Amazon S3) …
Tarifação baseada em uso
APIs (Web Services / Rest) para interação com software de provisionamento e monitoração
Permitem a criação de empresas de prestação de serviços internet sem servidores
6
7
Amazon AWS - EC2
Oferece uma capacidade de computação
redimensionável na nuvem
A interface simples permite criar e configurar
instâncias sem dificuldades
No modo gratuito é possível criar instâncias T1 Micro
com poucos recursos computacionais, mas suficientes para testes
8
Amazon AWS – EC2 (Cont.)
Permite a execução remota de várias instâncias de uma máquina
virtual:
Templates de hardware c/ XEN (ex.: Standard, High-Memory,
High-CPU,etc.)
Imagens pré-configuradas com SO e softwares
Definição de zonas onde instâncias serão executadas, regras de
firewall, etc.
Diferentes modelos de tarifação: on-demand, reserved e spot Há diversas AMI customizadas com aplicações de fornecedores
Exemplo: IBM (http://aws.amazon.com/ibm/ )
AMI com Suse Linux e aplicativos IBM (ex.: DB2, Websphere,
Tivoli,etc.)
Possibilidade de conversão de licenças normais para licenças
9
Amazon AWS – EC2 (Cont.)
Small Instance (default):
1.7 GB memory
1 EC2 Compute Unit (1 virtual
core with 1 EC2 Compute Unit)
160 GB instance storage (150
GB plus 10 GB root partition)
32-bit platform
I/O Performance: Moderate
Internet Data Transfer (out):
$0.15/GB - first 10 TB/mês $0.11/GB – próx. 40 TB/mês $0.01 per GB in/out para transf.
entre zonas US – East (North Virginia) South America (SP/Brasil) Linux/Unix 0.070 0.095 Windows 0.133 0.158 Linux + DB2 Express 0.365 0.375 Linux + Websphere 0.795 0.805
Preços para On-demand medium Instance
(por hora de execução – USD)
Tarifas Reserved (Linux / US-East):
Entrada ($181/1ano ou $286/3anos) + $0.022/h
11
Casos de Uso
Startups
Ciência e pesquisa
Gerenciamento e balanceamento de carga Servidores
12
Criando uma nova instância
Console de gerenciamento da Amazon Web Services
13
Criando uma nova instância
Na página seguinte é exibido o painel de
gerenciamento do EC2
Para criar uma nova instância, clique no botão
14
Criando uma nova instância
Surgirá no navegador um assistente de criação de instâncias
15
16
Criando uma nova instância
Na tela seguinte, será apresentada uma lista de imagens dos sistemas operacionais disponíveis
Selecione a versão mais recente do Ubuntu Server LTS, na versão 64-bit
17
18
Criando uma nova instância
Selecionar a imagem e definir a arquitetura Clicar em “Select”
19
Criando uma nova instância
Na próxima etapa é escolhido o número de instâncias a serem criadas, o tipo da instância e a localização
A instância do tipo T1.Micro está disponível no modo gratuito por um ano
Até 750 horas por mês
21
Criando uma nova instância
22
Criando uma nova instância
Configurar o particionamento dos discos, quando
necessário>
Clicar no botão “Add New Volume” para criar novos
volumes ou mudar o tamanho e tipo do volume padrão (Root)
Se não for necessário, basta clicar em “Next: Tag
23
25
Criando uma nova instância
O próximo passo consiste em configurar o Firewall
da instância
Por padrão existe um grupo de segurança
configurado
29
Criando uma nova instância
Clicar em “Review and Launch”
Revisar as configurações e se tudo estiver ok clicar
em “Launch”
É necessário criar um Key Pair para acessar a
instância via SSH
Clicar em “Create a new key pair”
Escolher o nome da chave Salve o arquivo gerado
Clicar em “Launch Instances” para iniciar a instância
30
31
32
33
Acesso via SSH
O único modo de acessar sua instância é pelo SSH
(Secure Shell)
Mesmo que você tente acessar pelo console de
gerenciamento da Amazon, terá de usar um cliente SSH baseado Java que é executado a partir do
34
Acesso via SSH
Para se conectar é necessário usar a chave pública
que foi criada durante a criação da instância
O GNU/Linux já possui nativamente um cliente SSH Para se conectar basta digitar:
ssh -i <caminho_da_chave.pem> ubuntu@<FQDN da instância>
Importante mudar os atributos de permissão da
chave:
35
36
Acesso via SSH
No acesso via navegador somente é necessário
informar a localização da chave de acesso e executar o aplicativo
37
38
Acesso via SSH
Se tudo estiver certo, o aplicativo de SSH (applet)
39
40
Amazon AWS - S3
Oferece capacidade escalável de armazenamento na
nuvem
Pode ser utilizado para armazenar qualquer
quantidade de dados e recuperá-los de qualquer lugar na web
O nível gratuito permite até 5GB de armazenamento O armazenamento é realizado por meio de buckets
41
Amazon AWS – S3 (Cont.)
Permite o armazenamento de dados nos servidores da Amazon,
tanto para uso pessoal como de aplicações online
Interface via SOAP
Acesso a dados via HTTP ou BitTorrent Possibilidade de versionamento de dados
Armazenamen
to Transf. Dados Requests
US 0.15/GB
(first 50 TB)
0.14/GB
(próx. 50 TB)
0.15/GB
(first 10 TB data out)
0.11/GB (próx. 40 TB data out) 0.01/1.000 requests (PUT/POST) 0.01/10.000 requests (GET/BT)
42
Amazon AWS – S3: Exemplo Jungle Disk
Jungle Disk:
Serviço de Armazenamento / Backup / Compartilhamento /
Sincronização de Arquivos
Utiliza-se do Amazon S3 ou do Rackspace para armazenamento Dados criptografados pela aplicação local antes de colocar na
nuvem
Personal Desktop Edition Workgroup
Serviço Backup online
Backup, disco
virtual, sync, share
Backup, disco virtual, sync, share
Usuário 1 1 vários
Custo* 2/mês 3/mês 4/usuário/mês
Ex. Tarifação de Armazenamento (USD)
44
Casos de Uso
Compartilhamento de mídias Distribuição de softwares/mídias Backup Armazenamento online Armazenamento de aplicativos45
API Amazon AWS
A Amazon disponibiliza uma API de seus serviços em
várias plataformas e linguagens
Também disponibiliza Toolkits para as IDEs Eclipse e
MS-Visual Studio
Site da Amazon está disponível toda a documentação
da API
As informações das operações da API podem ser
enviadas através de:
SDK para Java, Visual C#, PHP, Python, entre outras Um CLI disponível para sistemas GNU/Linux
46
A API do Amazon Elastic Compute Cloud possui mais
funções do que a API do Simple Storage Service
Isso se deve ao fato de que o gerenciamento de máquinas virtuais é mais complexo do que
gerenciamento de arquivos
47
API Amazon EC2
Detalhes de algumas ações da API do Amazon EC2:
Amazon Machine Images: é possível criar, copiar, modificar e registrar imagens das máquinas
Endereços IP Elásticos: possibilita alocar, associar, descrever, desassociar e liberar Ips Elásticos
Instâncias: permite iniciar, parar, finalizar, reiniciar e monitorar instâncias, entre outros
Pares de chaves: permite criar, deletar e importar pares de chaves de acesso às instâncias
Grupos de segurança: criar, excluir, autorizar e revogar acesso dos grupos à certas instâncias
48
API Amazon EC2
Exemplo:
Criando uma nova instância (Java)
Requisitos:
ImageID – ID da AMI
InstanceType – Tipo da instância a ser criada MinCount – Número mínimo de instâncias
MaxCount – Número máximo de instâncias KeyName – Nome da chave de acesso
49
API Amazon EC2
Para criar uma instância utilizando o SDK para Java é
necessário autenticar o usuário
Criar um arquivo chamado:
“AwsCredentials.properties” com a seguinte estrutura:
secretKey=SUA_CHAVE_SECRETA
accessKey=SUA_CHAVE_DE_ACESSO
A chave secreta e a chave de acesso devem ser
criadas na seção “Security Credentials” do menu “Conta/Console”
50
API Amazon EC2
Depois, é necessário definir o local do arquivo e então
inicializar o cliente AWSCredentials credentials = new PropertiesCredentials( AwsConsoleApp.class.getResourceAsStream("AwsCre dentials.properties")); amazonEC2Client = new AmazonEC2Client(credentials); amazonEC2Client.setEndpoint("ec2.uswest2.amazonaw s.com");
51
API Amazon EC2
Pedido: RunInstancesRequest runInstancesRequest = new RunInstancesRequest(); runInstancesRequest.withImageId("ami4b814f22") .withInstanceType("m1.small") .withMinCount(1) .withMaxCount(1) .withKeyName(“YourKeyName”) .withSecurityGroups("YourSecurityGroupName"); RunInstancesResult runInstancesResult = amazonEC2Client.runInstances(runInstancesRequest); Fonte:http://docs.aws.amazon.com/AWSSdkDocsJava/latest/DeveloperGuide/run-instance.html52
API Amazon EC2
Exemplo:
Criando uma nova instância (CLI GNU/Linux)
Comando:
ec2-run-instances ami_id -n numero_de_instancias -k
keypair -g grupo --instance-type tipo_da_instância
Fonte:
http://docs.aws.amazon.com/AWSEC2/latest/CommandLineReference/Api Reference-cmd-RunInstances.html
53
API Amazon EC2
Exemplo:
Criando uma nova instância (CLI Linux)
Exemplo:
ec2-run-instances ami-d0f89fb9 -n 1 -k administrador -g grupo1 --instance-type t1.micro
Obs.1: A ami-d0f89fb9 é correspondente ao SO Ubuntu
12.04 na zona de disponibilidade us-east-1 (Virgínia do Norte)
Obs.2: O tipo da instância t1.micro é correspondente ao
tamanho de instância micro (gratuito no período de um ano)
54
API Amazon S3
A API do Amazon Simple Storage Service é dividida entre a SOAP API e a REST API
Ambas as APIs permitem manipular os buckets e os objetos, mas o acesso é realizado de forma diferente entre essas interfaces
55
API Amazon S3
Detalhes da SOAP API:
SOAP é um protocolo para troca de informações estruturadas em
uma plataforma descentralizada e distribuída
Operações no serviço: Permite listar todos os buckets criados pelo
usuário
Operações no bucket: Permite criar, deletar, listar, obter e definir a
política de controle de acesso e obter e definir o status de registro de um bucket
Operações nos objetos: permite colocar objetos, copiá-los, pegá-los,
deletá-los, obter e definir a política de controle dos objetos em um
56
API Amazon S3
Detalhes da REST API:
REST é uma arquitetura de comunicação distribuída para sistemas hipermídia
Possui uma lista de cabeçalhos de pedido e resposta Operações no serviço: permite fazer uma listagem dos
buckets de propriedade do remetente autenticada no pedido
Operações no bucket:
Permite manipular os buckets, como criá-los, deletá-los,
manipular as políticas de acesso, as listas de controle de acesso, localização, ciclos de vida, etc.
Operações nos objetos: permite manipular os objetos um a um ou vários, simultaneamente.
Permite também adicionar objetos divididos em várias
57
58
API Amazon S3
Exemplo:
Listar todos os buckets
Este exemplo lista todos os buckets (depósitos) alocados na zona de disponibilidade escolhida
59
API Amazon S3
Autenticação: AmazonS3 s3 = new AmazonS3Client(new ClasspathPropertiesFileCredentialsProvider( )); Region usWest2 = Region.getRegion(Regions.US_WEST_2); s3.setRegion(usWest2); //Região de Oregon60
API Amazon S3
Pedido: System.out.println("Listing buckets"); for (Bucket bucket : s3.listBuckets()) { System.out.println(" " + bucket.getName()); }Fonte: Retirado dos exemplos do SDK para Java. SDK disponível em: http://aws.amazon.com/pt/sdkforjava/
61
Casos de Uso utilizando vários serviços
Amazon
Servidor de Aplicativos Web:
Arquiteturas de referência AWS:
Amazon EC2
Auto Scaling
Elastic Load Balancing
Amazon Route 53
Amazon CloudFront
63
Casos de Uso utilizando vários serviços
Amazon
Processamento Batch:
Arquitetura de Referência AWS:
Amazon EC2 Amazon RDS Amazon SimpleDB Amazon S3 Auto Scaling Amazon SQS
65
Casos de Uso utilizando vários serviços
Amazon
Serviço de conteúdo e mídia: Arquitetura de Referência AWS:
Amazon EC2
Amazon Route 53
Amazon CloudFront
67
68
AWS Marketplace
É possível adquirir soluções prontas no AWS
Marketplace
As soluções consistem de pacotes pré-configurados
de serviços Amazon:
Algumas soluções são gratuitas e outras são pagas
Para ambos os casos é necessário pagar as taxas dos serviços utilizados
70
AWS Marketplace
O AWS oferece também algumas soluções e
exemplos que funcionam com base nelas
Os exemplos vão desde hospedagem web à
mecanismos de busca
Os exemplos estão disponíveis em:
72
Leitura recomendada
Documentação oficial:
http://aws.amazon.com/documentation/
REESE, G. Cloud Application Architectures: Building Applications and
Infrastructure in the Cloud (Theory in Practice. 1º ed. O’Reilly Media, 2009.
RHOTON, J. Cloud Computing Explained: Implementation Handbook
73
Parte destas transparências foram elaboradas na Ação Computação em Nuvem, do Programa de Extensão Socialização de Software e Hardware Livre (Colméia) Colaboração: André Rover Campos, Glauber C. Batista e
Charles C. Miers
Este trabalho está licenciado sob uma licença Creative Commons
Atribuição-Compartilhamento pela mesma licença 2.0 http://creativecommons.org/licenses/by-sa/2.0/br/