Este documento presenta una sesión sobre cómo construir APIs seguras y escalables utilizando Amazon API Gateway y AWS Lambda. Explica cómo declarar una API con API Gateway, crear la lógica de aplicación con Lambda, autorizar el acceso con IAM y consumir el microservicio, sin necesidad de administrar infraestructura. También incluye una demostración práctica de cómo crear una calculadora simple que almacena datos en DynamoDB y es escalable sin límites de usuarios.
2. ¿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
3. 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
CloudFront
API
Gateway
API Gateway
Otros
Servicios de
AWS
Funciones
AWS Lambda
4. 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
5. 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ón
Almacenamiento de
datos
7. 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
8. 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
9. ¿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
11. 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
14. 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
15. El Lambda handler
lambdaHandler
en nuestra
Fuente NodeJS
Base de
datos
Resultados
Amazon API
Gateway
Integration request
Suma
Resta
Multiplica
Divide
Guarda
Resultados
16. Los mapping templates son herramientas poderosas
Aprenda mas de los mapping templates en nuestros documentos
http://amzn.to/1L1hSF5
19. 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
21. ¿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