Andreas Wittig Michael Wittig



Documentos relacionados
Ricardo R. Lecheta. Novatec

Adrian Mejia. Novatec

Adail Henrique Spínola Horst Aécio dos Santos Pires André Luis Boni Déo. Novatec

David Hows Peter Membrey Eelco Plugge

Ricardo R. Lecheta. Novatec

Brandon Rhodes John Goerzen

Ademir C. Gabardo. Novatec

Lojas Virtuais com. Magento. André Nobrega Gugliotti. Novatec

Crie Seu Próprio Site

Zend. Framework. Componentes Poderosos para PHP. Flávio Gomes da Silva Lisboa. Novatec

Ricardo Lino Olonca. Novatec

Julia Elman e Mark Lavin. Novatec

Harrison Kinsley Will McGugan

Desenvolvendo para. Windows 8. Aprenda a desenvolver aplicativos para Windows Phone 8 e Windows 8. Ricardo R. Lecheta. Novatec

Hélio Engholm Jr. Novatec

Criando Aplicações PHP com. Zend e Dojo. Flávio Gomes da Silva Lisboa. Novatec

Scrum em Ação. Gerenciamento e Desenvolvimento Ágil de Projetos de Software. Andrew Pham Phuong-Van Pham. Novatec

Pramod J. Sadalage Martin Fowler

Forefront Server Security Management Console: Gerenciamento Simplificado da Segurança para Mensagens e Colaboração White Paper

André Gugliotti. Novatec

Design Centrado no Usuário

marketing ágil Utilização de Metodologias Ágeis em Projetos de Marketing Michelle Accardi-Petersen Novatec

Sumário. 1 Introdução à administração do Windows Vista Gerenciando sistemas Windows Vista...51

Wilson Moraes Góes. Novatec

Defenda sua base com circuitos simples, Arduino e Raspberry Pi

Novatec Editora Ltda

Aprendendo Programação. ios. Alasdair Allan. Novatec

Primeiros Passos com o Raspberry Pi

Desenvolvendo Websites com PHP

Excel Avançado. 2ª Edição. Antonio Fernando Cinto Wilson Moraes Góes. Novatec

Jonathan Stark Brian Jepson

Luiz Carlos Querino Filho

AR TELECOM CLOUD SERVICES

Oracle WebLogic Server 11g: Conceitos Básicos de Administração

Conteúdo do pacote de 03 cursos hands-on

Service Desk Corporativo

Desenvolvendo Websites com PHP

SISTEMA OPERACIONAL - MAC

INSTALANDO E CONFIGURANDO O WINDOWS 10

Consolidação inteligente de servidores com o System Center

Google Android para Tablets

SolarWinds Kiwi Syslog Server

Novatec Editora Ltda. [2014].

Sumário. 1 Explorando o Windows Gerenciando contas de usuário Parte 1 Conhecendo o Windows 7

Manual de Vendas. Chegou a oportunidade de aumentar os lucros com o Windows Server 2012 R2

2ª Edição Alexandre Keller

Laboratórios de Tecnologias. Cisco. em Infraestrutura de Redes. Samuel Henrique Bucke Brito. Novatec

Garantindo a. Máquinas Virtuais do. alta disponibilidade nas. Microsoft Azure MDC305

Minicurso Computação em Nuvem Prática: Openstack

Motorola Phone Tools. Início Rápido

SISTEMA OPERACIONAL - WINDOWS

Conceitos Básicos de Rede. Um manual para empresas com até 75 computadores

Ademir C. Gabardo. Novatec

Aula 03-04: Modelos de Sistemas Distribuídos

Desafios na implantação de nuvens públicas

Pete Goodliffe. Novatec

Copyright 2008, 2013 da Novatec Editora Ltda.

CA Mainframe Chorus for Storage Management Versão 2.0

ArcGIS for Server: Administração e Configuração do Site (10.2)

Apresentação resumida

2ª EDIÇÃO. André Milani. Novatec

Sistemas Operacionais. Prof. André Y. Kusumoto

Ricardo Kléber M. Galvão. Novatec

Gerenciamento. de projetos. Bart Gerardi. Novatec. Como evitar problemas previsíveis para o sucesso do projeto

Ricardo R. Lecheta. Novatec

Paulo Strelczuk. Novatec

SERVIDORES REDES E SR1

Keith Wood. Apresentação de Dave Methvin. Novatec

Benefícios e processos relacionados à migração e servidores dedicados para cloud servers. Juliano Simões. Diretor de Tecnologia

Database Cloud Service Database Backup para Oracle Cloud

Criando Relatórios com PHP

João Eriberto Mota Filho

Google Analytics Justin Cutroni

Sumário. Parte I Elementos essenciais Sobre o autor Sobre o revisor técnico Prefácio... 14

Sumário. Sobre este livro 1. Direto ao assunto 7

Segurança em Redes sem Fio

Gerência e Administração de Redes

Josh Pauli Revisão técnica Scott White. Novatec

agility made possible

Rails 3 Básico Cloves Carneiro Jr. Rida Al Barazi

Instalação do Aparelho Virtual Bomgar. Base 3.2

