Introduçãoo aws, escalando uma aplicação Web

Post on 14-Jan-2017

89 views 0 download

Transcript of Introduçãoo aws, escalando uma aplicação Web

Alessandro de Oliveira Binhara

binhara@azuris.com.br

• Amazon.com + Amazon AWS (+260mil funcionários)• 75 mil vagas empregos aberto no mundo• Receita 107 Bilhões• Valor atual $317 Bilhões

• Chamath Palihapitiya, fundador da Social Capital, empresa de investimentos norte-americana, afirmou hoje (4) que a Amazon, de Jeff Bezos, pode estar por trás de um novo conglomerado avaliado em mais de US$ 3 trilhões.

• Apple $521 bilhões • Google $480 bilhões• Microsoft $238Bilhões

• "Por experiência, sabia que o custo de manutenção de uma infra-estrutura confiável, escalável em um modelo de multi-centro de dados tradicional pode ser tão alta quanto 70 por cento, tanto em tempo e esforço, e exige um investimento significativo de capital intelectual para sustentar por um longo período de tempo . O pensamento inicial era prestar serviços que poderiam reduzir esse custo para 30 por cento ou menos (agora sabemos que pode ser muito menos)." Werner Vogels CTO da Amazon

• - 2003 (Idéia formada, início da construção) - 2005 (produtos AWS sendo vendidos para alguns clientes) - 2006 (Lançamento oficial)

• SaaS • (Entrega Software para o Usuário Final)

• PaaS • ( Entrega uma plataforma, para fazermos o

deploy do Software)

• IaaS • (Entrega Infraestrutura, Servidores, Rede,

Storage)

• Outros Conceitos: DevaaS, CaaS, EaaS, DBaaS, BIaaS, etc.

IaaS

PaaS

SaaS

• Elasticidade.

• Disponibilidade.

• Serviços desacoplados.

• Gestão eficiente.

• Custo.

• Segurança.

• - Especialista em cloud computing.

• - Líder de mercado.

• - Constantes inovações.

• - Serviços gratuitos por até um ano*.

• - Repasse de benefícios.

• - Vários DCs espalhados pelo mundo.

Ritmo de Inovação Plataforma Robusta e Abrangência Global

Core

Services

Platform

Services

Enterprise

Applications

Analytics App Services Deployment and Management Mobile Services

AWS Data

Pipeline

AWS

CloudTrail

CloudWatch

AWS CloudFormation

Elastic

Beanstalk

ElastiCacheAmazon

Redshift

Amazon

RDSDynamoDB

Amazon

CloudSearch

Amazon

SES

Amazon

SWF

Elastic Transcoder

Amazon Kinesis

Amazon

EMR

IAM

AWS

OpsWorks

Compute Networking DatabaseStorage

CloudFront

Amazon

Glacier

Amazon S3

Amazon

EBS

Auto ScalingAmazon

Route 53

Elastic Load

BalancingAWS Direct Connect

Amazon VPC

Amazon EC2

Amazon

WorkSpaces

Amazon WorkDocs

Amazon

SNS

Mobile Analytics

Amazon

Cognito

Actual

EC2

Amazon EC2 Elastic Load BalancingAuto Scaling

Web service queprovê capacidade de

computaçãoredimensionável

Automaticamenteescala a capacidade de instâncias Amazon EC2

de forma elástica

Automaticamente distribuitráfego através de instâncias

Amazon EC1

Amazon EBS

Storage de Blocospara uso com

instâncias Amazon EC2

EBS

Amazon Glacier

Storage de baixocusto para archiving

e backup

Images

Videos

Files

Binaries

Snapshots

Amazon S3

Images

Videos

Files

Binaries

Snapshots

Storage de Objetosdurável e escalável

Amazon RDS

Serviço de Banco de Dados gerenciado

Amazon ElastiCache

Serviço de caching emmemória

Amazon DynamoDB

Serviço de Banco de Dados NoSQL gerenciado

DBA

Amazon RDSFor Aurora

Novo banco de dados relacional

compatível com MySQL

Amazon VPC

