49
クラウドネイティブ化する未来 Amazon Data Service Japan K.K. Solutions Architect Keisuke Nishitani(@Keisuke69) 2015.09.07

クラウドネイティブ化する未来

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