Desenvolvimento de Grandes Aplicações Web

Quatro tendências críticas em TI para a continuidade dos negócios

Criando Aplicações Gráficas com PHP

Sumário. Introdução. Implantação, gerenciamento e manutenção de servidores 1. Certificações da Microsoft... xiv. Agradecimentos...

CA Nimsoft Monitor Snap

Edgar Gomes de Abreu

Windows 2008 Server. Windows 2008 Server IFSP Boituva Prof. Sérgio Augusto Godoy.

O aplicativo de desktop Novell Filr é compatível com as seguintes versões do sistema operacional Windows:

Camila Porto. Novatec

GERENCIAMENTO CENTRALIZADO DELL POWERVAULT DL 2000 BASEADO EM TECNOLOGIA SYMANTEC

Minicurso Computação em Nuvem Prática: AWS

Transcrição:

Andreas Wittig Michael Wittig Novatec

Original English language edition published by Manning Publications Co., Copyright 2015 by Manning 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 pela Manning 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ção desta obra, mesmo parcial, por qualquer processo, sem prévia autorização, por escrito, do autor e da Editora. Editor: Rubens Prates IG20151203 Assistente editorial: Priscila A. Yoshimatsu Tradução: Aldir José Coelho Corrêa da Silva Revisão gramatical: Smirna Cavalheiro Editoraçã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 110 02460-000 São Paulo, SP Brasil Tel.: +55 11 2959-6529 E-mail: novatec@novatec.com.br Site: novatec.com.br Twitter: twitter.com/novateceditora Facebook: facebook.com/novatec LinkedIn: linkedin.com/in/novatec

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?... 28 1.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...32 1.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...36 1.4 Quanto custa?... 37 1.4.1 Nível gratuito... 37 1.4.2 Exemplo de cobrança...38 1.4.3 Oportunidades do modelo pay-per-use...40 5

6 Amazon Web Services em Ação 1.5 Comparando alternativas... 40 1.6 Explorando os serviços AWS... 42 1.7 Interagindo com a AWS... 45 1.7.1 Console de Gerenciamento...46 1.7.2 Interface de linha de comando...47 1.7.3 SDKs...47 1.7.4 Blueprints...48 1.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...60 1.9 Resumo... 60 Capítulo 2 Um exemplo simples: o WordPress em cinco minutos...61 2.1 Criando sua infraestrutura... 62 2.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?...74 2.4 Excluindo sua infraestrutura... 76 2.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...80 3.1.2 Conectando-se com um servidor virtual... 91 3.1.3 Instalando e executando softwares manualmente...94 3.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... 98 3.4 Alterando o tamanho de um servidor virtual... 99 3.5 Iniciando um servidor virtual em outro datacenter...103 3.6 Alocando um endereço IP público...106

Sumário 7 3.7 Adicionando outra interface de rede a um servidor virtual...109 3.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... 124 4.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... 135 4.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... 146 4.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... 154 4.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...165 5.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... 173 5.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...175 5.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... 183 5.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... 194 5.6 Resumo...195

8 Amazon Web Services em Ação Capítulo 6 Protegendo seu sistema: IAM, grupos de segurança e VPC...196 6.1 Quem é responsável pela segurança?...198 6.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...200 6.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...210 6.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... 223 6.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)...226 6.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... 233 6.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...239 7.2 Amazon S3...240 7.3 Fazendo o backup de seus dados...242 7.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

Sumário 9 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...255 7.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... 258 7.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...271 8.2 Armazenamentos de instância...273 8.2.1 Usando um armazenamento de instância...277 8.2.2 Testando o desempenho... 278 8.2.3 Fazendo o backup de seus dados... 279 8.3 Comparando soluções de armazenamento de nível de bloco...279 8.4 Hospedando um sistema de arquivos compartilhado suportado por um armazenamento 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...289 8.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

10 Amazon Web Services em Ação 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...310 9.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...315 9.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...317 9.6 Ajustando o desempenho do banco de dados... 319 9.6.1 Aumentando os recursos do banco de dados...319 9.6.2 Usando a replicação para melhorar o desempenho da leitura... 322 9.7 Monitorando um banco de dados...325 9.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...331 10.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... 334 10.3 Programando um aplicativo de tarefas pendentes...334 10.4 Criando tabelas...337 10.4.1 Usuários com chaves hash... 338 10.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... 345 10.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

Sumário 11 10.6.5 Recuperação de dados eventualmente consistente... 357 10.7 Removendo dados...358 10.8 Modificando dados...359 10.9 Dimensionando a capacidade... 360 10.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... 373 11.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 sempre em execução...384 11.2.3 Recuperando um servidor virtual defeituoso em outra zona de disponibilidade com 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... 403 11.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...414 12.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

12 Amazon Web Services em Ação 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... 442 13.2.1 Deixe falhar, mas tente de novo...442 13.2.2 A repetição idempotente torna possível a tolerância a falhas...443 13.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...466 13.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...481 14.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...490 14.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...496 14.3.2 Dimensionando um pool de servidores dinâmico assincronamente desacoplado por uma fila...505 14.4 Resumo... 509