Seção Privada, isoladada nuvem da AWS

Amazon Route 53

Serviço DNS WebDomain Name System

Availability

Zone BAvailability

Zone A

AWS Storage Gateway

Integrates on-premises IT and AWS storage

S3,

Glacier

AWS Direct Connect

Private connectivity between AWS and your data center

Amazon Kinesis

Amazon Redshift

Amazon Elastic MapReduce

Processamento de grande quantidade de

dados

Rápido, poderoso, data warehouse na escala

dos petabytes

Processamento de data stream em real-

time

Amazon Simple Email Service (SES)

Amazon Simple Queue Service

(SQS)

Amazon Simple Notification Service

(SNS)

Amazon CloudSearch

AWS ElasticBeanstalk

AWS OpsWorks

AWS CloudFormation

Templates para fazerdeploy e gestão

manage

DevOps framework paragestão do ciclo de vida

das aplicações

Gestãoautomatizada de

recursos

- Processamento

- Armazenamento

- CDN

- Banco de Dados

- Messageria

- Load Balance

- Monitoração

EC2 – WebserverSECURITY

Aquitetura Inicial – Fortemente aclopada

user

SERVIDOR

• Tudo em cima de um único servidor• Que guarda os dados do usuário• O servidor é vital para a aplicação• Não Escala• Não é tolerante a falhas• Famoso “Exécito de um homem só ”

EC2 – WebserverSECURITY

Aquitetura Inicial – Fortemente aclopada

user

SERVIDOR

• Tudo em cima de um único servidor• Que guarda os dados do usuário• O servidor é vital para a aplicação• Não Escala• Não é tolerante a falhas• Famoso “Exécito de um homem só ”

• 1) Separar Web e DB• Mais capacidade

• Escalar a cada lado individualmente

• Escolha de Instancias independente• Tipo de Instancia

• Armazenamento

• Segurança• Cada um com seu security group

• DB vai para um subrede privada

• Relaciona Database Service• Aurora, MySQL, PostgresSQL, Oracle, SQL Server

• Totalmente Gerenciado

• Zero de Administração

• Escalonável

• Durável

• Backup

AmazonS3

Amazon CloudFront

CDN

Amazon

Route 53

Elastic Load

Balancing

EC2 – WebserverSECURITY

Architecture WEB SCALABLE

userCloudFront

distribution

Availability Zone #1 Availability Zone #2

EC2 - WORKERS

encrypted data

AWS cloud

web app

server

security group

RDS DB

instance

• Esacalável ?

• Seguro ?

• Tolerante a Falhas ?

• Altamente disponível ?

• Amazon s3: Serviço de armazenamento de objetos altamente disponíveis• Arquivos staticos (java script, css, imagens)

• Upload de artiovos, conteúdo do usuários

• S3 URLs – sirva HTTP diretamente do s3

• Web Serve somente para a aplicação

• Problema servidores statuful

• Solução: servidores stateful

AWS cloud

web app

server

security group

RDS DB

instance

AmazonS3

• Seu site esta crescendo

• Pague somente pelo que vc utiliza

• Escalabilidade horizontal

• Mais instâncias em horários de pico

• Menos instâncias em horários de vale

• Tolerância a falhas e Alta disponiponibilidade

• Servidore StateLess

• Recurso computacional que permite processar parte de uma arquitetura desacoplada

• Servidore StateLess

• Recurso computacional que permite processar parte de uma arquitetura desacoplada

Aumentando as CPU

• Servidore StateLess

• Recurso computacional que permite processar parte de uma arquitetura desacoplada

Reduzindo as CPU

AWS cloud

web app

server

security group

RDS DB

instance AmazonS3

Amazon

Route 53

AWS cloud

web app

server

security group

• Servicço de balancemanto de carga

• Totalmente tolerante a falhas

• Distribui tráfego entre muiltiplas Azs

• Elastico – automaticamente escala

AWS cloud

web app

server

security group

RDS DB

instance AmazonS3

Amazon

Route 53

AWS cloud

web app

server

security group

• Redimeninamento automático

• Via console da amazona

