Grupo de Pesquisa em Software e Hardware Livre Glauber Cassiano Batista Membro Colméia [email protected] 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: [email protected] 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/