Upload
keisuke-nishitani
View
11.261
Download
0
Embed Size (px)
Citation preview
Amazon Data Service Japan K.K.
Solutions ArchitectKeisuke Nishitani(@Keisuke69)
2015.09.07
{ "Name" : "", "Twitter" : "@Keisuke69", "Profile" : { "Role" : "Solution Architect", "Customers": [ "Web Services", "Start-up" ], "Services" : [ "AWS Lambda", "Amazon API Gateway", "All Mobile Services" ] } }
1
Web
Web/APEC2 ELB Web DBRDSMulti AZEC2 EC2
etc
Web
DB
LB
API Gateway + Lambda
Lambda
API Gateway
AWS
(EC2)
S3
CloudFront
API Gateway + Lambda
JavaScript/UI
Lambda
API Gateway
AWS
(EC2)
S3
CloudFront
API Gateway + Lambda
JavaScript/UI
JavaScriptS3
CloudFront
Lambda
API Gateway
AWS
(EC2)
S3
CloudFront
API Gateway + Lambda
JavaScript/UI
JavaScriptS3
CloudFront
API API Gateway Lambda
Lambda
API Gateway
AWS
(EC2)
S3
CloudFront
API Gateway + Lambda
JavaScript/UI
JavaScriptS3
CloudFront
API API Gateway Lambda
JavaScript/iOSAndroidAPI ViewLambda
API Gateway
AWS
(EC2)
S3
CloudFront
API Gateway + Lambda
JavaScript/UI
JavaScriptS3
CloudFront
API API Gateway Lambda
JavaScript/iOSAndroidAPI View
LambdaAWS
Lambda
API Gateway
AWS
(EC2)
S3
CloudFront
API Gateway + Lambda
JavaScript/UI
JavaScriptS3
CloudFront
API API Gateway Lambda
JavaScript/iOSAndroidAPI View
LambdaAWS
API GW/LambdaEC2
Lambda
API Gateway
AWS
(EC2)
S3
CloudFront
API Gateway + Lambda
JavaScript/UI
JavaScriptS3
CloudFront
API API Gateway Lambda
JavaScript/iOSAndroidAPI View
LambdaAWS
API GW/LambdaEC2
Lambda
API Gateway
AWS
(EC2)
S3
CloudFront
AWS
EC2 EC2 EC2CodeDeployElastic BeanstalkOpsWorks
All you need is code.
AWS Lambda
AWS Lambda
AWS AWS
Lambda function JavaScriptNode.jsJava
AWS Lambda
S3
AWS LambdaAmazon S3 Bucket
1
2
3
AWS Amazon S3 Amazon Kinesis Amazon DynamoDB Streams(Preview) Amazon Cognito Amazon SNS Alexa AppKit Amazon SWF
AWS SDKAWS Mobile SDKLambda
API
API
HTML5/JS
IoT
Amazon API Gateway
Amazon API Gateway
API
AWS SigV4
AWS Lambda
Amazon API Gateway
CloudFrontDDoS
iOSAndroidJavaScriptSDK
Swagger
Request / Response
API Gateway + Lambda + Cognito
API
POST DynamoDB /users
POST / /login
POST GET /pets
GET ID /pets/{petId}
SwaggerAPI
x-amazon-apigateway-integration: type: aws uri: arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:xxxxx:function:xxxx/invocations credentials: arn:aws:iam::*:user/* httpMethod: POST requestTemplates: application/json: | { "action" : "com.amazonaws.apigatewaydemo.action.ListPetsDemoAction", "body" : $input.json('$') } responses: "default": statusCode: "200"
SwaggerAPI Amazon API Gateway Swagger Importer AWSextention
API
Internet
API Gateway
AWS Lambda Function
AWS
Amazon CloudWatch Monitoring
Amazon CloudFront lambdaHandler
Amazon S3
POST
/ DynamoDB
Amazon Cognito
/users
POST DynamoDB
Amazon Cognito
/login
Login API
Client API Gateway Backend
/login Login Action
Credentials verified
Get OpenID Token
Identity ID + Token
Get Credentials
Access Key + Secret Key +
Session Token
/login
2.
3.
1.
POST
Pet DynamoDB PetId
GET DynamoDBPet
/pets
GET Pet id Lambda functionMapping Template
DynamoDBIDPet Pet
/pets/{petId}
IAM
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [
"dynamodb:*", "execute-api:*", "lambda:*" ], "Resource": [ "*" ] } ]}
DynamoDB API Gateway Lambda
/ JSON
SDK
API
Pet{ "properties":{ "petId":{ "type":"string", "description":"The generated unique identifier for the new pet" }, "petType":{ "type":"string", "description":"Free text pet type" }, "petName":{ "type":"string", "description":"Free text pet name" }, "petAge":{ "type":"integer", "format":"int32", "description":"Age of the new pet" } }, "definitions":{ } }
SDK
API
SDK
Conclusion
EC2