• Via Chamada de api

• Numero mínimo e máximo

• Alarme

web app

server

security group

RDS DB

instance

AmazonS3

Amazon

Route 53

AWS cloud

web app

server

security group

Auto Scaling group

Auto Scaling

RDS DB

instance standby

(Multi-AZ)

web app

server

security group

RDS DB

instance

AmazonS3

Amazon

Route 53

AWS cloud

web app

server

security group

Auto Scaling group

Auto Scaling

RDS DB

instance standby

(Multi-AZ)

web app

server

security group

RDS DB

instance

AmazonS3

Amazon

Route 53

AWS cloud

web app

server

security group

Auto Scaling group

Auto Scaling

RDS DB

instance standby

(Multi-AZ)

web app

server

web app

serverweb app

server

web app

server

• Rede mundial de pontos de presença

• Cache mais próximo do seu usuário• Reduz latência

• Reduz carga nos servidores de origem

• Conteudo estático e dinâmico

• Otimizações de conexão• Enlace de rede entre os end-points

• Reutilização de conexões

web app

server

security group

RDS DB

instance

AmazonS3

Amazon

Route 53

AWS cloud

web app

server

security group

Auto Scaling group

Auto Scaling

RDS DB

instance standby

(Multi-AZ)

web app

server

web app

serverweb app

server

web app

server

CloudFront

distribution

• Aumentar os specs da instância de banco de dados• Tipo de instância• Mais disco, volumes

• Read Replicas (Master Slave)• Escala além da capacidade do SQL• Disponível para vários bancos• Lag de aplicação • Latencia e consitencia• Pode aumentas as outras maquinas• Ou adicionar readreplica• MultiAZ replicação sincrona

AmazonS3

Amazon CloudFront

CDN

AmazonRDS Multi AZ

Amazon ElastiCache

MEMCACHE-REDIS

Amazon

Route 53

Elastic Load

Balancing

EC2 – WebserverSECURITY

Architecture WEB SCALABLE

userCloudFront

distribution

Availability Zone #1 Availability Zone #2

EC2 - WORKERS

AmazonSQS

EC2 – WebserverSECURITY

EC2 - WORKERS

Auto Scaling

Auto Scaling

AWS Elastic Beanstalk

AWS Elastic Beanstalk

Spot instance

AMI

encrypted data

AmazonS3

Amazon CloudFront

CDN

AmazonRDS Multi AZ

Amazon ElastiCache

MEMCACHE-REDIS

Amazon

Route 53

Elastic Load

Balancing

EC2 – WebserverSECURITY

Architecture WEB SCALABLE

userCloudFront

distribution

Availability Zone #1 Availability Zone #2

EC2 - WORKERS

AmazonSQS

EC2 – WebserverSECURITY

EC2 - WORKERS

Auto Scaling

Auto Scaling

AWS Elastic Beanstalk

AWS Elastic Beanstalk

Spot instance

AMI

encrypted data

web app

server

security group

RDS DB

instance

AmazonS3

Amazon

Route 53

AWS cloud

web app

server

security group

Auto Scaling group

Auto Scaling

RDS DB

instance standby

(Multi-AZ)

web app

server

web app

serverweb app

server

web app

server

CloudFront

distribution

RDS DB

instance read

replica

RDS DB

instance read

replica

• Resposta mais rápidas

• Alivio do trafego no banco de dados

• Facil de implementar

• Gerenciado• Auto escalável

• Elastico

• Compative• Memcache e Redis

AmazonS3

Amazon CloudFront

CDN

AmazonRDS Multi AZ

Amazon ElastiCache

MEMCACHE-REDIS

Amazon

Route 53

Elastic Load

Balancing

EC2 – WebserverSECURITY

Architecture WEB SCALABLE

userCloudFront

distribution

Availability Zone #1 Availability Zone #2

EC2 - WORKERS

AmazonSQS

EC2 – WebserverSECURITY

EC2 - WORKERS

Auto Scaling

Auto Scaling

AWS Elastic Beanstalk

AWS Elastic Beanstalk

Spot instance

AMI

encrypted data