10
7/21/2019 Su Mario 9788575224694 http://slidepdf.com/reader/full/su-mario-9788575224694 1/10 Novatec Andreas Wittig Michael Wittig

Su Mario 9788575224694

Embed Size (px)

DESCRIPTION

Su Mario 9788575224694

Citation preview

Page 1: Su Mario 9788575224694

7/21/2019 Su Mario 9788575224694

http://slidepdf.com/reader/full/su-mario-9788575224694 1/10

Novatec

Andreas Wittig

Michael Wittig

Page 2: Su Mario 9788575224694

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

Page 3: Su Mario 9788575224694

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

Page 4: Su Mario 9788575224694

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

Page 5: Su Mario 9788575224694

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

Page 6: Su Mario 9788575224694

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

Page 7: Su Mario 9788575224694

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

Page 8: Su Mario 9788575224694

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

Page 9: Su Mario 9788575224694

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

Page 10: Su Mario 9788575224694

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