Upload
yure-pereira
View
212
Download
0
Embed Size (px)
DESCRIPTION
Su Mario 9788575224694
Citation preview
7/21/2019 Su Mario 9788575224694
http://slidepdf.com/reader/full/su-mario-9788575224694 1/10
Novatec
Andreas Wittig
Michael Wittig
7/21/2019 Su Mario 9788575224694
http://slidepdf.com/reader/full/su-mario-9788575224694 2/10
Original English language edition published by Manning Publications Co., Copyright © 2015 byManning Publications. Portuguese-language edition for Brazil copyright © 2015 by Novatec Editora.All rights reserved.
Edição original em Inglês publicada pela Manning Publications Co., Copyright © 2015 pelaManning Publications. Edição em Português para o Brasil copyright © 2015 pela Novatec Editora.
Todos os direitos reservados.© Novatec Editora Ltda. 2015.
Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reproduçãodesta obra, mesmo parcial, por qualquer processo, sem prévia autorização, por escrito, do autor e daEditora.
Editor: Rubens Prates IG20151203Assistente editorial: Priscila A. YoshimatsuTradução: Aldir José Coelho Corrêa da SilvaRevisão gramatical: Smirna CavalheiroEditoração eletrônica: Carolina Kuwabata
ISBN: 978-85-7522-469-4
Histórico de impressões:
Janeiro/2016 Primeira edição
Novatec Editora Ltda.Rua Luís Antônio dos Santos 11002460-000 – São Paulo, SP – BrasilTel.: +55 11 2959-6529E-mail: [email protected]
Site: novatec.com.brTwitter: twitter.com/novateceditoraFacebook: facebook.com/novatecLinkedIn: linkedin.com/in/novatec
7/21/2019 Su Mario 9788575224694
http://slidepdf.com/reader/full/su-mario-9788575224694 3/10
5
Sumário
Apresentação................................................................................................................13
Prefácio ....................................................................................................................... 15
Agradecimentos ...........................................................................................................17
Sobre o livro .................................................................................................................19
Sobre os autores .......................................................................................................... 22
Sobre a ilustração da capa ............................................................................................ 23
Parte I ■ Introdução ................................................................................ 24
Capítulo 1 ■ O que é a Amazon Web Services? ......................................................................................25
1.1 O que é computação em nuvem? ............................................................................. 26
1.2 O que você pode fazer com a AWS? ......................................................................... 281.2.1 Hospedando uma loja web .................................................................................28
1.2.2 Executando uma aplicação Java EE em sua rede privada......................................30
1.2.3 Atendendo requisitos legais e empresariais de arquivamento de dados ................. 31
1.2.4 Implementando uma arquitetura de sistema tolerante a falhas ............................. 321.3 Como você pode se beneficiar do uso da AWS ......................................................... 33
1.3.1 Plataforma inovadora e em rápido crescimento ....................................................33
1.3.2 Os serviços resolvem problemas comuns ............................................................34
1.3.3 Beneficiando-se da automação ............................................................................34
1.3.4 Capacidade flexível (escalabilidade) ....................................................................34
1.3.5 Construa protegendo-se contra falhas (confiabilidade) ........................................ 35
1.3.6 Reduzindo o tempo de distribuição para o mercado ............................................ 35
1.3.7 Beneficiando-se de economias de escala ..............................................................36
1.3.8 Abrangência mundial .........................................................................................36
1.3.9 Parceira profissional ...........................................................................................361.4 Quanto custa? ........................................................................................................ 37
1.4.1 Nível gratuito ..................................................................................................... 37
1.4.2 Exemplo de cobrança .........................................................................................381.4.3 Oportunidades do modelo pay-per-use ...............................................................40
7/21/2019 Su Mario 9788575224694
http://slidepdf.com/reader/full/su-mario-9788575224694 4/10
Amazon Web Services em Ação6
1.5 Comparando alternativas ........................................................................................ 401.6 Explorando os serviços AWS ................................................................................... 421.7 Interagindo com a AWS .......................................................................................... 45
1.7.1 Console de Gerenciamento .................................................................................46
1.7.2 Interface de linha de comando ............................................................................ 471.7.3 SDKs ................................................................................................................. 47
1.7.4 Blueprints ..........................................................................................................481.8 Criando uma conta AWS ........................................................................................ 49
1.8.1 Inscrevendo-se ...................................................................................................50
1.8.2 Entrando ...........................................................................................................54
1.8.3 Criando um par de chaves ..................................................................................56
1.8.4 Criando um alarme de cobrança.........................................................................601.9 Resumo..................................................................................................................60
Capítulo 2 ■ Um exemplo simples: o WordPress em cinco minutos ........................................................61
2.1 Criando sua infraestrutura ...................................................................................... 622.2 Examinando sua infraestrutura .............................................................................. 68
2.2.1 Grupos de recursos ............................................................................................68
2.2.2 Servidores web ..................................................................................................69
2.2.3 Balanceador de carga ......................................................................................... 71
2.2.4 Banco de dados MySQL .....................................................................................73
2.3 Quanto custa? .........................................................................................................742.4 Excluindo sua infraestrutura .................................................................................. 762.5 Resumo ................................................................................................................. 77
Parte II ■ Construindo uma infraestrutura virtual com servidores e rede... 78
Capítulo 3 ■ Usando servidores virtuais: EC2 ........................................................................................79
3.1 Examinando um servidor virtual ............................................................................. 80
3.1.1 Iniciando um servidor virtual .............................................................................803.1.2 Conectando-se com um servidor vir tual ............................................................. 91
3.1.3 Instalando e executando softwares manualmente ................................................943.2 Monitorando e depurando um servidor virtual ....................................................... 95
3.2.1 Exibindo logs a partir de um servidor virtual ......................................................96
3.2.2 Monitorando a carga de um servidor virtual .......................................................97
3.3 Encerrando um servidor virtual .............................................................................. 983.4 Alterando o tamanho de um servidor virtual ........................................................... 993.5 Iniciando um servidor virtual em outro datacenter .................................................103
3.6 Alocando um endereço IP público ..........................................................................106
7/21/2019 Su Mario 9788575224694
http://slidepdf.com/reader/full/su-mario-9788575224694 5/10
7Sumário
3.7 Adicionando outra interface de rede a um servidor virtual ......................................1093.8 Otimizando os custos dos servidores virtuais ......................................................... 113
3.8.1 Reserve servidores virtuais.................................................................................113
3.8.2 Dando lances por servidores virtuais não usados ............................................... 114
3.9 Resumo ................................................................................................................ 119
Capítulo 4 ■ Programando sua infraestrutura: a linha de comando, os SDKs e o CloudFormation .........121
4.1 Infraestrutura como código ....................................................................................123
4.1.1 Automação e o movimento DevOps .................................................................. 123
4.1.2 Inventando uma linguagem de infraestrutura: o JIML ....................................... 1244.2 Usando a interface de linha de comando ................................................................128
4.2.1 Instalando a CLI .............................................................................................. 129
4.2.2 Configurando a CLI ........................................................................................ 130
4.2.3 Usando a CLI .................................................................................................. 1354.3 Programando com o SDK ...................................................................................... 141
4.3.1 Controlando servidores virtuais com o SDK: nodecc ......................................... 142
4.3.2 Como o nodecc cria um servidor...................................................................... 143
4.3.3 Como o nodecc lista servidores e exibe seus detalhes .........................................145
4.3.4 Como o nodecc encerra um servidor ................................................................ 1464.4 Usando um blueprint para iniciar um servidor virtual ............................................ 147
4.4.1 Anatomia de um template CloudFormation ...................................................... 148
4.4.2 Criando seu primeiro template ........................................................................ 1544.5 Resumo ................................................................................................................ 161
Capítulo 5 ■ Automatizando a implantação: CloudFormation, Elastic Beanstalk e OpsWorks ...............163
5.1 Implantando aplicações em um ambiente de nuvem flexível .....................................1655.2 Executando um script na inicialização do servidor usando o CloudFormation.........165
5.2.1 Usando dados de usuário para executar um script na inicialização do servidor ...166
5.2.2 Implantando o OpenSwan como servidor VPN em um servidor virtual .............166
5.2.3 Iniciando a partir do zero em vez de atualizar ................................................... 1735.3 Implantando um aplicativo web simples com o Elastic Beanstalk ............................ 174
5.3.1 Componentes do Elastic Beanstalk .....................................................................174
5.3.2 Usando o Elastic Beanstalk para implantar o Eherpad, um aplicativo Node.js .....1755.4 Implantando um aplicativo multicamada com o OpsWorks .....................................180
5.4.1 Componentes do OpsWorks ..............................................................................181
5.4.2 Usando o OpsWorks para implantar um aplicativo de chat do IRC .................... 1835.5 Comparando ferramentas de desenvolvimento .......................................................193
5.5.1 Classificando as ferramentas de implantação ..................................................... 193
5.5.2 Comparando os serviços de implantação .......................................................... 1945.6 Resumo.................................................................................................................195
7/21/2019 Su Mario 9788575224694
http://slidepdf.com/reader/full/su-mario-9788575224694 6/10
Amazon Web Services em Ação8
Capítulo 6 ■ Protegendo seu sistema: IAM, grupos de segurança e VPC ...............................................196
6.1 Quem é responsável pela segurança? .......................................................................1986.2 Mantendo seu software atualizado .........................................................................198
6.2.1 Procurando atualizações de segurança .............................................................. 199
6.2.2 Instalando atualizações de segurança na inicialização do servidor .....................2006.2.3 Instalando atualizações de segurança em servidores em execução ...................... 202
6.3 Protegendo sua conta ........................................................................................... 203
6.3.1 Protegendo o usuário root de sua conta AWS .....................................................204
6.3.2 Serviço Identity and Access Management .......................................................... 205
6.3.3 Políticas de autorização ....................................................................................206
6.3.4 Usuários na autenticação e grupos para organizar usuários ............................... 209
6.3.5 Funções para autenticação de recursos AWS .......................................................2106.4 Controlando o tráfego de rede enviado de e para seu servidor virtual....................... 213
6.4.1 Controlando tráfego enviado para servidores virtuais com grupos de segurança ..214
6.4.2 Permitindo a entrada de tráfego ICMP .............................................................. 216
6.4.3 Permitindo tráfego SSH .....................................................................................218
6.4.4 Permitindo a entrada de tráfego SSH proveniente de um endereço IP de origem ...218
6.4.5 Permitindo tráfego SSH proveniente de um grupo de segurança ......................... 220
6.4.6 Encaminhamento de agente com o PuTTY ....................................................... 2236.5 Criando uma rede privada na nuvem: a rede virtual privada (VPC, virtual private
cloud) ...................................................................................................................224
6.5.1 Criando a VPC e o gateway de internet (IGW, Internet gateway) .........................2266.5.2 Definindo a sub-rede pública do bastion host ................................................... 227
6.5.3 Adicionando a sub-rede privada do servidor web Apache ...................................231
6.5.4 Iniciando servidores nas sub-redes .................................................................... 232
6.5.5 Acessando a internet a partir de sub-redes privadas via servidor NAT ................. 2336.6 Resumo ................................................................................................................236
Parte III ■ Armazenando dados na nuvem ..............................................237
Capítulo 7 ■ Armazenando seus objetos: S3 e Glacier .........................................................................239
7.1 Conceito de um armazenamento de objetos ............................................................2397.2 Amazon S3 ............................................................................................................2407.3 Fazendo o backup de seus dados ............................................................................2427.4 Arquivando objetos para otimizar custos ............................................................... 244
7.4.1 Criando um bucket S3 para ser usado com o Glacier.......................................... 245
7.4.2 Adicionando uma regra de ciclo de vida a um bucket ........................................ 245
7.4.3 Fazendo testes com o Glacier e com sua regra de ciclo de vida ............................ 248
7/21/2019 Su Mario 9788575224694
http://slidepdf.com/reader/full/su-mario-9788575224694 7/10
9Sumário
7.5 Armazenando objetos por meio de programas ........................................................250
7.5.1 Configurando um bucket S3 ..............................................................................251
7.5.2 Instalando um aplicativo web que usa o S3 ........................................................251
7.5.3 Tendo acesso ao código: S3 com SDK ................................................................ 252
7.6 Usando o S3 para a hospedagem estática na Web ....................................................2557.6.1 Criando um bucket e fazendo o upload de um site estático .................................256
7.6.2 Configurando um bucket para a hospedagem estática na web ............................ 257
7.6.3 Acessando um site hospedado no S3 ................................................................. 2587.7 Funcionamento interno do armazenamento de objetos............................................259
7.7.1 Assegurando a consistência dos dados ............................................................... 259
7.7.2 Selecionando as chaves certas ...........................................................................260
7.8 Resumo .................................................................................................................261
Capítulo 8 ■ Armazenando seus dados em unidades de disco rígido: EBS e armazenamento de instância .263
8.1 Armazenamento anexado à rede ............................................................................ 264
8.1.1 Criando um volume EBS e anexando-o ao seu servidor ......................................265
8.1.2 Usando o Elastic Block Store ............................................................................266
8.1.3 Ajustando o desempenho ................................................................................. 269
8.1.4 Fazendo o backup de seus dados........................................................................2718.2 Armazenamentos de instância ...............................................................................273
8.2.1 Usando um armazenamento de instância ..........................................................277
8.2.2 Testando o desempenho .................................................................................. 2788.2.3 Fazendo o backup de seus dados ...................................................................... 279
8.3 Comparando soluções de armazenamento de nível de bloco ...................................2798.4 Hospedando um sistema de arquivos compartilhado suportado por um armazenamen-
to de instância e pelo EBS ..................................................................................... 280
8.4.1 Grupos de segurança do NFS ........................................................................... 282
8.4.2 Servidor e volume NFS ....................................................................................284
8.4.3 Script de instalação e configuração do servidor NFS ......................................... 285
8.4.4 Clientes NFS ...................................................................................................289
8.4.5 Compartilhando arquivos via NFS ...................................................................2898.5 Resumo ............................................................................................................... 290
Capítulo 9 ■ Usando um serviço de banco de dados relacional: RDS ....................................................291
9.1 Iniciando um banco de dados MySQL ................................................................... 294
9.1.1 Iniciando uma plataforma WordPress com um banco de dados Amazon RDS ...... 294
9.1.2 Examinando uma instância de banco de dados RDS com um mecanismo MySQL 299
9.1.3 Preço do Amazon RDS...................................................................................... 303
9.2 Importando dados para um banco de dados .......................................................... 303
7/21/2019 Su Mario 9788575224694
http://slidepdf.com/reader/full/su-mario-9788575224694 8/10
Amazon Web Services em Ação10
9.3 Fazendo o backup e restaurando seu banco de dados ............................................. 306
9.3.1 Configurando snapshots automatizados ............................................................306
9.3.2 Criando snapshots manualmente .....................................................................308
9.3.3 Restaurando um banco de dados ......................................................................309
9.3.4 Copiando um banco de dados em outra região ...................................................3109.3.5 Calculando o custo dos snapshots ..................................................................... 311
9.4 Controlando o acesso a um banco de dados ............................................................ 312
9.4.1 Controlando o acesso à configuração de um banco de dados RDS .......................313
9.4.2 Controlando o acesso de rede a um banco de dados RDS ...................................314
9.4.3 Controlando o acesso aos dados ........................................................................3159.5 Usando um banco de dados altamente disponível ................................................... 316
9.5.1 Ativando a instalação de alta disponibilidade para um banco de dados RDS ........3179.6 Ajustando o desempenho do banco de dados ......................................................... 319
9.6.1 Aumentando os recursos do banco de dados .......................................................3199.6.2 Usando a replicação para melhorar o desempenho da leitura ............................. 322
9.7 Monitorando um banco de dados ..........................................................................3259.8 Resumo.................................................................................................................327
Capítulo 10 ■ Programando para o serviço de banco de dados NoSQL: DynamoDB ...............................328
10.1 Operando o DynamoDB .......................................................................................330
10.1.1 Administração ................................................................................................ 330
10.1.2 Preço...............................................................................................................33110.1.3 Comparação com o RDS ..................................................................................331
10.2 DynamoDB para desenvolvedores .........................................................................332
10.2.1 Tabelas, itens e atributos ................................................................................. 332
10.2.2 Chaves primárias ........................................................................................... 333
10.2.3 Comparação de bancos de dados NoSQL ........................................................ 333
10.2.4 DynamoDB Local........................................................................................... 33410.3 Programando um aplicativo de tarefas pendentes ..................................................33410.4 Criando tabelas ...................................................................................................337
10.4.1 Usuários com chaves hash ...............................................................................33810.4.2 Tarefas com chaves de hash e intervalo ............................................................340
10.5 Adicionando dados ..............................................................................................342
10.5.1 Adicionando um usuário .................................................................................344
10.5.2 Adicionando uma tarefa ................................................................................. 34510.6 Recuperando dados .............................................................................................347
10.6.1 Capturando por chave .................................................................................... 347
10.6.2 Consultando por chave e filtro ........................................................................ 349
10.6.3 Usando índices secundários para fornecer consultas mais flexíveis ................... 352
10.6.4 Percorrendo e filtrando todos os dados de sua tabela ....................................... 355
7/21/2019 Su Mario 9788575224694
http://slidepdf.com/reader/full/su-mario-9788575224694 9/10
11Sumário
10.6.5 Recuperação de dados eventualmente consistente ............................................ 35710.7 Removendo dados ...............................................................................................35810.8 Modificando dados..............................................................................................35910.9 Dimensionando a capacidade .............................................................................. 36010.10 Resumo ............................................................................................................. 363
Parte IV ■ Projetando na AWS ................................................................365
Capítulo 11 ■ Alcançando a alta disponibilidade: zonas de disponibilidade, autoescalonamento e CloudWatch 367
11.1 Recuperando-se de falha no servidor com o CloudWatch ...................................... 369
11.1.1 Criando um alarme do CloudWatch .................................................................371
11.1.2 Monitorando e recuperando um servidor virtual com base em um alarme do
CloudWatch ...................................................................................................... 37311.2 Recuperando-se da interrupção em um datacenter ................................................379
11.2.1 Zonas de disponibilidade: vários datacenters por região ................................... 379
11.2.2 Usando o autoescalonamento para assegurar que um servidor virtual esteja sem-pre em execução ................................................................................................384
11.2.3 Recuperando um servidor virtual defeituoso em outra zona de disponibilidadecom a ajuda do autoescalonamento ....................................................................388
11.2.4 Armadilha: recuperação de armazenamento anexado à rede ............................. 393
11.2.5 Armadilha: recuperação de interface de rede .................................................... 398
11.3 Analisando os requisitos da recuperação em caso de desastre ................................ 40311.3.1 Comparação entre RTO e RPO para um único servidor virtual .........................404
11.4 Resumo .............................................................................................................. 405
Capítulo 12 ■ Desacoplando sua infraestrutura: ELB e SQL ..................................................................406
12.1 Desacoplamento síncrono com balanceadores de carga ......................................... 407
12.1.1 Definindo um balanceador de carga com servidores virtuais .............................409
12.1.2 Armadilha: conectando um servidor cedo demais .............................................412
12.1.3 Mais casos de uso ............................................................................................41412.2 Desacoplamento assíncrono com filas de mensagens .............................................422
12.2.1 Transformando um processo síncrono em um assíncrono ................................. 423
12.2.2 Arquitetura do aplicativo URL2PNG .............................................................. 424
12.2.3 Definindo uma fila de mensagens ...................................................................425
12.2.4 Produzindo mensagens programaticamente .................................................... 425
12.2.5 Consumindo mensagens programaticamente .................................................. 427
12.2.6 Limitações da troca de mensagens com o SQS ................................................. 432
12.3 Resumo ...............................................................................................................433
7/21/2019 Su Mario 9788575224694
http://slidepdf.com/reader/full/su-mario-9788575224694 10/10
Amazon Web Services em Ação12
Capítulo 13 ■ Projetando para tolerância a falhas ..............................................................................435
13.1 Usando instâncias EC2 redundantes para aumentar a disponibilidade .................. 438
13.1.1 A redundância pode eliminar um ponto de falha individual .............................. 439
13.1.2 Redundância requer desacoplamento .............................................................. 441
13.2 Considerações para tornar seu código tolerante a falhas ....................................... 44213.2.1 Deixe falhar, mas tente de novo .......................................................................442
13.2.2 A repetição idempotente torna possível a tolerância a falhas .............................44313.3 Projetando um aplicativo web tolerante a falhas: Imagery ..................................... 446
13.3.1 A máquina de estados de imagem idempotentes ............................................... 450
13.3.2 Implementando um web service tolerante a falhas ........................................... 452
13.3.3 Implementando um worker tolerante a falhas para consumir mensagens SQS ... 461
13.3.4 Implantando o aplicativo ................................................................................46613.4 Resumo ...............................................................................................................477
Capítulo 14 ■ Escalonamento para cima e para baixo: autoescalonamento e CloudWatch ....................478
14.1 Gerenciando um pool de servidores dinâmico .......................................................48114.2 Usando métricas e schedules para acionar o escalonamento ................................. 486
14.2.1 Escalonamento baseado em um schedule ........................................................488
14.2.2 Escalonamento baseado em métricas do CloudWatch .....................................49014.3 Desacoplando seu pool de servidores dinâmico .................................................... 495
14.3.1 Dimensionando um pool de servidores dinâmico sincronamente desacoplado por
um balanceador de carga ....................................................................................49614.3.2 Dimensionando um pool de servidores dinâmico assincronamente desacoplado
por uma fila ....................................................................................................... 50514.4 Resumo .............................................................................................................. 509