php で始める aws モバイルサービス - phpカンファレンス_20150530
TRANSCRIPT
- 1. Takayuki Shimizu Solutions Architect, Amazon Data Services Japan, K.K. PHP 2015 2015. 5. 30 AWS Mobile
- 2. shimy.net Web AWS ( http://www.slideshare.net/shimy_net)
- 3. " AWS Mobile " AWS Mobile SDK AWS SDK for PHP " Amazon Cognito Identity () Sync " Amazon SNS Mobile Push "
- 4. " AWS Mobile " AWS Mobile SDK AWS SDK for PHP " Amazon Cognito Identity () Sync " Amazon SNS Mobile Push "
- 5.
- 6.
- 7.
- 8. ID ID . AWS Cloud
- 9. ID ID . AWS Cloud
- 10.
- 11.
- 12. AWS SDK for PHP
- 13. Identity Management & & & Data Pipelines Hadoop Real-time Streaming Data DevOps App Streaming E Workflow CDN (VMs, Auto-scaling & Load Balancing) (Relational, NoSQL, Caching) (VPC, DX, DNS) (Object, Block and Archival) Points of Presence E & AWS 40
- 14. AWS Mobile Amazon Cognito Kinesis DynamoDB S3 SQS SES AWS SDK for Android AWS Mobile SDK Amazon Mobile Analytics Amazon SNS Mobile Push AWS SDK for iOS AWS SDK for Unity Lambda Lambda Functions
- 15. AWS Mobile Amazon Cognito Kinesis DynamoDB S3 SQS SES AWS SDK for Android AWS Mobile SDK Amazon Mobile Analytics Amazon SNS Mobile Push AWS SDK for iOS AWS SDK for Unity Lambda Lambda Functions NoSQL , E
- 16. AWS Mobile Amazon Cognito Kinesis DynamoDB S3 SQS SES AWS SDK for Android AWS Mobile SDK Amazon Mobile Analytics Amazon SNS Mobile Push AWS SDK for iOS AWS SDK for Unity Lambda Lambda Functions NoSQL , E
- 17. AWS Mobile Amazon Cognito Kinesis DynamoDB S3 SQS SES AWS SDK for Android AWS Mobile SDK Amazon Mobile Analytics Amazon SNS Mobile Push AWS SDK for iOS AWS SDK for Unity Lambda Lambda Functions AWS SDK
- 18. " AWS Mobile " AWS Mobile SDK AWS SDK for PHP " Amazon Cognito Identity () Sync " Amazon SNS Mobile Push "
- 19. AWS Mobile SDK Android, Fire OS, iOS, Unity Amazon Cognito
- 20. AWS Mobile SDK for Unity (5/14 release) Unity AWS Unity 4.0 AWS Amazon Cognito Amazon S3 Amazon DynamoDB Amazon Mobile Analytics Coming Soon !
- 21. SDK IDE Android iOS Java NodeJS .NET PHP Python Ruby JavaScript in Browser Unity CLI Powershell IDE Eclipse Visual Studio SDK
- 22. 2 PHP AWS SDK for PHP version 3 - 2015.5.27 NEW AWS Promises
- 23. // Result $result = $s3Client->putObject([! 'Bucket' => 'your-bucket',! 'Key' => 'docs/file.pdf',! 'Body' => fopen('/path/to/file.pdf', 'r'),! ]);! ! // Result echo $result['ObjectURL'];! // Promise $promise = $s3Client->putObjectAsync([! 'Bucket' => 'your-bucket',! 'Key' => 'docs/file.pdf',! 'Body' => fopen('/path/to/file.pdf', 'r'),! ]);! ! // Result $result = $promise->wait();! ! // Result echo $result['ObjectURL'];! NEW
- 24. DynamoDB $client->createTableAsync([! 'TableName' => $table,! // Other params...! ])->then(function () use ($client, $table) {! return $client->getWaiter('TableExists', [! 'TableName' => $table,! ])->promise();! })->then(function () use ($client, $table) {! return $client->putItemAsync([! 'TableName' => $table,! 'Item' => [! // Item attributes...! ]! ]);! })->wait();! DynamoDBNoSQL Waiters ACTIVE Promise then()
- 25. " AWS Mobile " AWS Mobile SDK AWS SDK for PHP " Amazon Cognito Identity () Sync " Amazon SNS Mobile Push "
- 26. Amazon Cognito
- 27. Amazon Cognito ID Guest
- 28. ID ID AWS ID Username Password ID ID Amazon, Facebook, Twitter, Google, OpenID Connect AWS ID Amazon Cognito Identity Mobile Analytics S3DynamoDBKinesis
- 29. DynamoDB Amazon Cognito Identity Cognito ID Temp Credentials S3 Access Token Pool ID Role ARNs Temp Credentials Mobile SDK ID Kinesis Cognito ID AWS Amazon Cognito Identity
- 30. IAM AWS AWS Credentials AWS EC2S3DynamoDBKinesis S3 DynamoDB Get Delete Put
- 31. Developer Authenticated Identities DynamoDB Amazon Cognito Identity1. Login 4. OpenID Token 6. Cognito ID Temp Credentials S3 5. OpenID Token Pool ID Role ARNs 7. Temp Credentials Mobile SDK Analytics 2. GetOpenIDTokenForDeveloperIdentity() 3. OpenID Token ID UsernamePassword AWS PHP
- 32. Developer Authenticated Identities DynamoDB Amazon Cognito Identity1. Login 4. OpenID Token 6. Cognito ID Temp Credentials S3 5. OpenID Token Pool ID Role ARNs 7. Temp Credentials Mobile SDK Analytics 2. GetOpenIDTokenForDeveloperIdentity() 3. OpenID Token ID UsernamePassword AWS PHP
- 33. GetOpenIdTokenForDeveloperIdentity // Cognito Token $result = $client->getOpenIdTokenForDeveloperIdentity(array(! 'IdentityPoolId' => 'string',! 'IdentityId' => 'string',! 'Logins' => array(! 'IdentityProviderName' => 'string',! ), ! 'TokenDuration' => integer, ! ));! Returns GuzzleServiceResourceModel IdentityId => (string)! Token => (string)!
- 34. Amazon Cognito ID Guest
- 35. Amazon Cognito Sync User Data Storage and Sync Any Platform iOS/Android/FireOS k/v data Identity pool 20MB 1MB Key/Value 1024 Key Base64
- 36. SDK Amazon Cognito Sync
- 37. Amazon Cognito Sync Amazon Cognito Identity Mobile SDK Amazon Cognito Sync Store 3. Dataset Amazon Cognito Sync Amazon Cognito Cognito ID Amazon Cognito Sync Store 2. Cognito ID Temp Credentials 1. Access Token Pool ID Role ARNs
- 38. AWS Account Dataset Identity Identity Identity Dataset Dataset Identity Pool 1:n 1:n 1:n Dataset Dataset DatasetDataset Key/Value 1:n Amazon Cognito Sync
- 39. () Mobile SDK Amazon Cognito Sync Store 1. () Mobile SDK Amazon SNS Mobile Push 2. 3. Amazon SNS Mobile Push Amazon Cognito Amazon SNS Mobile Push Amazon Cognito Push Sync
- 40. Amazon Kinesis Amazon Cognito Amazon Kinesis Mobile SDK Amazon Cognito Sync Store 1. Amazon Kinesis 2. Stream Content 3. Amazon Redshift {! "identityPoolId" : "Pool Id! "identityId" : "Identity Id ! "dataSetName" : "Dataset Name! "operation" : "(replace|remove)! "kinesisSyncRecords" : [! {! "key" : "Key",! "value" : "Value",! "syncCount" : 1,! "lastModifiedDate" : 1424801824343,! "deviceLastModifiedDate" : 1424801824343,! "op": "(replace|remove)" }, ...! ],! "lastModifiedDate": 1424801824343,! "kinesisSyncRecordsURL": "S3Url",! "payloadType" : "(S3Url|Inline)",! "syncCount" : 1 ! }! Amazon Cognito Stream
- 41. Mobile SDK Amazon Cognito Sync Store 1. AWS Lambda 2. Sync Trigger Amazon Lambda 3. Amazon Cognito Events Key Value Key Value Lambda Function (Node.js)
- 42. Amazon Cognito Sync Android CognitoSyncManager Dataset Key Values cognito = new CognitoSyncManager (context,! Regions.US_EAST_1, provider);! dataset.synchronize(new SyncCallback(){..});! Dataset dataset = ! cognito.openOrCreateDataset(datasetName);! dataset.put(key, value);!
- 43. " AWS Mobile " AWS Mobile SDK AWS SDK for PHP " Amazon Cognito Identity () Sync " Amazon SNS Mobile Push "
- 44. Amazon SNS Mobile Push
- 45. (e.g. Apple, Google, Amazon)
- 46. API Apple APNS Google GCM Amazon ADM
- 47.
- 48. Amazon SNS Mobile Push
- 49. Amazon SNS Mobile Push Amazon SNS Mobile Push Apple iOS Google Android Amazon Kindle Fire Baidu Android MS Windows Phone
- 50. API 1. 2. 3. 4. (Create Platform Endpoint) 5. EndpointArn 6. EndpointArn Mobile Push Database Web ELB PHP
- 51. API 1. 2. 3. 4. (Create Platform Endpoint) 5. EndpointArn 6. EndpointArn Mobile Push Database Web ELB PHP
- 52. Endpoint $result = $client->createPlatformEndpoint(array(! 'PlatformApplicationArn' => 'string',! 'Token' => 'string',! 'CustomUserData' => 'string',! 'Attributes' => array(! 'String' => 'string',! ), ! ));!
- 53. 5. 2. EndpointArn Mobile Push 1. Web Database ELB Worker 3. Publish4. PHP
- 54. 5. 2. EndpointArn Mobile Push 1. Web Database ELB Worker 3. Publish4. PHP
- 55. Endpoint $result = $client->publish(array(! 'TopicArn' => 'string',! 'TargetArn' => 'string',! 'Message' => 'string',! 'Subject' => 'string',! 'MessageStructure' => 'string',! 'MessageAttributes' => array(! 'String' => array( ! 'DataType' => 'string',! 'StringValue' => 'string',! 'BinaryValue' => 'string', ! ),! ), ! ));!
- 56. Amazon Cognito 12 100 10 GB 10000 $0.15 $0.15 / GB Amazon SNS Mobile Push 12 100 100 $1
- 57. " AWS Mobile " AWS Mobile SDK AWS SDK for PHP " Amazon Cognito Identity () Sync " Amazon SNS Mobile Push "
- 58. AWS Amazon Cognito (Identity) AWS Identity and Access Management Amazon Cognito (Sync) Amazon Mobile Analytics AWS Lambda Amazon CloudFront (Device Detection) Amazon DynamoDB (Object Mapper) Amazon Kinesis (Recorder) Amazon SNS Mobile Push AWS Mobile SDK Amazon S3 Transfer Manager
- 59. AWS ID ID . AWS Cloud
- 60. AWS ID ID . AWS Cloud