Académique Documents
Professionnel Documents
Culture Documents
Novembro de 2015
Amazon Web Services Arquiteturas Multicamadas Sem Servidor da AWS Novembro de 2015
Avisos
Este documento fornecido apenas para fins informativos. Ele relaciona as atuais
ofertas de produtos e prticas da AWS a contar da data de emisso deste
documento, que esto sujeitas a alteraes sem aviso prvio. Os clientes so
responsveis por fazer sua prpria avaliao independente das informaes neste
documento e de qualquer uso dos produtos ou servios da AWS, cada um dos quais
fornecido no estado em que se encontra, sem garantia de qualquer tipo,
expressa ou implcita. Este documento no cria quaisquer garantias,
representaes, compromissos contratuais, condies ou seguros da AWS, suas
afiliadas, fornecedores ou licenciadores. As responsabilidades e obrigaes da AWS
em relao aos seus clientes so controladas por acordos da AWS, e este
documento no integra nem modifica qualquer acordo entre a AWS e seus clientes.
Pgina 2 de 20
Amazon Web Services Arquiteturas Multicamadas Sem Servidor da AWS Novembro de 2015
Sumrio
Resumo 3
Introduo 4
Viso geral da arquitetura de trs camadas 5
A camada lgica sem servidor 6
Amazon API Gateway 7
AWS Lambda 10
A camada de dados 13
A camada de apresentao 15
Amostra dos padres de arquitetura 15
Back-end mvel 16
Site hospedado do Amazon S3 17
Ambiente de microsservios 18
Concluso 19
Colaboradores 19
Observaes 20
Resumo
Este whitepaper mostra a voc como inovaes da Amazon Web Services (AWS)
podem mudar a forma como voc projeta arquiteturas multicamadas para
padres populares, como microsservios, back-ends mveis e sites pblicos.
Arquitetos e desenvolvedores j podem usar um padro de implementao que
inclui Amazon API Gateway e AWS Lambda para reduzir os ciclos de
desenvolvimento e operaes necessrios para criar e gerenciar
operacionalmente aplicaes multicamadas.
Pgina 3 de 20
Amazon Web Services Arquiteturas Multicamadas Sem Servidor da AWS Novembro de 2015
Introduo
A aplicao multicamadas (trs camadas, n camadas, etc.) um padro
arquitetural bsico h dcadas. O padro multicamadas fornece boas diretrizes
para voc seguir, garantindo componentes de aplicaes desacoplados
e escalveis que podem receber gerenciamento e manuteno separados (muitas
vezes por equipes distintas). Aplicaes multicamadas costumam ser construdas
usando uma abordagem SOA (service-oriented architecture, arquitetura
orientada a servios) em relao ao uso de servios da web. Nessa abordagem,
a rede age como a ligao entre camadas. No entanto, existem vrios aspectos
indiferenciados da criao de uma nova camada de servios da web como parte
da sua aplicao. Boa parte do cdigo escrito dentro de uma aplicao web
multicamadas resultado direto do padro em si. Entre os exemplos esto um
cdigo que integra uma camada a outra, um cdigo que define uma API e um
modelo de dados que as camadas usam para se entenderem entre si, bem como
cdigo relacionado segurana que garante que os pontos de integrao de
camadas no sejam expostos de forma indesejada.
A integrao do Amazon API Gateway com o AWS Lambda permite que funes
de cdigo definidas pelo usurio sejam acionadas diretamente via solicitao de
HTTPS definida pelo usurio. Independentemente do volume de solicitao
exigido, tanto o API Gateway quanto o Lambda sero automaticamente
dimensionados para dar conta exata das necessidades da sua aplicao. Quando
combinados, voc pode criar uma camada para sua aplicao que lhe permita
escrever o cdigo que importa para sua aplicao e no se concentrar em vrios
outros aspectos indiferenciadores da implementao de uma arquitetura
multicamadas como criao de arquitetura para alta disponibilidade, criao de
SDKs do cliente, gerenciamento de servidor/sistema operacional (SO),
escalabilidade e implementao de um mecanismo de autorizao de cliente.
Pgina 4 de 20
Amazon Web Services Arquiteturas Multicamadas Sem Servidor da AWS Novembro de 2015
Pgina 5 de 20
Amazon Web Services Arquiteturas Multicamadas Sem Servidor da AWS Novembro de 2015
Existem vrios recursos excelentes online nos quais voc pode aprender mais
sobre o padro geral de arquitetura de trs camadas. Este whitepaper se
concentra em um padro de implementao especfico para essa arquitetura
usando o Amazon API Gateway e o AWS Lambda.
Pgina 6 de 20
Amazon Web Services Arquiteturas Multicamadas Sem Servidor da AWS Novembro de 2015
Pgina 7 de 20
Amazon Web Services Arquiteturas Multicamadas Sem Servidor da AWS Novembro de 2015
Incentivo inovao
O trabalho de desenvolvimento necessrio para construir qualquer aplicao
nova um investimento. Voc precisa justificar isso a fim de iniciar o projeto. Ao
reduzir a quantidade de investimento necessria para as tarefas de
desenvolvimento e o tempo, voc fica livre para mais experimentos e para inovar
com mais liberdade.
Pgina 8 de 20
Amazon Web Services Arquiteturas Multicamadas Sem Servidor da AWS Novembro de 2015
Segurana
Implementar a camada lgica de uma aplicao web pblica de trs camadas
como um servio da web eleva imediatamente o tpico de segurana. A aplicao
precisa garantir que somente clientes autorizados tenham acesso camada lgica
(que exposta sobre a rede). O Amazon API Gateway aborda o tpico de
segurana por formas que podem lhe dar a certeza de que o back-end seguro.
Para controle de acesso, no confie em fornecer s aplicaes do cliente strings de
chave de API estticas; elas podem ser extradas dos clientes e usadas em outros
lugares. Voc pode aproveitar diversas formas como o Amazon API Gateway
contribui para proteger a camada lgica:
Todas as solicitaes das suas APIs podem ser feitas via HTTPS, de forma
a habilitar a criptografia em trnsito.
Pgina 9 de 20
Amazon Web Services Arquiteturas Multicamadas Sem Servidor da AWS Novembro de 2015
Isso significa que suas APIs so tratadas como cidads de primeira classe,
junto com outras APIs de propriedade da AWS. As polticas do IAM podem
ser granularizadas; elas podem fazer referncia a recursos/mtodos
especficos de uma API criada usando o Amazon API Gateway.
O acesso API regido pelas polticas do IAM que voc cria fora do
contexto do cdigo de aplicao. Isso significa que voc no precisa
escrever nenhum cdigo para ser conscientizado ou aplicar esses nveis de
acesso. O cdigo no pode conter bugs nem ser explorado, caso no exista.
Autorizar os clientes a usarem a autorizao AWS Signature verso 4
(SigV4)9 e as polticas do IAM para acesso API permite que essas
mesmas credenciais restrinjam ou permitam acesso a outros servios
e recursos da AWS conforme o necessrio (por exemplo, buckets do
Amazon S3 ou tabelas do Amazon DynamoDB).
AWS Lambda
No seu cerne, o AWS Lambda permite cdigo arbitrrio gravado em qualquer
uma das linguagens compatveis (Node, baseada em JVM e Python, desde
novembro de 2015) para ser disparado em resposta a um evento. Esse evento
pode ser um dos vrios disparos programticos que a AWS disponibiliza,
chamados de origem do evento (veja as origens do evento atualmente
compatveis aqui10). Vrios casos de uso populares para o AWS Lambda giram em
torno de workflows de processamento de dados orientados por eventos, como
processamento de arquivos armazenados no Amazon Simple Storage Service
(Amazon S3)11 ou streaming de registros de dados do Amazon Kinesis12.
Pgina 10 de 20
Amazon Web Services Arquiteturas Multicamadas Sem Servidor da AWS Novembro de 2015
Quando usada em conjunto com o Amazon API Gateway, uma funo do AWS
Lambda pode existir dentro do contexto de um servio da web tpico, e pode ser
disparada diretamente por uma solicitao HTTPS. O Amazon API Gateway age
como porta da frente da sua camada lgica, mas agora voc precisa executar
a lgica por trs dessas APIs. a onde entra o AWS Lambda.
Pgina 11 de 20
Amazon Web Services Arquiteturas Multicamadas Sem Servidor da AWS Novembro de 2015
Segurana
Para executar uma funo do Lambda, ela deve ser disparada por um evento ou
servio com permisso para tal via poltica do IAM. possvel criar uma funo
do Lambda que no possa ser executada de jeito nenhum a menos que invocada
por uma solicitao do API Gateway definida por voc. Seu cdigo s ser
processado como parte do seu caso de uso vlido, definido pela API criada.
Pgina 12 de 20
Amazon Web Services Arquiteturas Multicamadas Sem Servidor da AWS Novembro de 2015
A camada de dados
Ao usar o AWS Lambda como sua camada lgica, voc ganha uma srie de opes
de armazenamento fsico de dados para sua camada de dados. Essas opes se
encaixam em duas amplas categorias: Armazenamentos de dados hospedados em
Amazon VPC e armazenamentos de dados habilitados por IAM. O AWS Lambda
tem a capacidade de se integrar com segurana aos dois.
Amazon RDS14
Amazon ElastiCache15
Amazon RedShift16
Voc pode construir funes que fazem uma consulta segura a um data
warehouse corporativo com o objetivo de criar relatrios e painis ou
recuperar resultados de consultas ad-hoc.
Pgina 13 de 20
Amazon Web Services Arquiteturas Multicamadas Sem Servidor da AWS Novembro de 2015
Amazon DynamoDB18
Amazon S319
Pgina 14 de 20
Amazon Web Services Arquiteturas Multicamadas Sem Servidor da AWS Novembro de 2015
A camada de apresentao
O Amazon API Gateway abre uma variedade de possibilidades de camada de
apresentao. Uma API HTTPS acessvel por Internet pode ser consumida por
qualquer cliente capaz de comunicao HTTPS. A lista a seguir contm exemplos
comuns cujo uso voc deveria considerar para a camada de apresentao da sua
aplicao:
Pgina 15 de 20
Amazon Web Services Arquiteturas Multicamadas Sem Servidor da AWS Novembro de 2015
Back-end mvel
Pgina 16 de 20
Amazon Web Services Arquiteturas Multicamadas Sem Servidor da AWS Novembro de 2015
Pgina 17 de 20
Amazon Web Services Arquiteturas Multicamadas Sem Servidor da AWS Novembro de 2015
Ambiente de microsservios
Pgina 18 de 20
Amazon Web Services Arquiteturas Multicamadas Sem Servidor da AWS Novembro de 2015
Concluso
O padro da arquitetura multicamadas incentiva as melhores prticas da criao
de componentes de aplicaes fceis de manter, desacoplados e escalveis.
Quando voc cria uma camada lgica na qual a integrao ocorre via Amazon API
Gateway e a computao ocorre dentro do AWS Lambda, voc est prestes a se
dar conta dessas metas, ao mesmo tempo reduzindo a quantidade de esforo para
alcan-las. Juntos, esses servios fornecem um front-end de API HTTPS para
seus clientes e um ambiente seguro dentro da VPC para executar a lgica de
negcios. Isso lhe permite aproveitar os vrios cenrios populares nos quais
possvel usar esses servios gerenciados em vez de gerenciar sozinho
a infraestrutura tpica baseada em servidor.
Colaboradores
As seguintes organizaes e pessoas contriburam para este documento:
Pgina 19 de 20
Amazon Web Services Arquiteturas Multicamadas Sem Servidor da AWS Novembro de 2015
Observaes
1 http://aws.amazon.com/api-gateway/
2 http://aws.amazon.com/lambda/
3 https://aws.amazon.com/vpc/
4 https://aws.amazon.com/cloudfront/
5 https://d0.awsstatic.com/whitepapers/DDoS_White_Paper_June2015.pdf
6 https://aws.amazon.com/api-gateway/pricing/
7 http://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-mock-
integration.html
8 http://aws.amazon.com/iam/
9 http://docs.aws.amazon.com/general/latest/gr/signature-version-4.html
10 http://docs.aws.amazon.com/lambda/latest/dg/intro-core-
components.html#intro-core-components-event-sources
11 https://aws.amazon.com/s3/
12 https://aws.amazon.com/kinesis/
13 https://aws.amazon.com/vpc/
14 https://aws.amazon.com/rds/
15 https://aws.amazon.com/elasticache/
16 https://aws.amazon.com/redshift/
17 https://aws.amazon.com/ec2/
18 https://aws.amazon.com/dynamodb/
19 https://aws.amazon.com/s3/storage-classes/
20 https://aws.amazon.com/elasticsearch-service/
21 https://aws.amazon.com/cognito/
Pgina 20 de 20