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
Download

Capítulo de Exemplo