Grupo de Pesquisa em Software e Hardware Livre Glauber Cassiano Batista Membro Colméia glauber@colmeia.udesc.br Joinville Minicurso Computação em Nuvem Prática: AWS
Roteiro Definições Virtualização Data center Computação em Nuvem Principais classificações: Modelos de Serviços Modelos de implantação Arquitetura de referência Soluções de nuvem de código aberto: OpenStack Soluções de nuvem gratuitas (até certo uso): Amazon Web Services 2
Amazon Web Services 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 4
5
EC2 Elastic Compute Cloud 6
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 7
8
Casos de Uso Startups Ciência e pesquisa Gerenciamento e balanceamento de carga Servidores 9
Criando uma nova instância No console de gerenciamento da Amazon Web Services (AWS), no primeiro grupo de serviços, clique em EC2 10
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 Launch Instance 11
Criando uma nova instância Surgirá no navegador um assistente de criação de instâncias Selecione a opção Classic Wizard e então clique no botão Continue 12
Criando uma nova instância 13
Criando uma nova instância Na tela seguinte, será apresentada uma lista de imagens dos sistemas operacionais disponíveis As imagens que estão marcadas com uma estrela amarela estão disponíveis no modo gratuito do serviço 14
Criando uma nova Instância 15
Criando uma nova instância Selecione uma imagem de sua escolha e defina a arquitetura Por fim, clique em Select 16
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 17
Criando uma nova instância 18
Criando uma nova instância É hora de configurar o particionamento dos discos Para isso basta clicar no botão Edit Se não for necessário, basta clicar em Continue 19
Criando uma nova instância 20
Criando uma nova instância É necessário criar um Key Pair para acessar a instância via SSH Basta escolher o nome e clicar em Create & Download you Key Pair Salve o arquivo gerado 21
Criando uma nova instância 22
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 Somente está liberado o acesso via SSH 23
Criando uma nova instância 24
Criando uma nova instância Na última tela do assistente é possível revisar a configuração Se estiver tudo certo, basta clicar em Launch 25
Criando uma nova instância 26
Acesso às Instâncias 27
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 Java que roda direto do navegador 28
Acesso via SSH Para se conectar é necessário usar a chave RSA que foi criada durante a criação da instância Se você estiver no Linux seu cliente SSH já deve estar instalado por padrão Para se conectar basta digitar: ssh -i <caminho_da_chave.pem> usuário@dns_publico_da_instancia 29
Acesso via SSH No acesso via navegador você somente precisará informar onde sua chave de acesso está localizada e rodar o aplicativo Veja a imagem a seguir 30
Acesso via SSH 31
Acesso via SSH Se tudo estiver certo, o aplicativo será aberto e você terá acesso ao sistema 32
S3 Simple Storage Service 33
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 (depósitos) 34
35
Casos de Uso Compartilhamento de mídias Distribuição de softwares/mídias Backup Armazenamento online Armazenamento de aplicativos 36
API Amazon Web Services 37
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 No 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 Linux 38
API Amazon EC2 39
API Amazon EC2 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 40
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, deletar, autorizar e revogar acesso dos grupos à certas instâncias 41
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 SecurityGroup Grupo de segurança da instância 42
API Amazon EC2 Para criar uma instância utilizando o SDK para Java é necessário autenticar o usuário Crie 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 43
API Amazon EC2 Depois disso é necessário definir o local do arquivo e então inicializar o cliente AWSCredentials credentials = new PropertiesCredentials( AwsConsoleApp.class.getResourceAsStream("AwsCredentials.properties" )); amazonec2client = new AmazonEC2Client(credentials); amazonec2client.setendpoint("ec2.us-west-2.amazonaws.com"); 44
API Amazon EC2 Pedido: RunInstancesRequest runinstancesrequest = new RunInstancesRequest(); runinstancesrequest.withimageid("ami-4b814f22").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.html 45
API Amazon EC2 Exemplo: Criando uma nova instância (CLI 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 46
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: a ami-d0f89fb9 é correspondente ao S.O. Ubuntu 12.04 na zona de disponibilidade us-east-1 (Virgínia do Norte) OBS2: o tipo da instância t1.micro é correspondente ao tamanho de instância micro (gratuito no período de um ano) 47
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 48
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 buckets 49
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 partes e então consolidá-los depois 50
API Amazon S3 51
API Amazon S3 Exemplo: Listar todos os buckets Este exemplo lista todos os buckets (depósitos) alocados na zona de disponibilidade escolhida 52
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 Oregon 53
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/ 54
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 Amazon S3 55
56
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 57
58
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 Amazon S3 59
60
AWS Marketplace 61
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 62
63
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: http://aws.amazon.com/pt/solutions/awssolutions/ 64
Perguntas? Site: www.colmeia.udesc.br e-mail: contato@colmeia.udesc.br Obrigado!
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/