モバイル開発を支えるAWS Mobile Services

42
モバイル開発をえる AWS Mobile Services 2015.03.22 Amazon Data Service Japan, Solutions Architect Keisuke Nishitani(@Keisuke69)

Transcript of モバイル開発を支えるAWS Mobile Services

  • AWS Mobile Services

    2015.03.22Amazon Data Service Japan, Solutions Architect Keisuke Nishitani(@Keisuke69)

  • Twi$erJaws Days

    @jawsdays

    3

    @awscloud_jp

    #jawsdays

    1

    AWSTwi0erJAWS DAYSTwi0er

    ??

    17:00 9:0016:50Tweet

    Kindle JAWS T

    Mo Band

    JAWS T

    Step 1

    Step 2

    Step 3

    Jaws DaysOK

    JAWS T

  • ! @Keisuke69

    ! WebEC

  • ID

    Undierentiated Heavy Lifting

    ID

    Push

    / And More.

    AWS Cloud Infrastructure

  • AWS Mobile Services

    Amazon Cognito

    Kinesis Connector DynamoDB Mapper S3 Transfer Mgr SQS Client SES Client

    ()

    AWS Mobile SDK, API Endpoints, Management Console

    SDK

    Amazon Mobile Analytics Amazon SNS Mobile Push

    AWS Lambda

  • ID

    Your Mobile App

  • Amazon Cognito(Identity Broker)

    AWS Identity and Access Management

    Amazon Cognito (Sync)

    Amazon Mobile Analytics

    Amazon Mobile Analytics

    Amazon S3Transfer Manager

    Amazon CloudFront(Device Detection)

    Amazon DynamoDB(Object Mapper)

    Amazon Kinesis(Recorder)

    Amazon SNS Mobile Push

    Your Mobile App

    AWS Mobile SDK

  • Amazon Cognito(Identity Broker)

    AWS Identity and Access Management

    Amazon Cognito (Sync)

    Amazon Mobile Analytics

    Amazon Mobile Analytics

    Amazon S3Transfer Manager

    Amazon CloudFront(Device Detection)

    Amazon DynamoDB(Object Mapper)

    Amazon Kinesis(Recorder)

    Amazon SNS Mobile Push

    Your Mobile App

    AWS Mobile SDK

  • Amazon Cognito

    ! ID

    ID ID

    ID AWS SDK

    !

    Key/Value

  • Cognito IdentityAWS

    Amazon Cognito (AWS IAM / STS)

    Java Python (boto)

    PHP

    .NET Ruby

    iOS Android

    JavaScript

    JavaScript

  • Amazon Cognito(Identity Broker)

    AWS Identity and Access Management

    Amazon Cognito (Sync)

    Amazon Mobile Analytics

    Amazon Mobile Analytics

    Amazon S3Transfer Manager

    Amazon CloudFront(Device Detection)

    Amazon DynamoDB(Object Mapper)

    Amazon Kinesis(Recorder)

    Amazon SNS Mobile Push

    Your Mobile App

    AWS Mobile SDK

  • Amazon SNSCross-platform

    Mobile Push

    Internet

    Apple APNS

    Google GCM

    Amazon ADM

    Windows WNS and MPNS

    Baidu CP

    Amazon SNS Mobile Push

    ! ! 1000

    Android Phones and Tablets

    Apple iPhones and iPads

    Kindle Fire Devices

    Android Phones and Tablets in China

    iOS

    Windows Desktop and Windows Phone Devices

  • Amazon Cognito(Identity Broker)

    AWS Identity and Access Management

    Amazon Cognito (Sync)

    Amazon Mobile Analytics

    Amazon Mobile Analytics

    Amazon S3Transfer Manager

    Amazon CloudFront(Device Detection)

    Amazon DynamoDB(Object Mapper)

    Amazon Kinesis(Recorder)

    Amazon SNS Mobile Push

    Your Mobile App

    AWS Mobile SDK

  • Amazon Mobile Analytics

    !

    ! Amazon Mobile SDK CSVS3/Redshift

    ! 60 /

    ! OSAndroid, iOS, FireOS AWS SDK for JavaScript

  • Amazon Cognito(Identity Broker)

    AWS Identity and Access Management

    Amazon Cognito (Sync)

    Amazon Mobile Analytics

    Amazon Mobile Analytics

    Amazon S3Transfer Manager

    Amazon CloudFront(Device Detection)

    Amazon DynamoDB(Object Mapper)

    Amazon Kinesis(Recorder)

    Amazon SNS Mobile Push

    Your Mobile App

    AWS Mobile SDK

  • AWS Mobile SDK

    !

    !

    ! Android, iOS, Fire OS, Unity, Xamarin

    ! Mobile OS

    ! Amazon DynamoDB Object Mapper Amazon S3 Transfer Manager Amazon Kinesis Recorder

    !

  • DynamoDB ClientAndroid

    AWSCredentials credentials = AmazonSharedPreferencesWrapper

    .getCredentialsFromSharedPreferences(this.sharedPreferences);

    AmazonDynamoDBClient ddb = new AmazonDynamoDBClient(credentials);

    DynamoDBMapper mapper = new DynamoDBMapper(ddb);

  • Android@DynamoDBTable(tableName = "TestUserPereference")

    public static class UserPreference {

    private int userNo;

    private String firstName;

    @DynamoDBHashKey(attributeName = "userNo")

    public int getUserNo() {

    return userNo;

    }

    public void setUserNo(int userNo) {

    this.userNo = userNo;

    }

    @DynamoDBAttribute(attributeName = "firstName")

    public String getFirstName() {

    return firstName;

    }

    public void setFirstName(String firstName) {

    this.firstName = firstName;

    }

    }

  • /Android

    // UserPreference userPreference = new UserPreference();

    userPreference.setUserNo(i);

    userPreference.setFirstName(Constants.getRandomName());

    userPreference.setLastName(Constants.getRandomName());

    mapper.save(userPreference);

    // DynamoDBScanExpression scanExpression = new DynamoDBScanExpression();

    PaginatedScanList result = mapper.scan(

    UserPreference.class,

    scanExpression);

  • S3/Android

    //S3 TransferManager TransferManager transferManager = new TransferManager(getCredProvider(this));

    // Download download = transferManager.download(BUCKET_NAME, mKey, file);

    // Upload upload = transferManager.upload(BUCKET_NAME, fileName, file);

  • AWS Mobile SDK for Unity

    ! UnityPlugin .NET

    ! Developer Preview Amazon Cognito Amazon S3 Amazon DynamoDB Amazon Mobile Analytics

    ! Unity4.0

  • AWS Mobile SDK for Xamarin

    ! XamarinPlugin https://github.com/awslabs/aws-sdk-xamarin

    ! Amazon Cognito Amazon S3 Amazon DynamoDB Amazon SNS Mobile Push

  • AWS Lambda

    ! Compute LambdaAWS

    EC2OS

    EC2 AWS

    S3/ DynamoDB Table Kinesis

    ! Lambda function JavaScriptNode.js

  • 2-Tier Architecture

  • 2-Tier Architecture

    ! AWS SDK AWS

    !

  • 2-Tier Architecture

  • 2-Tier Architecture

  • 2-Tier Architecture

    ! EC2*

    ! EC2

    ! * EC2

  • /RSS

  • 1

    ! DynamoDBS3HTML+JSS3Web

    3. FB

    Cognito

    DynamoDB

    S3

    1. HTTPS

    2. HTMLJS

    JavaScriptSDK

    4.

  • 2: RSS

    ! ! DynamoDB

    App with AWS Mobile

    SDK

    JavaScriptSDK

    S3

    1. HTTPS

    2. HTMLJS

    Cognito Identity

    3. FBGoogleID

    Cognito Sync

    4. MobileSDK

    5. Push/Pull

  • 3

    ! /DynamoDB! Lambda

    1. FB

    Cognito

    DynamoDBApp with AWS Mobile SDK

    2.

    4. DynamoDB

    3. Lambda function

    Lambda

  • Followers

    4

    4. DynamoDB-

    1. FB

    6. Push-

    Cognito

    Mobile Analytics

    DynamoDB

    S3

    SNS7. Analytics

    3.

    2. S3

    5. SNS

    App with AWS Mobile

    SDK

  • !

    ! EC2

    !

  • 2015.06.02-03 Save the Date