Amazon Web Services em Ação
Descrição do livro
Datacenters físicos requerem um grande volume de equipamentos e seu gerenciamento consome tempo e recursos. Se você precisa de um datacenter, mas não quer construir um por conta própria, a Amazon Web Services pode ser a solução. Seja na análise de dados em tempo real, no desenvolvimento de software como serviço ou na execução de um site de e-commerce, a AWS fornece uma plataforma baseada em nuvem confiável e com serviços escaláveis.
O livro Amazon Web Services em ação o apresentará à computação, ao armazenamento e ao uso de rede na nuvem da AWS. Primeiro será dada uma visão geral da computação em nuvem e então começaremos a configurar sua conta. Você aprenderá como automatizar sua infraestrutura por meio da API da AWS, para controlar cada parte da plataforma.
Em seguida, conhecerá opções e técnicas para armazenar seus dados. Aprenderá também como isolar seus sistemas, usando redes privadas para aumentar a segurança. Para concluir, este livro o ensinará como projetar considerando a alta disponibilidade e a tolerância a falhas.Conteúdo
Visão geral de conceitos e padrões de nuvem
Implantação (deploy) de aplicativos na AWS
Integração de serviços pré-construídos da Amazon
Gerenciamento de servidores no EC2 para redução de custos
Escrito para desenvolvedores e engenheiros DevOps que estejam transferindo aplicações distribuídas para a plataforma AWS.
Ver menos ▲Sumário
Sumário
- Apresentação
- Prefácio
- Agradecimentos
- Sobre o livro
- Sobre os autores
- Sobre a ilustração da capa
- Introdução
- Capítulo 1 ■ O que é a Amazon Web Services?
- 1.1 O que é computação em nuvem?
- 1.2 O que você pode fazer com a AWS?
- 1.2.1 Hospedando uma loja web
- 1.2.2 Executando uma aplicação Java EE em sua rede privada
- 1.2.3 Atendendo requisitos legais e empresariais de arquivamento de dados
- 1.2.4 Implementando uma arquitetura de sistema tolerante a falhas
- 1.3 Como você pode se beneficiar do uso da AWS
- 1.3.1 Plataforma inovadora e em rápido crescimento
- 1.3.2 Os serviços resolvem problemas comuns
- 1.3.3 Beneficiando-se da automação
- 1.3.4 Capacidade flexível (escalabilidade)
- 1.3.5 Construa protegendo-se contra falhas (confiabilidade)
- 1.3.6 Reduzindo o tempo de distribuição para o mercado
- 1.3.7 Beneficiando-se de economias de escala
- 1.3.8 Abrangência mundial
- 1.3.9 Parceira profissional
- 1.4 Quanto custa?
- 1.4.1 Nível gratuito
- 1.4.2 Exemplo de cobrança
- 1.4.3 Oportunidades do modelo pay-per-use
- 1.5 Comparando alternativas
- 1.6 Explorando os serviços AWS
- 1.7 Interagindo com a AWS
- 1.7.1 Console de Gerenciamento
- 1.7.2 Interface de linha de comando
- 1.7.3 SDKs
- 1.7.4 Blueprints
- 1.8 Criando uma conta AWS
- 1.8.1 Inscrevendo-se
- 1.8.2 Entrando
- 1.8.3 Criando um par de chaves
- 1.8.4 Criando um alarme de cobrança
- 1.9 Resumo
- Capítulo 2 ■ Um exemplo simples: o WordPress em cinco minutos
- 2.1 Criando sua infraestrutura
- 2.2 Examinando sua infraestrutura
- 2.2.1 Grupos de recursos
- 2.2.2 Servidores web
- 2.2.3 Balanceador de carga
- 2.2.4 Banco de dados MySQL
- 2.3 Quanto custa?
- 2.4 Excluindo sua infraestrutura
- 2.5 Resumo
- Construindo uma infraestrutura virtual com servidores e rede
- Capítulo 3 ■ Usando servidores virtuais: EC2
- 3.1 Examinando um servidor virtual
- 3.1.1 Iniciando um servidor virtual
- 3.1.2 Conectando-se com um servidor virtual
- 3.1.3 Instalando e executando softwares manualmente
- 3.2 Monitorando e depurando um servidor virtual
- 3.2.1 Exibindo logs a partir de um servidor virtual
- 3.2.2 Monitorando a carga de um servidor virtual
- 3.3 Encerrando um servidor virtual
- 3.4 Alterando o tamanho de um servidor virtual
- 3.5 Iniciando um servidor virtual em outro datacenter
- 3.6 Alocando um endereço IP público
- 3.7 Adicionando outra interface de rede a um servidor virtual
- 3.8 Otimizando os custos dos servidores virtuais
- 3.8.1 Reserve servidores virtuais
- 3.8.2 Dando lances por servidores virtuais não usados
- 3.9 Resumo
- Capítulo 4 ■ Programando sua infraestrutura: a linha de comando, os SDKs e o CloudFormation
- 4.1 Infraestrutura como código
- 4.1.1 Automação e o movimento DevOps
- 4.1.2 Inventando uma linguagem de infraestrutura: o JIML
- 4.2 Usando a interface de linha de comando
- 4.2.1 Instalando a CLI
- 4.2.2 Configurando a CLI
- 4.2.3 Usando a CLI
- 4.3 Programando com o SDK
- 4.3.1 Controlando servidores virtuais com o SDK: nodecc
- 4.3.2 Como o nodecc cria um servidor
- 4.3.3 Como o nodecc lista servidores e exibe seus detalhes
- 4.3.4 Como o nodecc encerra um servidor
- 4.4 Usando um blueprint para iniciar um servidor virtual
- 4.4.1 Anatomia de um template CloudFormation
- 4.4.2 Criando seu primeiro template
- 4.5 Resumo
- Capítulo 5 ■ Automatizando a implantação: CloudFormation, Elastic Beanstalk e OpsWorks
- 5.1 Implantando aplicações em um ambiente de nuvem flexível
- 5.2 Executando um script na inicialização do servidor usando o CloudFormation
- 5.2.1 Usando dados de usuário para executar um script na inicialização do servidor
- 5.2.2 Implantando o OpenSwan como servidor VPN em um servidor virtual
- 5.2.3 Iniciando a partir do zero em vez de atualizar
- 5.3 Implantando um aplicativo web simples com o Elastic Beanstalk
- 5.3.1 Componentes do Elastic Beanstalk
- 5.3.2 Usando o Elastic Beanstalk para implantar o Eherpad, um aplicativo Node js
- 5.4 Implantando um aplicativo multicamada com o OpsWorks
- 5.4.1 Componentes do OpsWorks
- 5.4.2 Usando o OpsWorks para implantar um aplicativo de chat do IRC
- 5.5 Comparando ferramentas de desenvolvimento
- 5.5.1 Classificando as ferramentas de implantação
- 5.5.2 Comparando os serviços de implantação
- 5.6 Resumo
- Capítulo 6 ■ Protegendo seu sistema: IAM, grupos de segurança e VPC
- 6.1 Quem é responsável pela segurança?
- 6.2 Mantendo seu software atualizado
- 6.2.1 Procurando atualizações de segurança
- 6.2.2 Instalando atualizações de segurança na inicialização do servidor
- 6.2.3 Instalando atualizações de segurança em servidores em execução
- 6.3 Protegendo sua conta
- 6.3.1 Protegendo o usuário root de sua conta AWS
- 6.3.2 Serviço Identity and Access Management
- 6.3.3 Políticas de autorização
- 6.3.4 Usuários na autenticação e grupos para organizar usuários
- 6.3.5 Funções para autenticação de recursos AWS
- 6.4 Controlando o tráfego de rede enviado de e para seu servidor virtual
- 6.4.2 Permitindo a entrada de tráfego ICMP
- 6.4.3 Permitindo tráfego SSH
- 6.4.4 Permitindo a entrada de tráfego SSH proveniente de um endereço IP de origem
- 6.4.5 Permitindo tráfego SSH proveniente de um grupo de segurança
- 6.4.6 Encaminhamento de agente com o PuTTY
- cloud)
- 6.5.1 Criando a VPC e o gateway de internet (IGW, Internet gateway)
- 6.5.2 Definindo a sub-rede pública do bastion host
- 6.5.3 Adicionando a sub-rede privada do servidor web Apache
- 6.5.4 Iniciando servidores nas sub-redes
- 6.5.5 Acessando a internet a partir de sub-redes privadas via servidor NAT
- 6.6 Resumo
- Armazenando dados na nuvem
- Capítulo 7 ■ Armazenando seus objetos: S3 e Glacier
- 7.1 Conceito de um armazenamento de objetos
- 7.2 Amazon S3
- 7.3 Fazendo o backup de seus dados
- 7.4 Arquivando objetos para otimizar custos
- 7.4.1 Criando um bucket S3 para ser usado com o Glacier
- 7.4.2 Adicionando uma regra de ciclo de vida a um bucket
- 7.4.3 Fazendo testes com o Glacier e com sua regra de ciclo de vida
- 7.5 Armazenando objetos por meio de programas
- 7.5.1 Configurando um bucket S3
- 7.5.2 Instalando um aplicativo web que usa o S3
- 7.5.3 Tendo acesso ao código: S3 com SDK
- 7.6 Usando o S3 para a hospedagem estática na Web
- 7.6.1 Criando um bucket e fazendo o upload de um site estático
- 7.6.2 Configurando um bucket para a hospedagem estática na web
- 7.6.3 Acessando um site hospedado no S3
- 7.7 Funcionamento interno do armazenamento de objetos
- 7.7.1 Assegurando a consistência dos dados
- 7.7.2 Selecionando as chaves certas
- 7.8 Resumo
- 8.1 Armazenamento anexado à rede
- 8.1.1 Criando um volume EBS e anexando-o ao seu servidor
- 8.1.2 Usando o Elastic Block Store
- 8.1.3 Ajustando o desempenho
- 8.1.4 Fazendo o backup de seus dados
- 8.2 Armazenamentos de instância
- 8.2.1 Usando um armazenamento de instância
- 8.2.2 Testando o desempenho
- 8.2.3 Fazendo o backup de seus dados
- 8.3 Comparando soluções de armazenamento de nível de bloco
- to de instância e pelo EBS
- 8.4.1 Grupos de segurança do NFS
- 8.4.2 Servidor e volume NFS
- 8.4.3 Script de instalação e configuração do servidor NFS
- 8.4.4 Clientes NFS
- 8.4.5 Compartilhando arquivos via NFS
- 8.5 Resumo
- Capítulo 9 ■ Usando um serviço de banco de dados relacional: RDS
- 9.1 Iniciando um banco de dados MySQL
- 9.1.1 Iniciando uma plataforma WordPress com um banco de dados Amazon RDS
- 9.1.3 Preço do Amazon RDS
- 9.2 Importando dados para um banco de dados
- 9.3 Fazendo o backup e restaurando seu banco de dados
- 9.3.1 Configurando snapshots automatizados
- 9.3.2 Criando snapshots manualmente
- 9.3.3 Restaurando um banco de dados
- 9.3.4 Copiando um banco de dados em outra região
- 9.3.5 Calculando o custo dos snapshots
- 9.4 Controlando o acesso a um banco de dados
- 9.4.1 Controlando o acesso à configuração de um banco de dados RDS
- 9.4.2 Controlando o acesso de rede a um banco de dados RDS
- 9.4.3 Controlando o acesso aos dados
- 9.5 Usando um banco de dados altamente disponível
- 9.5.1 Ativando a instalação de alta disponibilidade para um banco de dados RDS
- 9.6 Ajustando o desempenho do banco de dados
- 9.6.1 Aumentando os recursos do banco de dados
- 9.6.2 Usando a replicação para melhorar o desempenho da leitura
- 9.7 Monitorando um banco de dados
- 9.8 Resumo
- Capítulo 10 ■ Programando para o serviço de banco de dados NoSQL: DynamoDB
- 10.1 Operando o DynamoDB
- 10.1.1 Administração
- 10.1.2 Preço
- 10.1.3 Comparação com o RDS
- 10.2 DynamoDB para desenvolvedores
- 10.2.1 Tabelas, itens e atributos
- 10.2.2 Chaves primárias
- 10.2.3 Comparação de bancos de dados NoSQL
- 10.2.4 DynamoDB Local
- 10.3 Programando um aplicativo de tarefas pendentes
- 10.4 Criando tabelas
- 10.4.1 Usuários com chaves hash
- 10.4.2 Tarefas com chaves de hash e intervalo
- 10.5 Adicionando dados
- 10.5.1 Adicionando um usuário
- 10.5.2 Adicionando uma tarefa
- 10.6 Recuperando dados
- 10.6.1 Capturando por chave
- 10.6.2 Consultando por chave e filtro
- 10.6.3 Usando índices secundários para fornecer consultas mais flexíveis
- 10.6.4 Percorrendo e filtrando todos os dados de sua tabela
- 10.6.5 Recuperação de dados eventualmente consistente
- 10.7 Removendo dados
- 10.8 Modificando dados
- 10.9 Dimensionando a capacidade
- 10.10 Resumo
- Projetando na AWS
- 11.1 Recuperando-se de falha no servidor com o CloudWatch
- 11.1.1 Criando um alarme do CloudWatch
- CloudWatch
- 11.1.1 Criando um alarme do CloudWatch
- 11.2 Recuperando-se da interrupção em um datacenter
- 11.2.1 Zonas de disponibilidade: vários datacenters por região
- pre em execução
- com a ajuda do autoescalonamento
- 11.2.4 Armadilha: recuperação de armazenamento anexado à rede
- 11.2.5 Armadilha: recuperação de interface de rede
- 11.2.1 Zonas de disponibilidade: vários datacenters por região
- 11.3 Analisando os requisitos da recuperação em caso de desastre
- 11.3.1 Comparação entre RTO e RPO para um único servidor virtual
- 11.4 Resumo
- Capítulo 12 ■ Desacoplando sua infraestrutura: ELB e SQL
- 12.1 Desacoplamento síncrono com balanceadores de carga
- 12.1.1 Definindo um balanceador de carga com servidores virtuais
- 12.1.2 Armadilha: conectando um servidor cedo demais
- 12.1.3 Mais casos de uso
- 12.2 Desacoplamento assíncrono com filas de mensagens
- 12.2.1 Transformando um processo síncrono em um assíncrono
- 12.2.2 Arquitetura do aplicativo URL2PNG
- 12.2.3 Definindo uma fila de mensagens
- 12.2.4 Produzindo mensagens programaticamente
- 12.2.5 Consumindo mensagens programaticamente
- 12.2.6 Limitações da troca de mensagens com o SQS
- 12.3 Resumo
- Capítulo 13 ■ Projetando para tolerância a falhas
- 13.1 Usando instâncias EC2 redundantes para aumentar a disponibilidade
- 13.1.1 A redundância pode eliminar um ponto de falha individual
- 13.1.2 Redundância requer desacoplamento
- 13.2 Considerações para tornar seu código tolerante a falhas
- 13.2.1 Deixe falhar, mas tente de novo
- 13.2.2 A repetição idempotente torna possível a tolerância a falhas
- 13.3 Projetando um aplicativo web tolerante a falhas: Imagery
- 13.3.1 A máquina de estados de imagem idempotentes
- 13.3.2 Implementando um web service tolerante a falhas
- 13.3.3 Implementando um worker tolerante a falhas para consumir mensagens SQS
- 13.3.4 Implantando o aplicativo
- 13.4 Resumo
- Capítulo 14 ■ Escalonamento para cima e para baixo: autoescalonamento e CloudWatch
- 14.1 Gerenciando um pool de servidores dinâmico
- 14.2 Usando métricas e schedules para acionar o escalonamento
- 14.2.1 Escalonamento baseado em um schedule
- 14.2.2 Escalonamento baseado em métricas do CloudWatch
- 14.3 Desacoplando seu pool de servidores dinâmico
- um balanceador de carga
- por uma fila
- 14.4 Resumo
Sobre os autores
Andreas Wittig é engenheiro e consultor de software, especialista em AWS e desenvolvimento web.… Ver perfil completo ▶
Michael Wittig é engenheiro e consultor de software, especialista em AWS e desenvolvimento web.… Ver perfil completo ▶
Livros relacionados
Opinião dos leitores
Julio C
Livro muito bom! Tanto em teoria como em prática! Possui ótimos exemplos e aplicações reais.
Murilo B B
A obra cumpre o que promete.





