![Page 1: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/1.jpg)
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Ajay Nair, Principal Product Manager AWS Serverless Applications
May 31, 2017
Going Serverless with AWSAWS Summit Tokyo
![Page 2: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/2.jpg)
Agenda
![Page 3: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/3.jpg)
サーバレスとは何か?サーバについて何も考えることなくアプリケーションをビルドして実⾏すること
![Page 4: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/4.jpg)
サーバレスへの進化サーバレス
クラウド上の仮想サーバ
データセンタ内の物理サーバ
データセンタ内の仮想サーバ
![Page 5: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/5.jpg)
単純だが便利なプリミティブ 利⽤量に応じたスケール
アイドル時の⽀払いは⼀切なし 組み込まれた可⽤性と耐障害性
サーバレスとは..
![Page 6: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/6.jpg)
サーバレスのためのビルディングブロック
AWS Lambda Amazon DynamoDB
Amazon SNS
Amazon API GatewayAmazon SQS
Amazon Kinesis
Amazon S3
Orchestration and State Management
API Proxy Messaging and Queues Analytics
Monitoring and Debugging
Compute Storage Database
AWS X-RayAWS Step Functions
Edge Compute
AWS Greengrass
Lambda@Edge
![Page 7: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/7.jpg)
サーバレスはどうデリバリするかを変える
マーケットに対するスピードアップ
イノベーションのためだけの時間
デベロッパーの⽣産性向上 運⽤の複雑さを解消
![Page 8: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/8.jpg)
サーバレスによってイノベーションしたカスタマ
![Page 9: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/9.jpg)
Chatbots
• チャットボットのロジック
• Amazon Echo⽤Alexa Skill
⼀般的なユースケース
Webアプリケーション• 静的Webサイト
• 動的Webアプリ
• FlaskとExpressのためのパッケージ
Backends
• アプリとサービス
• モバイル
• IoT
</></>
Media & Log Processing• リアルタイム
データ
• ストリーミングデータ
Big Data
• MapReduce
• バッチ
![Page 10: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/10.jpg)
PyWren: Lambdaのためのマッシブデータフレームワーク
• Lambdaを使ったオープンソースのMapReduceフレームワーク
• 25 TFLOPSの性能
• S3に対して、読み取りが60 GB/sec、 書き込みが50GB/sec
https://github.com/pywren/pywrenhttp://pywren.io/http://ericjonas.com/
![Page 11: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/11.jpg)
エンタープライズにおけるServerless
CanonInc.Copyright2017Allrightreserved.
キヤノン映像事務機開発統括センター
⼋⽊⽥隆
![Page 12: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/12.jpg)
ブラウザ スマートフォン デバイス
Cloud Native Architecturecollect analyze biz authorization
authenticationformprint
Microservices
Domain-Driven Design
Serverless
CanonInc.Copyright2017Allrightreserved.
![Page 13: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/13.jpg)
Serverlessが進んだ結果Serverless以前Serverless後
![Page 14: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/14.jpg)
CanonInc.Copyright2017Allrightreserved.
課題
10年後も健全なシステムや組織でありたい
新規サービスの追加や既存サービスの拡張が進む各サービスの肥⼤化が進むにつれシステムの複雑化や密結合化が増し組織の硬直化も進むさらにはイノベーションスピードが落ちていく
・ レイヤ間の複雑性が増し、密結合化・ レイヤー間のコミュニケーションコストが増⼤・ テストの増⼤・ スピード感の低下
![Page 15: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/15.jpg)
CanonInc.Copyright2017Allrightreserved.
・各レイヤは互いに深く依存する・拡張が困難・コミュニケーションコストが増⼤・チームもシステムも硬直化・変更コストが⾼い
Monolithic system(密結合) Microservices(疎結合)・独⽴してリリースできる・独⽴して拡張できる・独⽴チームで開発・運⽤・LEANしやすい
連携不可・似て⾮なるもの・拡張で更に同じようなもの・品質もバラバラ・サイロ化し連携もできない・コスト増⼤
Conwayの法則
![Page 16: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/16.jpg)
EngineerはEngineeringで課題を解決する
motivation
「使いこなす」
CanonInc.Copyright2017Allrightreserved.
AWSLambda
Cloud Native
![Page 17: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/17.jpg)
Hosting Cloud Native Microservices
CanonInc.Copyright2017Allrightreserved.
Microservicesの推進
![Page 18: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/18.jpg)
AWS Lambda + Managed Serviceで実績を重ねつつ徐々に分割
CanonInc.Copyright2017Allrightreserved.
シンプルな構成を保ちつつ分割する
変更コストは少ない⽅がいい楽な⽅法で対応できるのがいい
肥⼤化するサービスの分割
夫々のレイヤーが横⽅向に肥⼤化していく
縦に分割する
Severless化で切り出し
![Page 19: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/19.jpg)
LogicDDD モデリング
Database分割
https://vaughnvernon.co/?p=879CanonInc.Copyright2017Allrightreserved.
Store
データの依存性を意識する
縦に分割するということはDBも分割するということ
![Page 20: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/20.jpg)
RestfulAPI
DDD
Key-ValueDB
CanonInc.Copyright2017Allrightreserved. https://8thlight.com/blog/uncle-bob/2012/08/13/the-clean-architecture.html
レイヤー間の依存を減らすLogicがDBに依存しないようにアーキテクチャーを意識して設計
![Page 21: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/21.jpg)
注意点
システムに複雑性をもたらす可能性がある->スパゲッティ化しないようにRestful、DDDの視点で設計する
デプロイの⾃働化を構築することを進める
継続的インテグレーション可能なプラットフォームを構築することを進める
影響の少ないところから少しずつ実績を積み重ねてMicroservice化いくことを勧める
CanonInc.Copyright2017Allrightreserved.
AWS Lambda + Managed Serviceは楽に機能を実現できる強⼒な仕組み
![Page 22: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/22.jpg)
Infrastructure
Store
Logic
API
Fullstack
縦に分割するということはインフラも含めた⾃働化も進めていくことが求められる
Serverlessは、学習コストを抑えられスピード感をもって開発することができる
ミドルウェア、脆弱性対応など省ける
Team
Full Stack Engineer
![Page 23: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/23.jpg)
AWS Lambda
すぐに試せるテストが容易より多くのチャレンジができる
Microservices推進の中で
CanonInc.Copyright2017Allrightreserved.
AWI Gateway連携でRESTful設計し易いManaged Serviceとの連携が容易
![Page 24: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/24.jpg)
Serverlessが進んだ結果コード量 1/2テスト⼯数 1/3開発期間 1/3デプロイ・⾃働化コスト 1/20運⽤・監視コスト 1/5Scalingテスト 1/100インフラコスト 1/10学習コスト 1/5
AWS Lambdaを使⽤するということそれは単にインスタンスを使⽤しないというだけでなくそれに関連する様々なものを削減することができるということ
![Page 25: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/25.jpg)
まとめ
全てをServerlessにする必要はない
AWS Lambda/Cloud Nativeに向いているところをServerlessで
肥⼤化しつつあるサービスをAWS Lambda + Managed Services(Serverless)で分割(Microservices)
組織、システムの硬直化や密結合化を防ぐことができ
イノベーションスピードを⾼められる
![Page 26: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/26.jpg)
サーバレスはモダンなアプリケーションのコアコンポーネント
![Page 27: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/27.jpg)
EVENTSエンドポイントへのリクエストリソースの状態変化データの状態変化
FUNCTIONS
DOWNSTREAM
考え⽅の転換– どのようにアプリケーションを構築するか
ü イベントとAPIを通じたコミュニケーション
ü ステートレスでエフェメラルな関数
ü データ、キャッシュおよびステートとロジックの分離
![Page 28: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/28.jpg)
• 既存アプリを分解しなければいけないという可能性• どのようにコンポーネント群が通信するか?• 明確なサービス境界は何か?• 関数は何に反応すべきか?• 適切な粒度は?• サーバー上のローカルにあるステート/ストレージを移動
させる必要性
考慮点
![Page 29: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/29.jpg)
Amazon Kinesis
Amazon API Gateway
Amazon SNS
Amazon S3
AmazonDynamoDB
AmazonSQS
Microservicesto Functions
![Page 30: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/30.jpg)
Microservicesto
Amazon API Gateway
AmazonSQS
Functions
![Page 31: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/31.jpg)
Microservicesto
Amazon API Gateway
Amazon Kinesis
AmazonDynamoDB
Functions
![Page 32: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/32.jpg)
例 - LambdaによるサーバレスなMap/Reduce
https://github.com/awslabs/lambda-refarch-mapreduce
![Page 33: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/33.jpg)
ステートの管理 – Step functions
• パラレルもしくはシリアルにLambda関数やその他のアクティビティを実⾏
• バリア同期とリトライの実⾏
• サードパーティシステムと既存ワークフローの容易な統合
![Page 34: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/34.jpg)
インテグレーションライブラリ
AWS Marketplace上のAmazon API Gatewayのリスト
![Page 35: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/35.jpg)
Things To Remember: Lambda Function
ü メモリ = “パワーのレベル”q ⾼いレベルにすればより多くのメモリとCPUパワーを提供する
ü 関数はステートの概念を持たないq DynamoDB、S3もしくはElasticacheを使うq 関数に対する環境変数も利⽤可能
ü 下流のサービスに対して適切なアクセスコントロールを⾏うq AWSサービスに対するIAMロールとパーミッションq プライベートエンドポイントのためのVPCq 下流のエンドポイントへのクレデンシャルを保管するためのKMS
覚えておくこと: Lambda関数
![Page 36: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/36.jpg)
覚えておくこと: サーバレスアプリケーション
ü Lambdaはイベント/リクエストによってスケールするq ダウンストリームとなるサービスの同時リクエストのレートをプランニ
ングする
ü ⾮同期呼び出しとストリーム呼び出し向けに組み込まれたリトライq 同期アプリケーション向けにはリトライを考えることq ストリームベースの呼び出しにはIteratorAgeというメトリクスをモニタ
すること
ü VPCを有効にした関数に対するスケールの責任共有q 予想される同時実⾏に⾒合った⼗分なIPアドレスq 各アベイラビリティゾーンあたり最低1つのサブネット
![Page 37: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/37.jpg)
開発ワークフロー
モノリシックアプリケーション
マイクロサービス
![Page 38: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/38.jpg)
開発ツール
コードを書く
カスタマへデプロイ
ビルドとテスト
フィードバック
受け取り
![Page 39: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/39.jpg)
多くの関数を持つアプリがあるとき何が起きるか?
サーバレスアプリの作成
![Page 40: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/40.jpg)
SAMの紹介
![Page 41: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/41.jpg)
AWS Serverless Application Model (SAM)
AWS上でサーバレスアプリケーションを表現するスタンダードモデル
関数、API、イベントソースとデータストア
サーバレスアプリケーションのデプロイと管理を簡素化
![Page 42: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/42.jpg)
AWS Serverless Application Model (SAM)
• AWS CloudFormationによるネイティブサポート
• SAMテンプレートとしてあらゆる関数をエクスポート
• AWS CLIを⽤いたSAMテンプレートのパッケージとデプロイ
• コミュニティ拡張のためApache2.0でのオープンな仕様
![Page 43: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/43.jpg)
サーバレスアプリケーションのCI/CD
</>
AWS CodePipeline + SAM
GitHubAmazon S3AWS CodeCommit
AWS CodeBuild AWS CodeBuildThird-party tools
AWS CloudFormation
Commit Build Test Deployto Prod
![Page 44: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/44.jpg)
AWS CodeStar New!
![Page 45: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/45.jpg)
信頼性とパフォーマンス
![Page 46: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/46.jpg)
ログとモニタリング– 普遍的な権利組み込みのメトリクスとCloudWatch Logsを使ったログを調査し、アラートをセットアップ
関連するコード内からカスタムメトリクスとカスタムログエントリを作成
ログからカスタムメトリクスを簡単に⽣成し、メトリクスから関連ログへとドリルダウン
Amazon Elasticsearch ServiceもしくはS3へログをエクスポートし、KibanaやAthena/QuickSightで調査
![Page 47: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/47.jpg)
信頼性とパフォーマンス
Dead Letter Queues• リトライ実⾏後に⾃動的にイベントをキャプチャ
• より信頼性の⾼いイベント処理アプリケーションの構築
• Amazon SQSのキューもしくは Amazon SNSのトピックをターゲット
• すべてのリージョンで利⽤可能
![Page 48: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/48.jpg)
AWS X-Ray (Now GA!)• 本番環境の分散アプリケーション
の分析とデバッグ
• アプリのサービスコールグラフを可視化
• パフォーマンスのボトルネックとエラーを特定
• サービス特有の問題を正確に発⾒
• アプリのユーザに対する問題の影響範囲を特定
• 関数の実⾏をトレース
![Page 49: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/49.jpg)
X-Rayの仕組み
リクエストをトレース トレースを記録 サービスマップを表⽰ 問題を分析
![Page 50: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/50.jpg)
X-Ray例
![Page 51: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/51.jpg)
X-Ray例
![Page 52: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/52.jpg)
X-Ray例
![Page 53: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/53.jpg)
X-Ray例
![Page 54: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/54.jpg)
X-Ray例
![Page 55: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/55.jpg)
X-Ray例
![Page 56: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/56.jpg)
X-Ray例
![Page 57: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/57.jpg)
デベロッパーエコシステム— 商⽤製品
MonitoringDeployment Service DeliveryProgram
IntegrationsCode Libraries
![Page 58: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/58.jpg)
デベロッパーエコシステム — オープンソース
Chalice Framework
Serverless JavaContainer
![Page 59: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/59.jpg)
NEW
グローバルスケール
LambdaはAWSグローバルインフラストラクチャにおいて、主要なリージョンで利⽤可能です
ロンドン、ムンバイとGovCloudでも利⽤可能に!
![Page 60: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/60.jpg)
サーバレスはモダンなアプリケーションの基本的なコンポーネント
![Page 61: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/61.jpg)
サーバレスについてもっと学ぶには
2017/6/2 13:20 〜 14:00D4T7-2 全部教えます!サーバレスアプリのアンチパターンとチューニング
2017/6/2 14:20 〜 15:00D4T7-3 サーバレスで王道 Web フレームワークを使う⽅法
2017/6/2 15:20 〜 16:00D4T7-4 [タワーズ・クエスト]Serverless 時代のテスト戦略
2017/6/2 16:20 〜 17:00D4T7-5 もう悩まない!AWS SAM で始めるサーバーレスアプリケーション開発
2017/6/2 17:20 〜 18:00D4T7-6 サーバーレスアプリケーションのための CI/CD パイプライン構築
![Page 62: Going Serverless with AWS · 2017-12-19 · Serverlessが進んだ結果 コード量 1/2 テスト⼯数 1/3 開発期間 1/3 デプロイ・⾃働化コスト1/20 運⽤・監視コスト](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2e3e8c9c4660b6a689a7e/html5/thumbnails/62.jpg)
Conclusion
Lambda is a fundamental component of modern application architectures
It has a place in everything from data processing to simple web apps