O slideshow foi denunciado.
Seu SlideShare está sendo baixado. ×

Serverless Architecture on AWS (20151201版)

Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Carregando em…3
×

Confira estes a seguir

1 de 94 Anúncio

Mais Conteúdo rRelacionado

Diapositivos para si (20)

Quem viu também gostou (20)

Anúncio

Semelhante a Serverless Architecture on AWS (20151201版) (20)

Mais de Keisuke Nishitani (13)

Anúncio

Mais recentes (20)

Serverless Architecture on AWS (20151201版)

  1. 1. Keisuke  Nishitani Solutions  Architect Amazon  Web  Services  Japan  K.K. 2015.12.01 Serverless Architecture  on  AWS
  2. 2. 内容についての注意点 v 本資料料では2015年年12⽉月01⽇日時点のサービス内容および価格に ついてご説明しています。最新の情報はAWS公式ウェブサイ ト(http://aws.amazon.com)にてご確認ください。 v 資料料作成には⼗十分注意しておりますが、資料料内の価格とAWS 公式ウェブサイト記載の価格に相違があった場合、AWS公式 ウェブサイトの価格を優先とさせていただきます。 v 価格は税抜表記となっています。⽇日本居住者のお客様がサー ビスを使⽤用する場合、別途消費税をご請求させていただきま す。
  3. 3. ⾃自⼰己紹介 { "Name"  :  "⻄西⾕谷圭介", "Twitter"  :  "@Keisuke69", "Profile"  :  { "Role"  :  "Solutions  Architect", "Customers":  [   "Web  Services",   "Start-‐‑‒up” ], "Services"  :  [   "Amazon  API  Gateway”, "AWS  Lambda", "All  Mobile  Services” ] } }
  4. 4. クラウドは 新しい常識識 となりつつあります
  5. 5. この新しい常識識の パターン はどういったものか
  6. 6. クラウドファーストから クラウドネイティブへ
  7. 7. クラウドネイティブとは v クラウドで提供されるサービス利利⽤用を前提に構築するシ ステムおよびアプリケーション v 仮想サーバ上で1から全てを作り込むのではなく効率率率的 にアプリケーションを実装 v ビジネスの差別化ポイントへの集中 v 究極的にはビジネスに直結するアプリケーションの開発、管理理 のみを⽬目指す
  8. 8. クラウドをフル活⽤用した アーキテクチャ
  9. 9. サーバレスアーキテクチャ
  10. 10. 従来の⼀一般的なWebアーキテクチャ • Web/APサーバはEC2で構築 • ELBを配置し、オートスケーリング可能なスケーラブル構成に • Webサーバは冗⻑⾧長化 • DBはRDSによるMulti   AZ構成、もしくはEC2上で構築 • EC2等のインフラは各最低1台は常時稼働 【課題】 • インフラ構築 • インフラの運⽤用管理理 • キャパシティ • スケール • デプロイ • 耐障害性 • モニタリング • ロギング • セキュリティパッチの適⽤用 • ビジネスの差別化には直接繋がらない機能のアプリ実装 • 認証 • スロットリング • スケーラビリティの確保 • etc Web (EC2) DB (RDS) LB (ELB)
  11. 11. サーバレスアーキテクチャ Lambda API  Gateway AWSサービス クラウドサービスを活⽤用することでサーバ(EC2)を利利⽤用せずに構成するアーキテクチャ S3 CloudFront
  12. 12. サーバレスアーキテクチャ Lambda API  Gateway AWSサービス S3 CloudFront クラウドサービスを活⽤用することでサーバ(EC2)を利利⽤用せずに構成するアーキテクチャ JavaScript/ネイティブアプリによるUI実装
  13. 13. サーバレスアーキテクチャ Lambda API  Gateway AWSサービス S3 CloudFront クラウドサービスを活⽤用することでサーバ(EC2)を利利⽤用せずに構成するアーキテクチャ JavaScript/ネイティブアプリによるUI実装 JavaScriptおよび静的コンテンツはS3から配信 • CloudFront経由の配信
  14. 14. サーバレスアーキテクチャ Lambda API  Gateway AWSサービス S3 CloudFront クラウドサービスを活⽤用することでサーバ(EC2)を利利⽤用せずに構成するアーキテクチャ JavaScript/ネイティブアプリによるUI実装 JavaScriptおよび静的コンテンツはS3から配信 • CloudFront経由の配信 ロジックはAPI化 • API  Gatewayを利利⽤用 • バックエンドとしてLambdaを利利⽤用
  15. 15. サーバレスアーキテクチャ Lambda API  Gateway AWSサービス S3 CloudFront クラウドサービスを活⽤用することでサーバ(EC2)を利利⽤用せずに構成するアーキテクチャ JavaScript/ネイティブアプリによるUI実装 JavaScriptおよび静的コンテンツはS3から配信 • CloudFront経由の配信 ロジックはAPI化 • API  Gatewayを利利⽤用 • バックエンドとしてLambdaを利利⽤用 JavaScript/iOS・AndroidはAPIを呼び出し
  16. 16. サーバレスアーキテクチャ Lambda API  Gateway AWSサービス S3 CloudFront クラウドサービスを活⽤用することでサーバ(EC2)を利利⽤用せずに構成するアーキテクチャ JavaScript/ネイティブアプリによるUI実装 JavaScriptおよび静的コンテンツはS3から配信 • CloudFront経由の配信 ロジックはAPI化 • API  Gatewayを利利⽤用 • バックエンドとしてLambdaを利利⽤用 JavaScript/iOS・AndroidはAPIを呼び出し Lambdaファンクションから各AWSサービスを利利⽤用 • 認証にはCognitoを利利⽤用
  17. 17. サーバレスアーキテクチャ JavaScript/ネイティブアプリによるUI実装 JavaScriptおよび静的コンテンツはS3から配信 • CloudFront経由の配信 ロジックはAPI化 • API  Gatewayを利利⽤用 • バックエンドとしてLambdaを利利⽤用 JavaScript/iOS・AndroidはAPIを呼び出し Lambdaファンクションから各AWSサービスを利利⽤用 • 認証にはCognitoを利利⽤用 API  GW/LambdaともにEC2を利利⽤用した 別システムへのアクセスも当然可能 Lambda API  Gateway AWSサービス S3 CloudFront クラウドサービスを活⽤用することでサーバ(EC2)を利利⽤用せずに構成するアーキテクチャ
  18. 18. サーバレスアーキテクチャ(2-­Tier  Architecture) v 各クライアント向けSDKか らの直接操作 v AWSアクセスに必要な CredentialはCognitoを利利⽤用 してセキュアに取得 モバイルからダイレクトにAWSサービスを利利⽤用するアーキテクチャ Android/iOS SDK JavaScript SDK DynamoDB SNS S3 LambdaCognito Credential の取得 直接操作
  19. 19. サーバレスアーキテクチャ JavaScript/ネイティブアプリによるUI実装 JavaScriptおよび静的コンテンツはS3に保存して配 信 • CloudFront経由の配信 ロジックはAPI化 • API  Gatewayを利利⽤用 • バックエンドとしてLambdaを利利⽤用 JavaScript/iOS・AndroidはAPIを呼び出し • Viewの構築は各クライアント上で⾏行行う Lambdaファンクションから各AWSサービスを利利⽤用 API  GW/LambdaともにEC2を利利⽤用した システムへのアクセスも当然可能 Lambda API  Gateway AWSサービス クラウドサービスを活⽤用することでサーバ(EC2)を利利⽤用せずに構成するアーキテクチャ S3 CloudFront 解決される課題 不不要(各サービスが適切切にハンドリング) 不不要 インフラ構築 →  不不要 インフラの運⽤用管理理 • キャパシティ • スケール • デプロイ • 耐障害性 • モニタリング • ロギング • セキュリティパッチの適⽤用 ビジネスの差別化には直接繋がらない機能のアプリ実装 • 認証 • スロットリング • スケーラビリティの確保
  20. 20. サーバレスで 全部できます
  21. 21. サーバレスで 全部できます やりたいこと だけに集中できる
  22. 22. サーバレスで 全部できます ビジネスロジック だけに集中できる
  23. 23. サーバレスアーキテクチャのメリット アプリの開発に多くのメリット • バックエンド側のコードが減るため開発コストを最⼩小化 • バックエンド側のサーバが減るため運⽤用コストを最⼩小化 • AWSによってマネージされるため、スケーラビリティやキャパシティ、セキュ リティの⼼心配不不要 • ⾮非常にコスト効率率率化が⾼高いため、多くの場合コスト減が⾒見見込める 必要に応じてEC2も導⼊入できる安⼼心感 • 汎⽤用的なサービスでは実現の難しい、ビジネス固有の要件に関してはEC2を利利 ⽤用して実装 • EC2を利利⽤用する部分についてもCodeDeployやElastic  Beanstalk、OpsWorks等で ⾃自動化 開発者がビジネスにフォーカスできる
  24. 24. 「何をするか」 を書くだけでいい
  25. 25. 「何をするか」 を書くだけでいいAll you  need  is  code.
  26. 26. サーバレスアーキテクチャ事例例
  27. 27. 株式会社リブセンス 成功報酬型アルバイト求⼈人サイト ジョブセンス 転職クチコミサイト 転職会議
  28. 28. 画像配信 サーバ 各種DB 処理理A 処理理B 処理理C 各物件情報 提供元 これまでの構成
  29. 29. 画像配信 サーバ 各種DB 処理理A 処理理B 処理理C 各物件情報 提供元 これまでの構成 各社違うフォーマット 終わらない前段ジョブ サーバのお守り ロード時間の拡⼤大 前段ジョブに依存した 処理理内容
  30. 30. 画像配信 サーバ 各種DB 処理理A 処理理B 処理理C 各物件情報 提供元 これまでの構成 各社違うフォーマット 終わらない前段ジョブ サーバのお守り ロード時間の拡⼤大 前段ジョブに依存した 処理理内容 • 各社のフォーマットを扱うことによる『違いの吸収層』の 複雑化 • ジョブが段階を持っているのでスケールさせにくい • 前段ジョブに依存した処理理機構のため、サービス改善が⼤大 変 • サーバメンテナンスの複雑化 • バッチによるサービス内容の劣劣化
  31. 31. 各物件情報 提供元 連携サーバ 元データ Lambda 処理理C RDS 画像配信S3 CloudSearch 変換処理理A PUT 処理理D変換処理理B 書き込み 処理理 API  Gateway ⼊入⼒力力層 サービス層 ストア層 Kinesis 新アーキテクチャ
  32. 32. 各物件情報 提供元 連携サーバ 元データ Lambda 処理理C RDS 画像配信S3 CloudSearch 変換処理理A PUT 処理理D変換処理理B 書き込み 処理理 API  Gateway ⼊入⼒力力層 サービス層 ストア層 Kinesis 新アーキテクチャ • ステートレスの制約や簡易易に並列列化できるところから、 バッチ起因のサービス改善がやりやすい • API  GWを追加することで、バッチでは無い連携機能を追 加する標準化されたインターフェースを定義できる • 個別の連携処理理・共通の処理理・ストア処理理、それぞれに ついて簡単にスケールを適切切にできる • リアルタイム処理理への移⾏行行が簡単 https://speakerdeck.com/takesinoda/kinesis-­woshi-­tutasutorimingunabatutishi-­xing-­ji-­pan-­falseshi-­zhuang
  33. 33. VidRoll 課題 • EC2の管理理が難しくなりつ つあった • ITインフラではなくビジネ スへのフォーカスが必要 解決⽅方法 • プレイヤーがAPI  Gateway 経由でLambdaを実⾏行行 • 動画のリアルタイム変換に も利利⽤用 ベネフィット • ⽣生産性が向上し、収益が10 倍になっても、エンジニア の追加なし
  34. 34. easy ten Mobile app that helps you learn   10 new,  foreign words a day Users  have  learned 170  000  000+ new words 1  200 000+ downloads • Featured in 85+ countries • Top 5 grossing apps overall (Russia) • Top 8 grossing apps overall (Brazil)
  35. 35. スクリーンショット
  36. 36. これまでのアプローチ v モノリシックなアプリを複数のEC2インス タンス上で稼働 v 複雑なデプロイ。⼀一⾏行行の変更更でも全体の再 デプロイが必要 v スケーラビリティ/俊敏性と新機能のバラ ンスを取る必要があり頻繁なリリースが できない
  37. 37. Lambda consumer S3 Mobile   Analytics DynamoDB SQS Amazon   EMR Amazon   Cognito Amazon   Kinesis Mobile app Amazon   Redshift Lambda interface S3 dump DynamoDB log Microservice Core
  38. 38. サンプル:Real-­Time  Stream  Processing Amazon  Kinesis AWS  Lambda Amazon  Redshift Amazon  SNS New  records   available
  39. 39. サンプル:Real-­Time  DB  Triggers  Workflow New  data   available Amazon  DynamoDB AWS  Lambda Amazon   DynamoDB Amazon   Redshift
  40. 40. サンプル:Real-­Time  Message  Handling New  message   published Amazon  SNS AWS  Lambda Amazon  SNS Amazon  Kinesis
  41. 41. サンプル:Audit  CloudTrail Activity AWS   Lambda Amazon  S3Amazon  CloudTrail Amazon  SNS AWS  IAM
  42. 42. サンプル:Automated  Infrastructure  Management AWS   Lambda Amazon   SNS Amazon   CloudWatch  Alarm ec2 runInstance ecs startTask beanstalk updateApp kinesis splitShard Any  API  call https://aws.amazon.com/blogs/compute/scaling-­amazon-­ecs-­services-­automatically-­using-­amazon-­cloudwatch-­and-­aws-­lambda/
  43. 43. サンプル:Forward  AWS  Events  to  External Endpoints http://danilop.net/aws/2015/07/26/sns2ifttt/ |      https://github.com/danilop/SNS2IFTTT AWS   Lambda Amazon   SNS IFTTT  via   the  Maker   channel Amazon   CloudWatch  Events Auto  Scaling
  44. 44. サンプル:Deploy  Lambda  Functions https://aws.amazon.com/blogs/compute/dynamic-­github-­actions-­with-­aws-­lambda/ AWS   Lambda Amazon   SNS GitHub  Repo lambda   createFn  ()
  45. 45. Keyとなるサービス①
  46. 46. AWS  Lambda
  47. 47. クラウドネイティブ時代の コンピュートサービス
  48. 48. Lambdaファンクション:  ステートレス、トリガーベースのコード実⾏行行 AWS  Lambda あらゆるスケールで⾼高性能 費⽤用対効果が⾼高く効率率率的 インフラ管理理不不要 使った分だけの⽀支払い リクエスト量量に応じて⾃自動的に キャパシティ調整 100ms単位のコンピュート課⾦金金 ⾃自⾝身のコードを持ち込み 標準的な⾔言語でコードを実⾏行行 スレッド、プロセス、ファイルや シェルスクリプトも利利⽤用可能 インフラではなくビジネスロジックに 集中可能 コードをアップロードするだけで、 Lambdaが全てをハンドリング
  49. 49. AWS  Lambda インフラを⼀一切切気にすることなくアプリケーションコード を実⾏行行できるコンピュートサービス • 実⾏行行基盤は全てAWSが管理理 • AWSサービスと連携させることで簡単にイベントドリブンなア プリケーションを実装可能 • コード実⾏行行時間に対しての課⾦金金でありコスト効率率率が⾮非常に⾼高い • VPC内のリソースへのアクセスも近⽇日サポート Lambda  function • JavaScript(Node.js)およびJava、Pythonで記述 • サードパーティライブラリも利利⽤用可能
  50. 50. AWS  Lambdaの利利⽤用例例 S3に画像がアップロードされたときにサムネイルの⽣生成や リサイズを実⾏行行 AWS  LambdaAmazon  S3  Bucket  イベント 元画像 サムネイル画 像 1 2 3
  51. 51. イベントソース 現時点では以下のAWSサービスをサポート • Amazon  S3 • Amazon  Kinesis • Amazon  DynamoDB Streams(Preview) • Amazon  Cognito • Amazon  SNS • Alexa AppKit • Amazon  SWF • Amazon  SES  inbound  mail • Amazon  CloudWatch Logs • Amazon  Connected  Home  (Preview) • AWS  IoT
  52. 52. Keyとなるサービス②
  53. 53. Amazon  API  Gateway
  54. 54. 時代はAPI
  55. 55. APIの重要性 提供するサービスのエコシステムを形成できる システム間連携 • 外部サービスとの連携やその逆も 疎結合(マイクロサービス) • フロントエンドとバックエンドのデカップリング フロントエンドの多様化 • HTML5/JS • モバイルアプリ IoTによる接続されるデバイスの多様化
  56. 56. Amazon  API  Gateway 複数バージョンや複数環境 へのデプロイを管理理 APIの定義とホスティング クラウド上のリソースへのアクセ ス認証におけるAWS  IAMの活⽤用 AWSのAuthを活⽤用 バックエンド保護のため のDDoS対策やリクエス トのスロットリング ネットワークトラフィックの管理理
  57. 57. Amazon  API  Gateway 複数バージョンとステージ APIキーの作成と配布 リクエスト時におけるAWS  SigV4の利利⽤用 リクエストのスロットリングとモニタリング バックエンドとしてAWS  Lambdaが利利⽤用可能
  58. 58. Amazon  API  Gateway レスポンスをキャッシュ可能 CloudFrontを利利⽤用したレイテンシの軽減とDDoS対策 iOS、AndroidとJavaScript向けSDKの⾃自動⽣生成 Swaggerのサポート Request  /  Responseにおけるデータ変換
  59. 59. Method  and  integration
  60. 60. 実装例例
  61. 61. 利利⽤用するサービス Amazon  API  Gateway AWS  Lambda Amazon  Cognito Amazon  DynamoDB APIのホストと リクエストルーティン グ ビジネスロジックの 実⾏行行 ⼀一時的なAWSクレデ ンシャルの⽣生成 データストア
  62. 62. API構造(リソースとモデル) • POST –DynamoDBに新規ユーザを 登録 /users • POST –ユーザ名/パスワードを受 け取り認証 /login • POST –新しいペットを作成 • GET –ペットのリストを取得 /pets • GET –特定IDのペットを取得/pets/{petId} 認証不不要 要認証
  63. 63. (参考)Swaggerを利利⽤用したAPI定義 • Swaggerを利利⽤用してAPI設定を全て⾏行行うことが可能 • AWS固有のパラメータをサポートするextention • Amazon  API  Gateway  Swagger  Importerを利利⽤用したAPI 定義の作成と更更新、デプロイ
  64. 64. Method  Response Integration  Request Method  Request Method (参考)Swaggerを利利⽤用したAPI定義 /users: post: summary: Registers a new user consumes: - application/json produces: - application/json parameters: - name: NewUser in: body schema: $ref: '#/definitions/User’ x-amazon-apigateway-integration: type: aws uri: arn:aws:apigateway:us-east-1:lambda:path/2015-03-31... credentials: arn:aws:iam::964405213927:role/pet_store_lambda_invoke ... responses: 200: schema: $ref: '#/definitions/RegisterUserResponse'
  65. 65. Unauthenticated APIコールの流流れ Mobile  apps AWS  Lambda lambdaHandler (アプリ) Register Login API  Gateway Authenticated Mobile  apps AWS  Lambda lambdaHandler (アプリ) ListPets GetPet API  Gateway Assume   Role CreatePet Sigv4 Invoke  with   caller  credentials Authorized   by  IAM Cognito DynamoDB
  66. 66. HTTPステータスコード Register  action Login  action Create  Pet  action Get  Pet  action BadRequestException BAD_REQUEST   +   Stack  Trace InternalErrorException INTERNAL_ERROR   +   Stack  Trace lambdaHandler Amazon  API   Gateway responses: "default": statusCode: "200" "BAD.*": statusCode: "400" "INT.*": statusCode: "500"
  67. 67. ユーザ登録とログイン処理理 • POST • ユーザ名/パスワードを受け取る • パスワードを暗号化し、DynamoDBにユー ザアカウントを保存 • Amazon  Cognitoを呼び出してクレデンシャ ルを⽣生成 • ユーザとクレデンシャルをレスポンス /users • POST • ユーザ名とパスワードを受け取る • DynamoDBにあるデータとマッチングして ユーザを認証 • Amazon  Cognitoを呼び出してクレデンシャ ルを⽣生成 • テンポラリのクレデンシャルを返却 /login
  68. 68. Amazon  Cognito プロバイダをまたがって認 証されたユーザとゲスト ユーザを管理理 アイデンティティ管理理 クロスデバイス、クロスプ ラットフォームでユーザ データを同期 データ同期 モバイルデバイスから AWSサービスへのセキュ アなアクセス セキュアなAWSアクセス
  69. 69. クレデンシャルについて 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
  70. 70. リソース • POST • Petモデルを受け取る • DynamoDBに保存 • 新規PetIdを返却 • GET • DynamoDBに保存されているPetのリスト を返却 /pets • GET • Pet  idをパスから読み取る • Lambda  functionへパスパラメータをパス (Mapping  Templateを利利⽤用) • DynamoDBから該当IDのPet情報を取得 • Petのモデルを返却 /pets/{petId}
  71. 71. 取得したクレデンシャルの利利⽤用
  72. 72. IAMロール例例 { "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" ] } ] } 以下のサービスへのア クセスを許可 • DynamoDB • API  Gateway • Lambda 特定リソースのみアク セスを許可
  73. 73. モデル リクエスト/レスポンスで扱われるデータのスキーマを定義 したもの • テンプレートとマッピングして使う • JSONスキーマで定義 モデルの情報を元にSDKを⽣生成 API内で複数メソッドをまたがってモデルを再利利⽤用可
  74. 74. 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":{ } } モデルはリソースごとに定義する • 同⼀一リソースの全てのメソッドで利利⽤用 する 各メソッドのリクエストとレスポ ンスで異異なるモデルを利利⽤用するこ とも可能 • フォーマット変換など
  75. 75. モデル情報を元にしたSDK⽣生成 API定義から⾃自動で⽣生成 • 対象プラットフォームを選 択するだけ • 全メソッド 名前を元に⽣生成 ネストされたアイテムは親モ デルの名前を引き継ぐ
  76. 76. 1クリックでSDKを⽣生成
  77. 77. SDK⽣生成のベネフィット 以下を⾃自動で実施: • AWS  signature  version  4を利利⽤用したAPIコールの署名 • エクスポーネンシャルバックオフによるスロットリング されたリクエストのハンドリング • モデルオブジェクトに対するリクエスト/レスポンスの マーシャリング/アンマーシャリング
  78. 78. 最後に
  79. 79. JAWS • 有志が作成したサーバレスなWeb、モバイルアプリケー ションを構築するためのフレームワーク • ユーザの⼊入⼒力力内容を元に必要なCFテンプレートを⾃自動⽣生成 • LambdaファンクションのScaffoldと各種定義を⾃自動⽣生成 • デプロイするとAPI Gatewayのエンドポイント、リソースを ⽣生成し、対応するLambdaファンクションを紐紐付け • CLIとして提供 • AWSのオフィシャルツールではない https://github.com/jaws-­framework/JAWS
  80. 80. AWS  Mobile  Hub (BETA)
  81. 81. AWS  Mobile  Hub  (Beta) 1.  単⼀一の統合されたコンソール 2.  事前に⽤用意された機能群 3.  サービスを⾃自動でプロビジョニング 4.  ⾃自動⽣生成されたアプリケーション つまり、数分でAWS上にアプリを構築
  82. 82. AWS  Mobile  Hub  (Beta)
  83. 83. プロジェクトの作成と機能の追加
  84. 84. ユーザがどのようにサインインするか設定: • サインインなし、オプショナルもしくは必須 サインインプロバイダを設定: • Facebook  (Google,  Twitter,  Amazon  etc) • 独⾃自のシステム(認証基盤) クイックスタート⽤用アプリにサインイン画⾯面 を追加 Powered  by  Amazon  Cognito Identity   例例:User  Sign-­in(ユーザサインイン)
  85. 85. アプリへのプッシュ通知 • iOS/Android • 1:1  もしくはトピック Quickstart App  demonstrates  features クイックスタートアプリでは以下の機能 をデモ • 通知のEnable/Disable • SNSを使ったトークンの⾃自動登録 • サブスクライブするトピックの選択 Powered  by  Amazon  SNS 例例:Push通知
  86. 86. スターターアプリのダウンロード
  87. 87. AWS  Mobile  Hub(BETA) •AWSを使ったモバイルアプリの開発を簡単に • ユーザサインインといった典型的ユースケースごとの スターターコードを提供 • 関連サービスの設定と構築を⾃自動で • AWS  Management  Consoleから利利⽤用可能 • 現在はUS-­East-­1のみ、東京リージョンと ダブリンは近くサポート予定 • AWS  Mobile  Hub⾃自体のご利利⽤用は無料料 ※利利⽤用する各サービスの費⽤用はかかります
  88. 88. Conclusion まずはサーバレスでの実装を検討 • ビジネスの差別化に繋がりにくいにも 関わらず⼿手間ヒマのかかる箇所はサー ビスを利利⽤用してオフロード マネージドサービスだけでは難しい箇 所はEC2を使って実装 限りあるエンジニアリングリソースは ビジネスの差別化に集中
  89. 89. 参考資料料 v Amazon  API  Gateway  ドキュメント(⽇日本語あります) http://docs.aws.amazon.com/ja_jp/apigateway/latest/develope rguide/welcome.html v AWS  Lambdaドキュメント(⽇日本語あります) http://docs.aws.amazon.com/ja_jp/lambda/latest/dg/welcome. html v AWS  Lambdaアドベントカレンダー http://qiita.com/advent-­calendar/2015/lambda
  90. 90. 参考資料料 v API  Gateway  Secure  Pet Store https://github.com/awslabs/api-­gateway-­secure-­pet-­store v Keynote  Videos  on  YouTube v Breakout  Sessions  Videos  on  YouTube v Architecture v Big  Data  &  Analytics v Compute v Databases v Developer  Tools v DevOps v Gaming v IT  Strategy  &  Migration v Mobile   Developer  &  IoT v Networking v Security  &  Compliance v Spotlight v Storage  &  Content  Delivery v Breakout  Sessions  Slides  on  SlideShare   v Breakout  Sessions  Audios  on  iTunes  Podcast
  91. 91. Thank  you!

×