Construya APIs seguras y escalables

Post on 16-Apr-2017

627 views 0 download

Transcript of Construya APIs seguras y escalables

© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

Jesús Bonequi Olvera, Solutions Architect Latinoamérica

Abril 2016, Bogotá

Construya APIs seguras y escalables

Utilizando Amazon API Gateway y AWS Lambda

¿Qué esperar de la sesión?

1. Un Nuevo modelo de desarrollo

completamente administrado

2. Declarar un API con Amazon API Gateway

3. Crear la lógica de la aplicación con AWS

Lambda

4. Autorizar el uso con AWS IAM

5. Consumir el Micro servicio

Managed

Un nuevo modelo completamente administrado

InternetApps

Móviles

Funciones

AWS Lambda

AWS

API Gateway

cache

Endpoints on

Amazon EC2

Cualquier otro

endpoint accesible

públicamente

Amazon

CloudWatch

Amazon

CloudFrontAPI

Gateway

API GatewayOtros

Servicios de

AWS

Funciones

AWS Lambda

Ideas Claves

AWS Lambda y Amazon API Gateway significa que no

deben administrar la infraestructura y nosotros la

escalamos por usted

La Seguridad es muy importante y compleja, utilice de

mejor manera AWS Identity and Access Management

Podemos consumar los recursos sin el uso de sdk y

APIs en el cliente

Los servicios que vamos a utilizar

Amazon API Gateway AWS Lambda Amazon DynamoDB

Hospeda las APIs y

en ruta las llamadas a

las APIs

Ejecuta la lógica de la

aplicaciónAlmacenamiento de

datos

Construyamos una app..

calculadora

En un modelo tradicional. ¿Qué necesitamos?

Amazon EC2

Apache

Virginia

US East ‘1

VPC Calculadora

SQL master

Amazon EC2

Apache

US East ‘2

SQL slave

Objetivos de la App

1. Crear una calculadora simple

2. Sin utilizar API en el lado del cliente

3. Almacenar los datos en un tabla dynamodb

4. Consulta la ultima operación realizada

5. Escalable a cualquier numero de usuarios

6. Sin uso de infraestructura

7. El mejor costo / beneficio

¿Qué es lo nuevo en este modelo?

La aplicación puede utilizar muchos servidores y no

queremos mantenerlos

La autorización de las APIs la dejamos en IAM. Solo

debemos enfocarnos en los roles de IAM.

Sin administración de actualizaciones en el lado del

cliente

Definición del API

Vista rápida de Amazon API Gateway

Administre las

implementaciones de

múltiples versiones y

ambientes

Defina y hospede las APIs

Utilice Identity and

Access Management para

autorizar el acceso a los

recursos de la nube

Utilice la autenticación de AWS

Protección de DDoS y

throttling de peticiones

para salvaguardar su

back end

Administre el trafico de red

Métodos e integración

Solicitando routing y manejo de

excepciones

Alto rendimiento a cualquier escala,

efectiva en costos y eficiente

Sin Infraestructura que

administrar

Pague únicamente por lo que utilice,

AWS Lambda automáticamente se

ajuste a la capacidad que usted

solicitó, compre computo en

incrementos de 100ms

Traiga su propio

código

Las funciones Lambda: Sin estado, ejecución de código trigger-based

Ejecute el código en el lenguaje

que usted elige. Utilice procesos,

threads, archivos y scripts shells

normalmente

Enfóquese en la lógica del negocio

y no en la infraestructura. Subo su

código y AWS Lamdba se encarga

de todo lo demás

Vista rápida de AWS Lambda

El Lambda handler

lambdaHandler

en nuestra

Fuente NodeJS

Base de

datos

Resultados

Amazon API

Gateway

Integration request

Suma

Resta

Multiplica

Divide

Guarda

Resultados

Los mapping templates son herramientas poderosas

Aprenda mas de los mapping templates en nuestros documentos

http://amzn.to/1L1hSF5

Autorizando las llamadas API

Creando el rol

Utilizando la consola

El rol de IAM define los accesos

{

"Version": "2012-10-17",

"Statement": [

{

"Effect": "Allow",

"Action": [

"dynamodb:GetItem",

"dynamodb:PutItem",

"dynamodb:Scan",

"lambda:InvokeFunction",

"execute-api:invoke"

],

"Resource": [

"arn:aws:dynamodb:us-east-1:xxxxxx:table/test_pets",

"arn:aws:lambda:us-east-1:xxxxx:function:PetStore”,

"arn:aws:execute-api:us-east-1:xxxx:API_ID/*/POST/pets"

]

}

]

}

El rol permite llamadas a:

• DynamoDB

• API Gateway

• Lambda

Demostración

¿Qué hemos aprendido?

AWS Lambda + Amazon API Gateway significa que no tienen

infraestructura que administrar – nosotros la escalamos por usted

La Seguridad es muy importante y compleja – obtenga lo

mejor de AWS Identity and Access Management

Sin manejo de APIs del lado del cliente

¿Preguntas?

Muchas Gracias@jesusbo