Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Morning Session - AWS Serverless Ways

549 views

Published on

IVS CTO Night & Day 2016 Winter powered by AWSのDAY1モーニングセッションで使用した発表資料です

Published in: Technology
  • Be the first to comment

Morning Session - AWS Serverless Ways

  1. 1. 1 AWS Serverless Ways 2016.12.06 Akihiro Tsukada
  2. 2. 2 Who am I 塚⽥ 朗弘 – Akihiro Tsukada Solutions Architect Startups モバイルニンジャ 髪型は尖っているが 発⾔が尖っていない
  3. 3. 3 About this session AWSが考えるサーバレスとは何かを理解するための セッションです API Gatewayを使った具体的な設計ノウハウとか Tipsなどではありません
  4. 4. 4 Agenda Serverless Introduction Serverless is & isnʼt Supported by AWS Serverless Anti-Patterns
  5. 5. 5 Serverless Introduction
  6. 6. 6 3-tier Web App プレゼンテーション層 ロジック層 データストア層 Webサーバ/アプリサーバブラウザ/モバイル データベース
  7. 7. 7 3-tier on AWS AP (EC2) DB (RDS) LB (ELB) Web (EC2) Static Contents (S3) ブラウザ/モバイル CDN (CloudFront)
  8. 8. 8 3-tier on AWS AP (EC2) DB (RDS) LB (ELB) Web (EC2) Static Contents (S3) ブラウザ/モバイル CDN (CloudFront)
  9. 9. 9 There's a lot of undifferentiated heavy lifting - Jeff Bezos, 2006
  10. 10. 10 付加価値を ⽣まない重労働
  11. 11. 11 サーバレススタックによる置き換え ブラウザ/モバイル API Gateway AWS Lambda DynamoDB etc S3CloudFront
  12. 12. 12 サーバレススタックによる置き換え ブラウザ/モバイル API Gateway AWS Lambda DynamoDB etc S3CloudFront AWSによるマネージ (フルマネージド)
  13. 13. 13 “マネージドサービス” 電源・ネットワーク ラッキング HWメンテナンス OSパッチ ミドルウェアパッチ 定形運⽤設計 スケールアウト設計 ミドルウェア導⼊ OS導⼊ アプリケーション作成 オンプレミス 独⾃構築 on EC2 AWSマネージドサービス お客様が担当する作業 AWSが提供するマネージド機能 電源・ネットワーク ラッキング HWメンテナンス OSパッチ ミドルウェアパッチ 定形運⽤設計 スケールアウト設計 ミドルウェア導⼊ OS導⼊ アプリケーション作成 電源・ネットワーク ラッキング HWメンテナンス OSパッチ ミドルウェアパッチ 定形運⽤設計 スケールアウト設計 ミドルウェア導⼊ OS導⼊ アプリケーション作成
  14. 14. 14 All You Need Is Code
  15. 15. 15 Serverless is & isn’t
  16. 16. 16 サーバレススタック ブラウザ/モバイル API Gateway AWS Lambda DynamoDB etc S3CloudFront AWSによるマネージ (フルマネージド)
  17. 17. 17 Serverless = API Gateway / Lambda?
  18. 18. 18 Serverless is not only API Gateway / Lambda
  19. 19. 19 Serverless = No servers to manage and scale
  20. 20. 20 Some of the serverless offerings by AWS Amazon Kinesis Amazon CloudWatch Amazon API Gateway Amazon DynamoDB AWS IoT Amazon Cognito Amazon SQS AWS Lambda Amazon Machine Learning Amazon S3 Amazon Mobile Analytics Amazon Elastic Transcoder AWS Step Functions AWS CodeBuild Amazon Athena Amazon Pinpoint
  21. 21. 21 Amazon Cognitoの例 認証と認可を司るモバイル/ブラウザアプリ向け サービス Cognito User Poolsは数億ユーザ規模までスケールする 管理不要なユーザデータベース ユーザの管理基盤のみが、拡張可能なマイクロサービスとして 提供されている Federated Identities, Syncも強⼒
  22. 22. 22 mobile client Amazon Cognitoの例 Cognito 以前のユーザサインイン Users table Elastic Load Balancing instances
  23. 23. 23 mobile client Amazon Cognitoの例 Cognito の利⽤ Amazon Cognito
  24. 24. 24 Amazon Pinpointの例 re:Invent 2016で発表 モバイルプッシュ通知の送信先を動的にセグメンテー ション可能 送信後の開封率や各種解析データを取得可能
  25. 25. 25 Amazon Pinpointの例 Pinpoint以前の セグメントプッシュ通知 Amazon SNS mobile client instances queue RDS DB instance instance
  26. 26. 26 Amazon Pinpointの例 Pinpointの利⽤ mobile client instance
  27. 27. 27 AWS Step Functionsの例 re:Invent 2016で発表 複数のLambdaファンクションによる処理のステップを 管理するためのフルマネージドサービス JSONでステートマシンを定義
  28. 28. 28 AWS Step Functionsの例 Step Functions以前の状態管理 Amazon DynamoDB AWS Lambda queue queue AWS Lambda AWS Lambda queue AWS Lambda
  29. 29. 29 AWS Step Functionsの例 { "Comment": "An example.", "StartAt": "FirstState", "States": { "FirstState": { "Type": "Task", "Resource":"arn:aws:lambda…", "Next": "ChoiceState" }, "ChoiceState": { "Type" : "Choice", …
  30. 30. 30 Serverless = No servers to manage and scale
  31. 31. 31 There's a lot of undifferentiated heavy lifting - Jeff Bezos, 2006
  32. 32. 32 All You Need Is Code
  33. 33. 33 Supported by AWS
  34. 34. 34 Chalice Python Serverless Microframework for AWS https://github.com/awslabs/chalice $ pip install chalice $ chalice new-project helloworld && cd helloworld $ vim app.py from chalice import Chalice app = Chalice(app_name="helloworld") @app.route("/") def index(): return {"hello": "world"} $ chalice deploy API Gateway AWS Lambda
  35. 35. 35 SAM (Serverless Application Model) CloudFormationの新しいリソース 2016.11.18アナウンス 3つのリソースを使いServerlessなアプリケーションをプロビジョ ニング可能 AWS::Serverless::Function AWS::Serverless::SimpleTable AWS::Serverless::API 詳しくは http://docs.aws.amazon.com/ja_jp/lambda/latest/dg/deploy ing-lambda-apps.html https://github.com/awslabs/serverless-application-model
  36. 36. 36 Solutions Architect(SA) 実は我々もサービスの⼀つ 各種専⾨技術の⽀援可能
  37. 37. 37 AWS Technical Support 彼らもサービスの⼀b(ry SAだけでは(セキュリティ上)調査不可能なことまで 対応可能、その他もろもろ価値ある対応 猛者なエンジニア揃い サポートエンジニアによる連載「 AWSのリージョンとアベイラ ビリティーゾーンとは? 〜 AWSのバックボーンネットワーク に関するDeepな話 」は必⾒ https://codezine.jp/article/corner/685
  38. 38. 38 Serverless Anti-Patterns
  39. 39. 39 Serverlessに夢を⾒すぎる 全てをサーバレスにする必要はない サーバレスにすることが⽬的ではない 単純にサーバの代わりとは考えない 従来の箱としてのサーバとは別物。同じように扱おうとすると失敗す る コストへの過剰な期待はやめる コストの効率がいいのは事実だが、絶対的にコストが安いというわけ ではない コストだけに着⽬すると思ったような効果は得られず、失敗する
  40. 40. 40 API Gateway + Lambdaに囚われすぎる API GatewayとLambdaはサーバレスの中⼼的なサービ スではあるが、逆に⾔えばサーバレスアセットの⼀つで しかない 今やろうとしていること、本当にKinesisでなくAPI Gatewayが必要でしょうか?バックエンドはELB+EC2 でなくLambdaが必要でしょうか?API Gatewayを DynamoDBのProxyにすれば済みませんか?
  41. 41. 41 Microservicesと混同しすぎる、あるいは夢⾒すぎ API Gateway + Lambdaをベースに機能を開発すると、 ⾃然とMicroservicesに近づきやすいのは事実 しかしServerless == Microservicesではないし Microservicesもまた銀の弾丸ではない Serverlessの⽬的とメリット、Microservicesの⽬的とメ リットは分けて考える Microservicesは組織ぐるみで取り組むべき問題
  42. 42. 42 事例にこだわりすぎる 最新技術に事例があるはずがない。まずはやってみよう、 少なくとも試そう 例:ELBのログを取っているなら今すぐAthenaでクエリできる 積極的に⾶び込むことで先⾏者利益を得る 先進性、メディア露出、ブランディング AWSとも⾊々な連携ができたり(プライベートベータなど)
  43. 43. 43 Any QUESTIONS?
  44. 44. 44 Thank you

×