Ricardo R. Lecheta Novatec Copyright © 2014 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo, sem prévia autorização, por escrito, do autor e da Editora. Editor: Rubens Prates Revisão gramatical: Marta Almeida de Sá Editoração eletrônica: Carolina Kuwabata Capa: Aline Baggio ISBN: 978-85-7522-393-2 Histórico de impressões: Março/2014 Primeira edição Novatec Editora Ltda. Rua Luís Antônio dos Santos 110 02460-000 – São Paulo, SP – Brasil Tel.: +55 11 2959-6529 Fax: +55 11 2950-8869 E-mail: [email protected] Site: novatec.com.br Twitter: twitter.com/novateceditora Facebook: facebook.com/novatec LinkedIn: linkedin.com/in/novatec MP20140321 capítulo 1 Introdução 1.1 Amazon.com A Amazon.com é uma empresa multinacional focada em comércio eletrônico e atualmente domina o mercado de varejo online no mundo. Diferente da maioria das lojas de varejo, que precisam de um espaço físico para atender o consumidor, a Amazon.com atende exclusivamente pelo seu site, que é um gigante sistema de e-commerce. Para atender à grande demanda de compras, a Amazon.com possui enormes galpões, onde são empacotadas e distribuídas todas as compras, sem o contato com o consumidor final. Segundo pesquisas, a Amazon.com já emprega mais de 100 mil funcionários somente para atender e satisfazer a todas as partes deste processo de vendas. Esta loja de varejo online está rendendo à Amazon.com um faturamento imenso, e, apenas para ter ideia, recentemente, no segundo trimestre de 2013, a Amazon. com faturou 15,7 bilhões de dólares, e a tendência é de isso aumentar. No entanto o grande segredo da Amazon.com é o seu sistema de e-commerce, o qual é reconhecido pelo mundo inteiro pela confiabilidade, alta disponibilidade e segurança. Para chegar a esse patamar, a Amazon.com fez grandes investimentos em infraestrutura de TI, para expandir seus datacenters e atender a toda a demanda gerada pela sua loja online, que é acessada por milhões de pessoas ao redor do mundo. Isso trouxe, é claro, um know-how muito grande sobre tecnologia, infraestrutura de computadores e sistemas da informação. Para nossa sorte, a Amazon.com decidiu compartilhar com o mundo inteiro a sua infraestrutura de servidores, e qualquer empresa ou desenvolvedor, como eu e você, pode facilmente hospedar um site ou serviço nos servidores da Amazon. 23 24 AWS para Desenvolvedores Com esta ideia, nasceu em 2006 uma empresa dentro da Amazon.com, chamada Amazon Web Services (AWS), que oferece uma plataforma de serviços completa para desenvolver aplicações na nuvem. Neste livro, você aprenderá a criar e gerenciar aplicações na nuvem da AWS, com alta disponibilidade e escalabilidade, para atender milhões de usuários no mundo inteiro, caso seja necessário. Vamos estudar balanceadores de carga, escalonamento de servidores, gerenciamento e backup de banco de dados e diversos serviços oferecidos pela AWS para auxiliar a desenvolver aplicações na nuvem. 1.2 Computação em nuvem Computação em nuvem é o termo dado para a possibilidade de acessar seus arquivos – como músicas, documentos, vídeos, fotos, dentre outros – pela internet, usufruindo de recursos infinitos de armazenamento. Na nuvem não existe limites de espaço, a ideia é que, se você precisar armazenar alguma informação na nuvem, não importa o tamanho, você terá espaço disponível. Esse conceito é possível graças a computadores espalhados pelo mundo que, juntos e conectados, dão vida ao termo computação em nuvem. Porém o termo computação em nuvem é bem mais amplo do que o conceito de apenas salvar arquivos na internet; na verdade, significa ter acesso a qualquer recurso de TI sobre demanda pela internet. Neste contexto, a Amazon AWS fornece toda a sua infraestrutura de TI e serviços na nuvem para você usufruir. Para desenvolvedores, os serviços mais utilizados são o de hospedagem de sites, banco de dados, armazenamento etc., e todos esses recursos estão disponíveis no modelo “pay as you go”, ou seja, você paga somente pelo que usar. Computação em nuvem significa contratar e expandir serviços de TI sobre && demanda e pagar somente pelo que utilizar. Mas, antes de entrarmos no assunto específico da Amazon AWS, vamos navegar no tempo e lembrar como tudo isso começou. É um pouco difícil saber exatamente as origens do termo computação em nuvem, mas, segundo estudos, a computação em nuvem começou em 1960, com as pesquisas dos cientistas John McCarthy e Joseph Carl Robnett Licklide. Joseph Carl foi um dos desenvolvedores da ARPANET (Advanced Research Projects Agency Network), que tinha o objetivo de interligar as bases militares e os departamentos de pesquisa do governo americano. Nessa época, Joseph já imaginava Capítulo 1 ■ Introdução 25 uma rede de computadores interligados em que todos estariam conectados acessando programas e dados de qualquer lugar. Essa ideia posteriormente deu origem à internet, que naturalmente é um dos pilares da computação em nuvem. Já John McCarthy, outro pesquisador focado em inteligência artificial, também compartilhava a ideia de que as pessoas pudessem estar interligadas por meio de programas de computador, e ele acreditava que os recursos de computação deveriam ser utilizados como qualquer outro serviço, como água e luz, e o cliente devia pagar somente pelo que usar. Este conceito de pagar somente pelo que você usa, chamado de “pay as you go”, é um dos pilares da computação em nuvem. Para você entender, imagine a TV que fica na sala da sua casa. Caso a TV esteja ligada, você paga a luz, caso contrário, não. Na nuvem é igual, caso o servidor esteja ligado, você paga, mas caso ele esteja desligado, não existe cobrança. O mesmo conceito é valido para outros serviços que vamos estudar durante o livro. Mas somente em 1997 um professor acadêmico chamado Ramnath Chellappa apresentou sua tese intitulada “A New Computing Paradigm Ramnath Chellappa” e explicou na época os termos da computação em nuvem e como utilizar computadores espalhados pela internet. Com base nessas ideias, grandes empresas como Amazon, IBM, Google e Microsoft começaram os avanços na computação em nuvem, e hoje temos um mercado muito grande, que pode ser explorado por muitas empresas e profissionais. A Amazon.com faz parte da história, do presente e futuro da computação em nuvem, além de ser líder mundial de mercado neste segmento. 1.3 Amazon Web Services (AWS) Ao navegar pelo site oficial da Amazon AWS em português você vai se deparar com três frases bem interessantes. O site pode ser acessado neste link: http://aws.amazon.com/pt/. 1. Comece a utilizar gratuitamente. 2. Execute máquinas virtuais e aplicativos em minutos. 3. Pague somente pelo que utilizar. Essas três simples frases definem de forma superficial o que a Amazon AWS faz, mas já dá para entender o conceito. 26 AWS para Desenvolvedores A Amazon Web Services (AWS) fornece recursos de computação e serviços que você pode usar para criar aplicações dentro de minutos e pagando somente pelo que utilizar (pay as you go). Este modelo de pagamento é o grande chamariz da computação em nuvem, e para que você entenda vou contar uma breve história. Imagine que você precisa hospedar um site bem simples para viabilizar uma nova ideia genial. Para isso você vai contratar um plano de hospedagem pequeno e vai gastar 50 reais por mês. Então, depois de uns meses, o site felizmente está fazendo sucesso e você precisa mudar de plano. E agora? Você deve optar pelo plano de 150 reais ou 500 reais? Como saber qual plano possui as configurações adequadas para atender à demanda de requisições do site? Se você gastar apenas 150 reais por mês e errar, o servidor pode não dar conta de atender a todas as requisições e os usuários não vão ficar satisfeitos. E se você gastar 500 reais, pode ter gastado demais e perdido alguns trocados. Então como medir? Como saberei qual configuração de servidor é suficiente? Essa resposta é um grande enigma, e mesmo arquitetos de software experientes podem ter dificuldade, mas na maioria das vezes a resposta é a mesma: “Vamos optar pelo plano mais caro, pois assim não corremos risco.” É isso que grandes empresas acabam fazendo, e elas estão começando a perceber que gastam muito dinheiro. Se você quiser assistir a um vídeo legal sobre introdução à computação em nuvem na AWS, procure o vídeo O que é computação em nuvem com a AWS no canal do YouTube da AWS. Esta mesma história é contada de uma forma divertida no vídeo. uhttps://www.youtube.com/user/AmazonWebServices Outro cenário que mostra bem os benefícios da computação em nuvem na AWS é o termo elasticidade e escalabilidade automática. Elasticidade é o nome dado para algo que é elástico, ou seja, vai crescendo conforme a demanda e você paga somente por aquilo que usar. O exemplo clássico de elasticidade na AWS é a escalabilidade automática de servidores. Para exemplificar, imagine que você possui um site de vendas e ele tem horários de pico entre 10h00 e 18h00. Porém, depois desses horários, como de madrugada, praticamente ninguém acessa o site. Em um plano de hospedagem de sites tradicional, não importa se em determinado horário a quantidade de requisições Capítulo 1 ■ Introdução 27 é enorme e em outras quase não há requisições. No final de tudo isso, você vai precisar contratar um plano de hospedagem muito bom e caro, pois o que vale é a demanda que seu site oferece durante o dia. Mas na Amazon AWS podemos escalar os recursos conforme a demanda, e inclusive ajustar dinamicamente a quantidade de servidores que ficam atendendo às requisições. Por exemplo, podemos definir uma quantidade mínima de servidores que ficam disponíveis para atender às requisições, e durante os horários de pico, serviços da AWS permitem monitorar esse servidor, e caso ele esteja sobrecarregado, automaticamente novos servidores podem ser adicionados para atender às requisições. Por exemplo, podemos adicionar mais dez servidores em horários de pico, e logo depois, quando as requisições chegarem a um nível normal, automaticamente os servidores adicionais serão removidos. Essa é uma das vantagens da computação em nuvem, e você pode a qualquer momento expandir os seus recursos. Outro exemplo interessante que podemos citar sobre as vantagens da plataforma de computação em nuvem da Amazon AWS é o caso de sucesso do Magazine Luiza, que implantou toda a sua loja de e-commerce na nuvem. Procure no canal do YouTube da AWS o vídeo sobre o Magazine Luiza. Nesse vídeo, um dos diretores do Magazine Luiza explica as vantagens da Amazon AWS. Inclusive no vídeo é citado o exemplo da Black Friday, que é o dia mundial dos descontos, e por isso o acesso ao site cresce exponencialmente em um único dia. Mas com os recursos elásticos oferecidos pela plataforma de computação em nuvem da AWS, o site de e-commerce consegue operar com sucesso, se ajustando e escalando conforme a demanda. Desta forma, o objetivo deste livro é explicar como este tipo de aplicação pode ser criado na nuvem e como você pode usufruir esses recursos de elasticidade. Você vai aprender os principais conceitos e serviços da AWS, de forma que, depois que terminar a leitura, você consiga ter um bom entendimento da arquitetura e infraestrutura disponível na AWS para continuar seus estudos. A AWS possui uma grande quantidade de serviços, por isso não vamos conseguir abordar todos eles durante o livro, pois alguns são bem específicos, e, como eu disse, são muitos. Então nosso objetivo é apresentar os principais conceitos em uma metodologia passo a passo. Para você ter uma ideia do que vamos estudar, a figura 1.1 mostra uma arquitetura web sugerida para uma aplicação com alta disponibilidade, com monitoramento de recursos e escalabilidade automática conforme a demanda, e o objetivo do livro é explicar como isso pode ser feito. 28 AWS para Desenvolvedores Figura 1.1 – Arquitetura de uma aplicação web de alta disponibilidade e escalabilidade. 1.4 SAAS, IAAS, PAAS Ao começar a estudar computação em nuvem, é comum você se deparar com algumas siglas, como: SAAS, IAAS e PAAS, portanto precisamos entendê-las. Explicando de uma forma bem simples, SAAS (Software as a Service) é algo com o qual já estamos acostumados e é um software que você pode utilizar na nuvem como serviço. Um exemplo clássico disso é o Gmail ou Google Docs, em que você simplesmente faz o login e utiliza esse serviço na nuvem. Se traduzirmos o termo Software as a Service, podemos dizer que é oferecer Software como um Serviço. De certa forma, esse software como serviço pode ser entendido como o seu site ou sua aplicação na web, que seu usuário utiliza. Outra sigla muito comum é o IAAS (Infrastructure as a Service), e novamente se traduzirmos significa Oferecer Infraestrutura como Serviço. Isso acontece quando empresas fornecem a sua infraestrutura para você hospedar um computador. Neste modelo de negócio, você não precisa se preocupar com o computador físico, questões de hardware, toda a parte elétrica, cabos, energia, backup etc. Tudo isso faz parte da infraestrutura, e neste caso você pode usufruir de toda a infraestrutura de grandes empresas, como é o caso da Amazon AWS. Um dos serviços mais conhecidos da Amazon AWS é o EC2 (Amazon Elastic Compute Cloud), que basicamente permite criar instâncias de servidores virtuais dentro da infraestrutura e de datacenters da AWS. Você pode usar esses computadores como você quiser. Capítulo 1 ■ Introdução 29 E por último temos o PAAS (Platform as a Service), que significa oferecer uma plataforma como serviço. Este é o caso do Amazon Beanstalk, que é um serviço que facilita a instalação e manutenção das aplicações na nuvem e oferece um ambiente para você controlar suas aplicações. Neste conceito, você não tem acesso total ao servidor, mas pode utilizar diversos serviços para gerenciar o servidor e as aplicações. Por exemplo, é possível instalar uma aplicação PHP, Ruby ou Java na nuvem de uma forma simples em minutos, sem a necessidade de configurar o servidor, pois basta escolher qual é a plataforma de desenvolvimento. Basicamente você tem duas opções: • A primeira opção é criar uma instância de um servidor dentro da infraestrutura da Amazon AWS e ter o controle total. Neste caso, você pode instalar os softwares necessários para executar as aplicações, como servidores web e servidores de aplicação, banco de dados etc. Assim, quem está no comando do servidor é você, pois apenas está sendo utilizada a infraestrutura como serviço (IAAS). • A segunda opção é utilizar um ambiente controlado que já disponibiliza este servidor web e de aplicação para você, assim como o banco de dados. Desta forma você não precisa ter muito know-how dessa parte de instalação, configuração e manutenção e pode simplesmente usufruir de uma plataforma disponibilizada como serviço (PAAS). Com esta breve explicação, podemos dizer que a Amazon AWS atua de todas estas formas. • Fornece softwares como serviço (SAAS), e um bom exemplo é o RDS (Relational Database Service), que é um banco de dados na nuvem. Ou seja, é um software de banco de dados que você pode utilizar como serviço. • É um provedor de infraestrutura IAAS (Infrastructure as a Service), pois fornece sua infraestrutura para você executar servidores virtuais na nuvem de forma escalável e segura. Então por que se preocupar com memória, capacidade de processamento e armazenamento, se isso pode ser infinito? • A Amazon AWS também oferece todo o seu conjunto de plataforma e serviços, atuando também como PAAS (Platform as a Service). Como explicado anteriormente, essa plataforma como serviço pode ser entendida como um grande ambiente que permite executar aplicações, facilitando o gerenciamento e a manutenção. 30 AWS para Desenvolvedores Para finalizar este tópico, vale lembrar que a AWS é líder mundial neste segmento, pois oferece na nuvem uma plataforma de infraestrutura altamente confiável, escalável e de baixo custo. Para você ter uma ideia, o Gartner publicou em 2013 o Quadrante Mágico para infraestrutura em nuvem como serviço (IAAS – Infrastructure as a Service). Neste quadrante mágico, a Amazon AWS é líder absoluta no mercado, desbancando empresas renomadas, como mostra o quadrante na figura 1.2. Figura 1.2 – Quadrante mágico sobre IAAS publicado pelo Gartner. Caso você queira ler o artigo completo, procure no Google pelo título Gartner Magic Quadrant for Cloud Infrastructure as a Service. Na época em que este livro estava sendo escrito, o artigo estava neste link. uhttp://www.gartner.com/technology/reprints.do?id=1-1IMDMZ5&ct=130819&st=sb No site da Amazon AWS em português inclusive existem links para outros estudos e relatórios sobre serviços de computação em nuvem feitos por várias empresas. uhttp://aws.amazon.com/pt/resources/analyst-reports/ Capítulo 1 ■ Introdução 31 1.5 Região, zonas de disponibilidade e pontos de presença Para criar aplicações na plataforma de computação em nuvem da AWS, temos que entender o conceito de regiões, zonas de disponibilidade e pontos de presença, conforme explicado a seguir. Região (Region) Uma região, como o nome já diz, representa uma determinada região geográfica do mundo. Cada região possui dois ou mais datacenters isolados, chamados de zonas de disponibilidade. Na época em que este livro estava sendo escrito, existiam nove regiões espalhadas pelo mundo, que são: Leste dos EUA (Norte da Virgínia), Oeste dos EUA (Oregon), Oeste dos EUA (Norte da Califórnia), UE (Irlanda), Ásia-Pacífico (Singapura), Ásia-Pacífico (Tóquio), Ásia-Pacífico (Sydney), América do Sul (São Paulo). A nona região é a AWS GovCloud, dedicada a agências do governo americano. Zona de Disponibilidade (Availability Zone) Uma zona de disponibilidade é um datacenter totalmente isolado que fica dentro de uma região. Cada zona de disponibilidade é projetada para ser um datacenter independente, mas com conectividade rápida com todas as outras zonas de disponibilidade da mesma região. Quando você armazenar um arquivo na nuvem ou criar um servidor, é necessário escolher a região e a zona de disponibilidade em que este recurso deve ser criado. Zonas de disponibilidade também podem ser utilizadas para aumentar a disponibilidade da aplicação, pois é possível ter dois servidores atuando na mesma região, mas em zonas de disponibilidade distintas. Isso significa que, em casos de desastre em uma zona de disponibilidade, o servidor que está na outra zona de disponibilidade permanece operante, garantindo o bom funcionamento da aplicação. Este é um conceito importante na arquitetura de aplicações com alta disponibilidade. Pontos de Presença (Edge Locations) Pontos de presença são servidores espalhados dentro de uma região especializados em entregar conteúdo com alta velocidade e baixa latência. O conteúdo pode ser arquivos texto, PDF, imagens, vídeos por streaming etc. Vamos estudar este conceito no capítulo sobre CloudFront. 32 AWS para Desenvolvedores Estes três conceitos – Região, Zona de Disponibilidade e Pontos de Presença – são os pilares da infraestrutura global da AWS. Se você quiser conhecer mais detalhes, visite o seguinte site: uhttp://aws.amazon.com/pt/about-aws/globalinfrastructure/ A figura 1.3 mostra como as regiões e os pontos de presença estão espalhados mundialmente. Figura 1.3 – Regiões da AWS. Atualmente na América do Sul existe apenas uma região, que é São Paulo. Nesta região existem duas zonas de disponibilidade, ou seja, dois datacenters distintos. Este conceito de regiões e zonas de disponibilidade permite alcançar dois grandes objetivos: 1. Esta infraestrutura permite escalar a aplicação em abrangência mundial, pois a mesma aplicação pode ser instalada em várias regiões. Por exemplo, você pode fazer com que os usuários da Austrália e de suas proximidades usem os servidores instalados na região de Sydney. Para os usuários da América do Sul, a região de São Paulo seria utilizada. Essa infraestrutura permite disponibilizar um acesso rápido para todos os usuários, mesmo em abrangência mundial, se preciso. Capítulo 1 ■ Introdução 33 2. Garantir a disponibilidade e o bom funcionamento do site em casos de desastre. Por exemplo, se sua aplicação está executando na região de São Paulo, você pode ter servidores executando nas duas zonas de disponibilidade, e caso uma falhar, a outra zona de disponibilidade continua atendendo às requisições normalmente. Na verdade, é raro a zona de disponibilidade falhar, mas de qualquer forma estamos falando de uma arquitetura de sistemas de missão crítica que simplesmente não podem parar. No início, os conceitos de região, zonas de disponibilidade e pontos de presença podem ser confusos, mas logo você se acostumará com esses termos. Zona de disponibilidade significa Availability Zone no inglês, e por isso é && frequentemente utilizada a sigla AZ para simplificar a palavra. Um termo frequente na AWS é a palavra implantação Multi-AZ (multi availability zone), que se refere à implantação de uma solução em várias zonas de disponibilidade para aumentar a disponibilidade. 1.6 Serviços, APIs e SDKS Um dos conceitos interessantes da AWS é que tudo pode ser administrado pelas páginas de console de gerenciamentos na internet, ou pelos serviços expostos como web services que podem ser chamados pela API. Por exemplo, podemos acessar pela internet a página do console de gerenciamento gráfico para adicionar um arquivo na nuvem ou até mesmo para criar um servidor. Mas isso também pode ser acessado utilizando a API e SDKs para várias linguagens, como Java, .NET, Ruby, Python etc. Este conceito é muito interessante e permite aos desenvolvedores automatizar várias tarefas. Por exemplo, podemos fazer o backup do servidor ou banco de dados utilizando o console de gerenciamento na web, mas também podemos criar scripts que utilizam a API para deixar esta tarefa ainda mais automatizada. Para traçar um comparativo, podemos dizer que um dos serviços mais utilizados da Amazon é o S3 (Simple Storage Service), que permite armazenar arquivos de forma simples na internet. O próprio Dropbox (dropbox.com) é construído em cima da nuvem da AWS e utiliza o serviço do S3. Podemos dizer que o console de gerenciamento do S3 é como a interface de administração do Dropbox e que permite a você enviar e fazer download de arquivos de forma visual. Mas também existe uma API caso você queira fazer tudo isso por programação. 34 AWS para Desenvolvedores Durante os exercícios do livro, vamos alternar entre utilizar o console de gerenciamento na web para criar os serviços e utilizar a API quando for necessário mostrar algo com programação. Neste livro, vamos adotar a linguagem Java para demonstrar algumas APIs e utilizar o AWS Toolkit para Eclipse para auxiliar no desenvolvimento. Mas lembre-se de que a AWS disponibiliza o SDK em várias linguagens de programação. 1.7 Definição de preço da AWS No próximo capítulo, vamos começar os estudos sobre Amazon AWS, mas vale lembrar que os serviços da AWS são pagos e que precisaremos de um cartão de crédito internacional para fazer o cadastro. Felizmente a AWS possui um plano de uso gratuito que pode ser usufruído por novos usuários dentro de um período de 12 meses. Durante a leitura deste livro, vamos explicar os custos de cada serviço, mas você sempre deve conferi-los na página oficial que vamos referenciar. Com o nível de uso gratuito, vamos conseguir estudar os exemplos do livro de forma gratuita ou gastando muito pouco, pois alguns serviços são pagos e não entram no plano de gratuidade, como o Route 53 para registro de DNS. Nestes casos, você terá a opção de utilizar o serviço ou apenas ler o livro e acompanhar os exemplos. É importante você entender que na AWS você paga somente pelo que você usa, aliás, isso é o que significa computação em nuvem. Por exemplo, o livro vai ensinar como criar instâncias de servidores no EC2 e você terá 750 horas por mês de uso gratuito. Caso você utilize um número maior de servidores para aprendizado e ultrapasse este limite de horas, naturalmente haverá custos. E isso vale para todos os outros serviços da AWS. Durante o livro, vou tentar orientar e alertar sobre esses custos, para que você fique sempre no plano de gratuidade, se possível, ou gastando muito pouco. É importante que você, ao seguir os exemplos do livro, exclua os recursos da nuvem quando lhe for sugerido. No caso de criar servidores no EC2, é importante configurar corretamente o firewall, conceito conhecido como grupo de segurança, pois, uma vez que o servidor está na nuvem, ele pode ser alvo de ataques indesejados. Vamos ensinar como utilizar os grupos de segurança da AWS para proteger os servidores, mas Capítulo 1 ■ Introdução 35 é claro que para grandes aplicações é recomendado que todo o processo de implantação, gerenciamento e segurança seja acompanhado por profissionais de TI com experiência. Este livro visa explicar como usar a plataforma de computação em nuvem da AWS, mas é sua responsabilidade utilizar bem os serviços e também ler a definição de preços da documentação oficial sempre que lhe for sugerido. O autor não se responsabiliza por nenhum custo gerado pela leitura deste livro, pois tudo o que está explicado nesta obra tem o objetivo de servir como material didático. Para obter mais detalhes sobre a definição de preços da AWS, visite o site oficial. uhttp://aws.amazon.com/pt/pricing/ Depois de fazer o cadastro na AWS, acostume-se a olhar a página do console de controle de faturamento, que mostra o valor acumulado que você deve pagar no mês. Mais detalhes sobre custos são dados no capítulo 23. uhttp://console.aws.amazon.com/billing/home/ 1.8 Nível de uso gratuito Para você começar a utilizar a plataforma de computação em nuvem da AWS, existe o nível de uso gratuito, que pode ser usado para vários serviços da AWS, como criar servidores, utilizar bancos de dados, armazenamento de arquivos etc. O nível de uso gratuito está disponível somente para novos clientes da AWS, && por 12 meses, a partir da data de cadastro na AWS. Quando o uso gratuito expirar ou se o uso do aplicativo ultrapassar os níveis de uso gratuito, você simplesmente pagará taxas de serviço padrão conforme o uso. Os benefícios com o nível de uso gratuito são enormes, e a lista a seguir exibe os principais benefícios que podemos usar durante a leitura deste livro. Elastic Compute Cloud (EC2) • 750 horas do Amazon EC2 com Linux/Unix ou RHEL. Válido para uso de microinstâncias (613 MB de memória e suporte à plataforma de 32 e 64 bits). • 750 horas de Microsoft Windows Server no Amazon EC2. Válido para uso de microinstâncias (613 MB de memória e suporte à plataforma de 32 e 64 bits). • 750 horas de um ELB (Elastic Load Balancer), mais 15 GB de processamento de dados. 36 AWS para Desenvolvedores • 30 GB de Volumes de armazenamento ELB (Elastic Block Storage) que podem ser conectados a instâncias do Amazon EC2 em execução. Mais 2 milhões de operações de Entrada e Saída (E/S) e 1 GB de armazenamento de snapshots. Simple Storage Service (S3) • 5 GB de armazenamento padrão do S3 (Simple Storage Service), 20.000 solicitações GET e 2.000 solicitações PUT. Relational Database Service (RDS) • 750 horas de microinstâncias de banco de dados Single-AZ para execução de MySQL, PostgreSQL, Oracle BYOL ou SQL Server (executando SQL Server Express Edition). • 20 GB de armazenamento de banco de dados. • 10 milhões de operações de E/S. • 20 GB de armazenamento de backup para seus backups de banco de dados automatizados e quaisquer snapshots de banco de dados iniciados por usuário. Amazon ElastiCache • 750 horas do ElastiCache para armazenar dados em cache na nuvem sem limites. Simple Queue Service (SQS) e Simple Notification Service (SNS) • 1.000.000 solicitações do SQS. • 1.000.000 solicitações, 100.000 notificações de HTTP e 1.000 notificações de e-mail do SNS. • Ambos estes benefícios existem inclusive para clientes antigos, que operam fora do nível de uso gratuito. CloudWatch • 10 métricas do Cloudwatch, 10 alarmes e 1.000.000 solicitações de API. • Estes benefícios existem inclusive para clientes antigos, que operam fora do nível de uso gratuito. Capítulo 1 ■ Introdução 37 Transferência de dados • 15 GB de largura de banda agregada para fora em todos os serviços da AWS. • Transferência de dados é um conceito importante na definição de custo dos serviços da AWS. Por exemplo, se você cria um servidor EC2 na nuvem e decide chamar outro serviço como o RDS (banco de dados na nuvem), é necessário fazer a comunicação entre o servidor EC2 e o banco de dados RDS. Para esta comunicação naturalmente é feito o tráfego de informações na rede. Esse tráfego, na maioria das vezes de um serviço para outro dentro da rede da AWS, é gratuito, mas para fora desta rede não. Talvez os nomes e as siglas desta lista sejam confusos para você no início, mas, durante a leitura do livro, vamos estudar estes serviços, e aos poucos os conceitos vão ficar mais claros. De qualquer forma, esta lista pode servir para sua consulta futura. Para obter mais detalhes sobre o plano de uso gratuito da AWS e os termos da oferta, acesse o site oficial no seguinte endereço. uhttp://aws.amazon.com/pt/free/ 1.9 Cadastro Para começar a brincar com os serviços da AWS é preciso fazer o cadastro sem custo. Basta acessar a página do console de gerenciamento dos serviços no seguinte endereço. uhttp://console.aws.amazon.com Para acessar a página é preciso fazer o login ou criar uma nova conta, conforme a figura 1.4. Não vou explicar as telas de cadastro, pois os formulários são simples, então vamos apenas focar nos pontos principais. Você precisará inserir um e-mail válido para contato e um número de telefone com o 55 (Brasil) e o DDD da sua cidade. Estas informações são utilizadas para confirmar que a pessoa que está fazendo o cadastro é você. A Amazon vai te ligar neste telefone, e você deve apenas digitar no telefone um número que você vai receber, conhecido como PIN. Fique tranquilo, pois não é preciso falar inglês no telefone e o processo é simples. 38 AWS para Desenvolvedores Figura 1.4 – Página de login ou cadastro da AWS. Para finalizar o cadastro, você precisa informar um cartão de crédito internacional, que é utilizado para efetuar as cobranças dos serviços utilizados na AWS. Infelizmente não é possível fazer o cadastro sem um cartão de crédito internacional. 1.10 Links úteis No próximo capítulo, vamos começar os estudos sobre AWS, mas desde já seguem alguns links que serão úteis para consulta. • Portal da AWS Brasil http://aws.amazon.com • Perguntas frequentes sobre AWS (FAQ) http://aws.amazon.com/pt/faqs/ • Documentação para desenvolvedores https://aws.amazon.com/pt/documentation/ • AWSHub: Portal da comunidade AWS com artigos, tutorias, webinars e fóruns de ajuda. http://awshub.com.br/ Capítulo 1 ■ Introdução 39 • Console de administração da AWS https://console.aws.amazon.com/console/home/ • Console de controle de faturamento: Acompanhe o custo mensal atualizado da sua conta. https://console.aws.amazon.com/billing/ • Página do livro: Visite a página do livro para obter o código-fonte dos exemplos e mais detalhes sobre esta e outras obras. http://www.livroaws.com.br • Facebook do autor: Acompanhe notícias sobre meus livros, novidades e novos lançamentos. http://facebook.com/ricardolecheta