SlideShare a Scribd company logo
1 of 102
Download to read offline
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
27th Jan, 2021
Kensuke Shimokawa
今日から始める
イベントドリブンアーキテクチャ
@_kensh
AWS Expert Online JAWS-UG
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Who am I?
Name
Kensuke Shimokawa
Company
Amazon Web Services Japan K.K.
Role
Serverless Specialist Solutions Architect
@_kensh
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
本セッションは
想定される聴講者
• AWSをご利用されている事業者、デベロッパー
• AWSを今後利用したビジネスを考えている方
• イベントドリブンアーキテクチャ構築に興味がある方
ゴール
• システムでのイベントドリブンアーキテクチャの使い所を理解していただく
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
イノベーションループ
Listen
Idea
Experiment
イノベーション
ループ
傾聴
アイデア
実験
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
"デリバリー速度"の獲得。
マイクロサービスの最大のメリットはビジネス変化に対応する
"デリバリー速度"の獲得。
でもAPIで作ったサービスは頻繁な変更に対応するのは難しいですよね。
なぜならAPIにはインターフェース契約があるから。
そこで、アイデアとして登場したのが ”疎結合” にマイクロサービス を組み立て
る、イベントドリブンアーキテクチャ。
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Table of contents
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
アーキテクチャのゴールは
"デリバリー速度"の獲得
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
モノリスからマイクロサービス へ
Monolith
全てを担当
Microservice
一つの責務の組み合わせ
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
2001年のAmazonでは、、、
monolithic application
+ teams
2001
学び: アジリティのために分散が必要
2002
microservices
+ 2 pizza teams
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
アーキテクチャの結合度
小さなピースに分けて
ゆるく結合させたい
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
小さなピースをAPIで結合してみる
API
API
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
契約による結合
API
API
インターフェース契約
APIにはインターフェースを公開し
利用者に宣言する必要がある
利用者は公開者の宣言にしたがって
送信する義務を負う
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
互いに依存する
API
API
(API利用者)
契約を守らないと呼び出せない
(API提供者)
契約を破棄できない
不自然な維持、冗長な拡張
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
仕様と実装の乖離が許されないAPI = 契約
• 契約を記述する手段の進化
• 契約の配布やスキーマレジストリ
管理のマネージド化
• ただし、契約は公開されるが、強制できる
ものではない。
• そして、APIエコノミーへ
• クローズドなAPIからオープンなAPIへ
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
多様化、複雑化、膨大化する依存関係
API
互いに依存する
互いに依存する
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
“デリバリー速度”の獲得?
達成できたか?
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
同期的なAPIの課題
• 他サービスの障害に影響を受ける
• サービスのIPが変わった場合の発見が難しい
• API自体の数が増加し、クライアントへの統一した体験が提供しにくい
• HTTPリソースやメソッドごとに要件が複雑化
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
APIにおける様々な改善
• サービスメッシュ
• API ゲートウェイ
• サーキットブレーカー
• 集約ログ
• ポリグロット
• GraphQL
• サービスディスカバリ
(注意)
• 今回のセッションではイベントの理解の
ために、あえてAPIと比較をしています
が、APIとイベントは排他の関係ではな
く、通常は協調して利用します
• APIの管理方法も日々進化していますの
で、APIの課題がそのまま当てはまるわ
けではありません
※本日のセッションではAPIの管理方法の進化については割愛
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
event
[i-’vent] noun
システムの状態が変化
したことを示す信号
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
イベントとは
• イベントは状態の変化に関する情報をサービス間で共有するためのメカニズム
• Immutable – イベントは過去に遡っての修正はできない
• イベントには意味的な意図があり、過去形の動詞として表現可能,
• e.g. “customer_created”
• コンテキスト共通のプロパティによって、システムの相関を取っている
• e.g. “customer_id”
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Eventは時系列に事実を
伝える手段
Time What
2021 01 21 08 07 06 CustomerCreated
2021 01 21 08 07 09 OrderCreated
2021 01 21 08 07 13 PaymentSuccessful
2021 01 21 08 07 17 CustomerUpdated
. . . . . .
イベントはWhatを伝える時系列データ
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
イベントは観測するものであり、命令ではない
命令としての command 観測による event
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
サービスとイベントルーティング機能を切り離す
プロデューサ、コンシューマ
の抽象化
イベントを選択して
フィルタリング可能に
プロデューサ コンシューマ
ルーティング
送信イベント 受信イベント
フィルタリング
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
応答性とサービス間依存度の違い
API Event
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
契約時
• API設計時にサービス間の契約を締結
• 変化のためにはサービス実装の変更
API
API
同期APIと非同期イベント配信の規約設定タイミング
イベント配信時
• 非同期実行による分散
• 障害伝搬リスクの軽減
• 変化のためには配信ルールの変更
Service A Service B
Message
Message
Service A Service B
Event
API Event
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
結合度を実例で確認 (同期API)
プロデューサ
コンシューマ
😀
受注
サービス
発送
サービス
会計
サービス
• プロデューサとコンシューマ
が密結合
• 複数サービスが障害ポイント
• サービスクオリティの低いも
のが全体のサービス品質を決
定
• 外部への依存度が大きく、拡
張性が乏しい
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
結合度を実例で確認 (同期API)
プロデューサ
コンシューマ
受注
サービス
発送
サービス
会計
サービス
• プロデューサとコンシューマ
が密結合
• 複数サービスが障害ポイント
• サービスクオリティの低いも
のが全体のサービス品質を決
定
• 外部への依存度が大きく、拡
張性が乏しい
😩
ダウンストリームの
障害に影響を受ける
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
結合度を実例で確認 (同期API)
プロデューサ
コンシューマ
受注
サービス
発送
サービス
会計
サービス
在庫
サービス
• プロデューサとコンシューマ
が密結合
• 複数サービスが障害ポイント
• サービスクオリティの低いも
のが全体のサービス品質を決
定
• 外部への依存度が大きく、拡
張性が乏しい
😀
新サービス追加
コードの修正が必要
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
結合度を実例で確認 (非同期Event)
プロデューサ
コンシューマ
😀
受注
サービス
発送
サービス
会計
サービス
• プロデューサとコンシューマ
が疎結合
• 各サービスは独立
• 品質、可用性管理を独自に実
施可能
• 外部への依存度が低いため、
拡張性が高い
Event
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
結合度を実例で確認 (非同期Event)
プロデューサ
コンシューマ
😀
受注
サービス
発送
サービス
会計
サービス
• プロデューサとコンシューマ
が疎結合
• 各サービスは独立
• 品質、可用性管理を独自に実
施可能
• 外部への依存度が低いため、
拡張性が高い
Event
ダウンストリームの
障害からの分離
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
結合度を実例で確認 (非同期Event)
プロデューサ
コンシューマ
😀
受注
サービス
発送
サービス
会計
サービス
• プロデューサとコンシューマ
が疎結合
• 各サービスは独立
• 品質、可用性管理を独自に実
施可能
• 外部への依存度が低いため、
拡張性が高い
Event
在庫
サービス
コードの修正不要
新サービス追加時に
Subscribeするだけ
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
イベントドリブンアーキテクチャを何で実装するか
プロデューサ
コンシューマ
😀
受注
サービス
発送
サービス
会計
サービス
• 実装の考慮点
• 可用性についての検討
• スケーラビリティにつ
いての検討
• サーバーの運用管理
• コスト見積もり
Event
在庫
サービス
この部分の
イベント管理をどの
ように実装するか
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
サーバーレス とは?
サーバーがない?
サーバーの存在を意識しない
• ユーザーコントロール可能なサーバーを前提としない
• AWS のフルマネージドな管理
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
サーバーレスを選択するビジネス価値
インフラのプロビジョニング不要
サーバー管理不要
自動でスケール
価値に対する支払い 高可用かつ安全
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
サーバーレスの効能
+
利用費の
適正化
作業量の
削減
+
時間の
短縮
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
イベントの管理はサーバーレス サービスで
プロデューサ
コンシューマ
😀
受注
サービス
発送
サービス
会計
サービス
• インフラのプロビジョニング
不要、サーバー管理不要
• 自動でスケール
• 価値に対する支払い
• 高可用かつ安全
Event
在庫
サービス
サーバーレス
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
イベントドリブンのパーツ
非同期イベント
応答性を高め、相互依存性
を低減
イベントルーター
プロデューサとコンシューマを
互いから抽象化
イベントストア
ビジネスロジックのプロセスが
稼働可能になるまでストア可能
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWSのイベント、メッセージングサービス
イベントルーター イベントストア
キュー ストリーム トピック イベントバス
サーバーレス
マネージドOSS
Amazon SQS
Amazon MQ
Amazon SNS
Amazon MQ
Amazon Kinesis
Amazon MSK
Amazon EventBridge
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
SNS Topic
Data
Amazon Simple Notification Service (SNS)
• Publish / subscribe モデルメッセージング
• 高スループット, 高信頼性メッセージング
• 複数のパブリッシャーに配信
• ファンアウト
• メッセージフィルタリンを利用して配信タ
ーゲットを指定可能
• 非同期Lambda実行
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Message
SQS
Queue
SQS はLambda
サービス側で関
数から成功応答
が返った場合に
メッセージ削除
Amazon Simple Queue Service (SQS)
• 大量メッセージ
• メッセージのバッチ処理
• At least once 配信 (標準キュー)
• 複数回受信を防ぐ可視性タイムアウト
• 同期Lambda実行
• Lambdaはロングポーリング
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon Kinesis Data Streams
• リアルタイムメッセージング
• At least once 配信(Lambda統合時)
• Lambda関数はバッチ取得可能
• 1メッセージ内に論理バッチも可能
• 同期Lambda実行
Kinesis
Stream
Lambdaサービス
は、メッセージ
が期限切れで削
除されるまで、
ポーリング
Data
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
各モデルでのイベントハンドリング
イベントストアを
利用しない
(FIFOで順序)
高耐久性の
メッセージ処理
(FIFOで順序)
Amazon SNS
Amazon SQS
Amazon
Kinesis
高耐久性の
メッセージ処理
(順序の保証)
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon EventBridge
AWS Cloud
AWS Cloud
AWS Cloud
Amazon
EventBridge
異なるチーム、組織の間でも、Push型での情報連携(イベント通知)を
可能にするイベントバス
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS Lambdaの非同期実行
Amazon S3
Amazon SNS
Amazon SES
Amazon
EventBridge
Amazon
CloudWatch Logs
AWS Config
Amazon
CloudFormation
AWS CodeCommit
AWS Lambda
Amazon SNS
Amazon SQS
Amazon
EventBridge
Lambda
Function
onSuccess
onFailure
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
イベントドリブン・ユースケース
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
ファイルアップロード処理
1. Amazon S3 バケットにファイ
ルをアップロード
2. Lambda関数の非同期実行
• イベントペイロード:
» Bucket name
» Object key
1
2
Lambda + Amazon S3
Amazon S3
Upload
Event
file
Lambda
Function
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
ファイルアップロード処理
3. Amazon Rekognitionを使用し
た画像解析
4. 画像解析の結果を保存
1
2
イメージ解析、データ永続化
Amazon
Rekognition
Amazon
DynamoDB
3
4
file
Upload
Event
Amazon S3
Lambda
Function
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
ストリームデータの取り込みと保存
1. LambdaがKinesis Data Streamからメッセージポーリング
2. 関数が同期的にLambdaサービスから呼び出される
3. 関数によるメッセージの保存
1 2
取得、処理、保存
Amazon
Redshift
Amazon
Elasticsearch
Service
3
Kinesis Data Stream Lambda Lambda
Function
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
ダウンストリームの保護
1. API Gatewayに到達したメッセージをSQSにバッファリング
2. 関数が同期的にLambdaサービスから呼び出される
• 同時実行数設定によるスループット調整
3. オンプレミスデータベースに対する、Lambda関数によるメッセージ
の保存
1 2
スループットの調整
3
Lambda Lambda
Function
Amazon SQS
Amazon API Gateway
オンプレミス
データベース
物理サーバー
低スループット
高スループット
202
accepted
低可用性、ローパフォーマンス
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
SaaSとのイベント連携
1. API Gatewayでの Webhookや、定期起動Lambdaによるポーリ
ングではなく、EventBridgeのイベントバス経由でイベント連携
2. イベントの種類に応じて各種マイクロサービスを実行
モニタリングアラームの受信
AWS Cloud
Amazon
EventBridge
アラーム
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
イベントドリブンアーキテクチャ
導入への流れ
Journey to event-driven architectures
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
イベントドリブンアーキテクチャ導入への流れ
STEP 1
ドメインに対する考慮
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
システムではなく、ビジネスのイベントを考えてみる
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
イベントをビジネスドメインに紐付ける
販売 配送センター サポート
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
ビジネスプロセスを一旦オーケストレーションで考えてみる
販売
オーケストレーター
決済管理
1
4
6
注文イベント
2
在庫管理
3
5
7
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
ドメイン境界を越える処理をSubscriptionに置き換える
販売 発送センター
注文入ったよ
注文が入ったら教えてね
Subscription
Notification
1
2
非同期Event
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
イベントドリブンのモデリング
EventStorming
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
イベントドリブンアーキテクチャ導入への流れ
STEP 2
イベントルータの選定
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
ルーターが必要になるかどうか?
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
まだ、必要じゃない?
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
本当に、まだ必要ない?
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
設計時にルーターを入れて非同期にできるかはまず確認!
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
イベントドリブンアーキテクチャ導入への流れ
STEP 3
イベントストアの選定
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
イベントストアで復元力とスケーラビリティを向上
ビジネスロジックサービスが処理可能に
なるまでメッセージをバッファリング
Event store
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
イベントドリブンアーキテクチャ導入への流れ
STEP 4
イベントスキーマの考慮
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
イベントはそのままの生の情報ではない
注文123は、顧客456に
よって午前10時47分に
作成されました。
注文123は、顧客456によっ
て午前10時47分に作成されま
した。現在のステータスは
オープンで、合計は$ 237.51
で、商品は…
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
必要となる属性を考える
123
456
注文123はどの
ユーザの注文?
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon EventBridgeイベントスキーマの例
{
"version": "0",
"id": "adeacade-c34c-ce58-c4a0-74f106398c4e",
"account": "123456789012",
"region": "us-east-1",
"time": "2019-12-02T21:46:19Z",
"source": "order-service",
"detail-type": "New Order",
"resources": [],
"detail": {
"orderId": "cfb2ae566f9b",
"customerId": "C12345",
...
}
}
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
{
"version": "0",
"id": "adeacade-c34c-ce58-c4a0-74f106398c4e",
"account": "123456789012",
"region": "us-east-1",
"time": "2019-12-02T21:46:19Z",
"source": "order-service",
"detail-type": "New Order",
"resources": [],
"detail": {
"orderId": "cfb2ae566f9b",
"customerId": "C12345",
...
}
}
Amazon EventBridgeイベントスキーマの例
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
{
"version": "0",
"id": "adeacade-c34c-ce58-c4a0-74f106398c4e",
"account": "123456789012",
"region": "us-east-1",
"time": "2019-12-02T21:46:19Z",
"source": "order-service",
"detail-type": "New Order",
"resources": [],
"detail": {
"orderId": "cfb2ae566f9b",
"customerId": "C12345",
...
}
}
Amazon EventBridgeイベントスキーマの例
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
{
"version": "0",
"id": "adeacade-c34c-ce58-c4a0-74f106398c4e",
"account": "123456789012",
"region": "us-east-1",
"time": "2019-12-02T21:46:19Z",
"source": "order-service",
"detail-type": "New Order",
"resources": [],
"detail": {
"orderId": "cfb2ae566f9b",
"customerId": "C12345",
...
}
}
Amazon EventBridgeイベントスキーマの例
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon EventBridgeイベントスキーマの例
{
"version": "0",
"id": "adeacade-c34c-ce58-c4a0-74f106398c4e",
"account": "123456789012",
"region": "us-east-1",
"time": "2019-12-02T21:46:19Z",
"source": "order-service",
"detail-type": "New Order",
"resources": [],
"detail": {
"orderId": "cfb2ae566f9b",
"customerId": "C12345",
...
}
}
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
イベントドリブン・デザインパターン
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
イベントドリブン・デザインパターン
• コレオグラフィ
• 全体の作業を制御する指揮者は存在せず、個々のサービスに予め与
えられた動作条件に従ってサービスを実行
• コマンドクエリ責務分離
• データ ストアの読み取り操作と更新操作を分離
• イベント ソーシングパターン
• データに対して実行された一連のすべてのアクションを記録
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
コレオグラフィ - Choreography
Streams, Topics, Queues
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
マイクロサービスの依存関係グラフ
https://www.thoughtworks.com/insights/blog/scaling-microservices-event-stream
Event
APIで結合 コレオグラフィー
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
コレオグラフィーパターンとは
• 必要なすべての情報を含んだ最初のイベントを 1 つのメッセージに保存し
て、最初のトランザクションを完了
• 他のサービスがそのメッセージを非同期的に取得し、それぞれのタスクを
完了させる
• サービスが疎結合になり、直接互いに影響を与えない
• メッセージの保存と取得が非同期の関係になり、スケーラビリティと信頼
性が向上
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
コレオグラフィーパターン
ユーザー
リクエストサービス リクエストキュー
サービスA
サービスB
サービスC
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
実装例1: SNS、 SQS、 Lambdaの利用
ユーザー
リクエストサービス Amazon
SNS
Amazon SQS
Amazon SQS
Amazon SQS
AWS Lambda
AWS Lambda
AWS Lambda
ファンアウト
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
実装例2: Amazon EventBridgeの利用 配送
ポイント
プレミアム会員
カート
支払
支払い方法
認証
注文
1分毎に実行
Events
会員
ステータス
支払認証
カートに
入れる
注文完了
Amazon
EventBridge
リクエストサービス イベントバス
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
コマンドクエリ責務分離
CQRSパターン
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
コマンドクエリ責務分離パターンとは
• コマンドクエリ責務分離(Command-Query Responsibility Segregation:
CQRS)パターンはデータを更新するコマンドと参照するクエリを分離するこ
とで、ユースケースに応じて個別にスケールすることを可能とするパターン
• データソースを分離することで異なるデータ構造を取ることも可能となり、ク
エリ側はクエリで返すデータ転送オブジェクト(Data Transfer Object : DTO)
に合わせた形のスキーマとすることでオブジェクト関係マッピング(Object
Relational Mapping : ORM)のオーバーヘッドを軽減することも可能になる
• コマンド側とクエリ側が結果整合性を許容する必要がある
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
コマンドクエリ責務共有パターン
ユーザー
サービス
ドメインモデル ドメインモデル
ORM ORM
データ転送
オブジェクト
クエリ
更新
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
コマンドクエリ責務分離(CQRS)パターン
ユーザー
コマンドサービス
ドメインモデル
データ転送
オブジェクト
クエリ
更新
クエリサービス
データ転送
オブジェクト
非同期
結果整合
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
実装例1: Kinesis Data StreamsとLambdaを利用
フロントサービス Amazon Kinesis
Data Streams
AWS Lambda
AWS Lambda Amazon Aurora
正規化テーブル
ユーザー
Amazon DynamoDB
非正規化テーブル
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
実装例2: DynamoDB StreamsとLambdaを利用
ユーザー Amazon DynamoDB
Streams
非正規化テーブル
AWS Lambda Amazon Aurora
正規化テーブル
フロントサービス
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
イベント ソーシング
Event Sourcing
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
イベントソーシングパターンとは
• データストアを直接更新する代わりに、注文の発注、クレジット照会、出荷中
の注文など、ビジネスロジックに重要なイベントを耐久性のあるイベントログ
に追加
• イベントレコードは個別に保存されるため、すべての更新はアトミック (分割
不可かつ削減不可)
• 保存されたイベントを再度処理するだけで、アプリケーションのいかなる時点
の状態でも再構築 可能
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
イベント ソーシングパターン
ユーザー
プロセス
イベントログ
イベント
プロセス プロセス
状態
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Kinesis Data Streams (or SQS FIFO)とLambdaによる実装例
ユーザー
Amazon Kinesis
Data Streams
AWS Lambda
イベント
メッセージ
状態
Amazon SQS
FIFO
or
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
イベントドリブンアーキテクチャ
選択における観点
Design Considerations
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
At-least once 配信
イベントは、ターゲットに複数回配信
されることも。処理されたイベントの
状態を追跡することによって重複イベ
ントを検出するロジックを含める
(冪等性)
配信セマンティクス
Exactly-once 配信*
AWSサービスに重複排除に使用す
る識別子を渡すことで重複排除
* Lambdaでリトライ設定している場合は、At-least
once
• Amazon EventBridge
• Amazon SNS 標準トピック
• Amazon SQS 標準 キュー
• Amazon Kinesis
• Amazon SNS FIFO トピック
• Amazon SQS FIFO キュー
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
順序保証なし
イベント/メッセージが順序保証なしで
配信
順序セマンティクス*
順序保証
イベントは、パーティション、
メッセージグループなどの中で順
番に配信
(グローバルな順序保証はありません)
• Amazon EventBridge
• Amazon SNS 標準トピック
• Amazon SQS 標準 キュー
• Amazon Kinesis
• Amazon SNS FIFO トピック
• Amazon SQS FIFO キュー
* 順不同のイベント処理ロジックが受入可能かは、ビジネス要件次第となります。順不動なイベントを処理する
ようにアプリケーションを設計できない場合は、代わりにオーケストレーションも検討
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
まとめ
マイクロサービスの最大のメリットはビジネス変化に対応する
"デリバリー速度"の獲得
• イベントドリブンアーキテクチャで疎結合にすることでデリバリー速度を高
める。
• AWSのサーバーレス サービスを利用することで、イベントドリブンアーキテ
クチャを素早く導入できる。
• アーキテクチャパターンや導入の道筋を知ることで、システム設計に活かす
ことができる。
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Thank you!
@_kensh
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Appendix
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
EventBridgeサービスクオータ(抜粋)
• PutEvents: Depends on region (2400-400), regional
• Invocations: Depends on region (4500-750), regional
• Buses per account/region: 100, hard limit
• Rules per bus: 300
• Targets per rule: 5, hard limit
• Event pattern size: 2048 characters, hard limit
https://docs.aws.amazon.com/eventbridge/latest/userguide/cloudwatch-limits-eventbridge.html

More Related Content

What's hot

AWS Black Belt Online Seminar AWS Key Management Service (KMS)
AWS Black Belt Online Seminar AWS Key Management Service (KMS) AWS Black Belt Online Seminar AWS Key Management Service (KMS)
AWS Black Belt Online Seminar AWS Key Management Service (KMS) Amazon Web Services Japan
 
AWS Black Belt Online Seminar - Amazon Lightsail
AWS Black Belt Online Seminar - Amazon Lightsail AWS Black Belt Online Seminar - Amazon Lightsail
AWS Black Belt Online Seminar - Amazon Lightsail Amazon Web Services Japan
 
20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続
20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続
20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続Amazon Web Services Japan
 
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティスAmazon Web Services Japan
 
AWS Black Belt Online Seminar 2017 AWS Elastic Beanstalk
AWS Black Belt Online Seminar 2017 AWS Elastic BeanstalkAWS Black Belt Online Seminar 2017 AWS Elastic Beanstalk
AWS Black Belt Online Seminar 2017 AWS Elastic BeanstalkAmazon Web Services Japan
 
20200630 AWS Black Belt Online Seminar Amazon Cognito
20200630 AWS Black Belt Online Seminar Amazon Cognito20200630 AWS Black Belt Online Seminar Amazon Cognito
20200630 AWS Black Belt Online Seminar Amazon CognitoAmazon Web Services Japan
 
20200826 AWS Black Belt Online Seminar AWS CloudFormation
20200826 AWS Black Belt Online Seminar AWS CloudFormation 20200826 AWS Black Belt Online Seminar AWS CloudFormation
20200826 AWS Black Belt Online Seminar AWS CloudFormation Amazon Web Services Japan
 
20200722 AWS Black Belt Online Seminar AWSアカウント シングルサインオンの設計と運用
20200722 AWS Black Belt Online Seminar AWSアカウント シングルサインオンの設計と運用20200722 AWS Black Belt Online Seminar AWSアカウント シングルサインオンの設計と運用
20200722 AWS Black Belt Online Seminar AWSアカウント シングルサインオンの設計と運用Amazon Web Services Japan
 
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...Amazon Web Services Japan
 
20190220 AWS Black Belt Online Seminar Amazon S3 / Glacier
20190220 AWS Black Belt Online Seminar Amazon S3 / Glacier20190220 AWS Black Belt Online Seminar Amazon S3 / Glacier
20190220 AWS Black Belt Online Seminar Amazon S3 / GlacierAmazon Web Services Japan
 
20210526 AWS Expert Online マルチアカウント管理の基本
20210526 AWS Expert Online マルチアカウント管理の基本20210526 AWS Expert Online マルチアカウント管理の基本
20210526 AWS Expert Online マルチアカウント管理の基本Amazon Web Services Japan
 
20190731 Black Belt Online Seminar Amazon ECS Deep Dive
20190731 Black Belt Online Seminar Amazon ECS Deep Dive20190731 Black Belt Online Seminar Amazon ECS Deep Dive
20190731 Black Belt Online Seminar Amazon ECS Deep DiveAmazon Web Services Japan
 
AWS Black Belt Online Seminar AWS Direct Connect
AWS Black Belt Online Seminar AWS Direct ConnectAWS Black Belt Online Seminar AWS Direct Connect
AWS Black Belt Online Seminar AWS Direct ConnectAmazon Web Services Japan
 
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAkihiro Kuwano
 
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)NTT DATA Technology & Innovation
 
20220409 AWS BLEA 開発にあたって検討したこと
20220409 AWS BLEA 開発にあたって検討したこと20220409 AWS BLEA 開発にあたって検討したこと
20220409 AWS BLEA 開発にあたって検討したことAmazon Web Services Japan
 
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPNAmazon Web Services Japan
 
AWS Organizations連携サービスの罠(Security JAWS 第26回 発表資料)
AWS Organizations連携サービスの罠(Security JAWS 第26回 発表資料)AWS Organizations連携サービスの罠(Security JAWS 第26回 発表資料)
AWS Organizations連携サービスの罠(Security JAWS 第26回 発表資料)NTT DATA Technology & Innovation
 

What's hot (20)

AWS Black Belt Online Seminar AWS Key Management Service (KMS)
AWS Black Belt Online Seminar AWS Key Management Service (KMS) AWS Black Belt Online Seminar AWS Key Management Service (KMS)
AWS Black Belt Online Seminar AWS Key Management Service (KMS)
 
AWS Black Belt Online Seminar - Amazon Lightsail
AWS Black Belt Online Seminar - Amazon Lightsail AWS Black Belt Online Seminar - Amazon Lightsail
AWS Black Belt Online Seminar - Amazon Lightsail
 
20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続
20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続
20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続
 
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
 
AWS Black Belt Online Seminar 2017 AWS Elastic Beanstalk
AWS Black Belt Online Seminar 2017 AWS Elastic BeanstalkAWS Black Belt Online Seminar 2017 AWS Elastic Beanstalk
AWS Black Belt Online Seminar 2017 AWS Elastic Beanstalk
 
20200630 AWS Black Belt Online Seminar Amazon Cognito
20200630 AWS Black Belt Online Seminar Amazon Cognito20200630 AWS Black Belt Online Seminar Amazon Cognito
20200630 AWS Black Belt Online Seminar Amazon Cognito
 
20200826 AWS Black Belt Online Seminar AWS CloudFormation
20200826 AWS Black Belt Online Seminar AWS CloudFormation 20200826 AWS Black Belt Online Seminar AWS CloudFormation
20200826 AWS Black Belt Online Seminar AWS CloudFormation
 
20200722 AWS Black Belt Online Seminar AWSアカウント シングルサインオンの設計と運用
20200722 AWS Black Belt Online Seminar AWSアカウント シングルサインオンの設計と運用20200722 AWS Black Belt Online Seminar AWSアカウント シングルサインオンの設計と運用
20200722 AWS Black Belt Online Seminar AWSアカウント シングルサインオンの設計と運用
 
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
 
20190220 AWS Black Belt Online Seminar Amazon S3 / Glacier
20190220 AWS Black Belt Online Seminar Amazon S3 / Glacier20190220 AWS Black Belt Online Seminar Amazon S3 / Glacier
20190220 AWS Black Belt Online Seminar Amazon S3 / Glacier
 
20210526 AWS Expert Online マルチアカウント管理の基本
20210526 AWS Expert Online マルチアカウント管理の基本20210526 AWS Expert Online マルチアカウント管理の基本
20210526 AWS Expert Online マルチアカウント管理の基本
 
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajpAt least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
 
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
 
20190731 Black Belt Online Seminar Amazon ECS Deep Dive
20190731 Black Belt Online Seminar Amazon ECS Deep Dive20190731 Black Belt Online Seminar Amazon ECS Deep Dive
20190731 Black Belt Online Seminar Amazon ECS Deep Dive
 
AWS Black Belt Online Seminar AWS Direct Connect
AWS Black Belt Online Seminar AWS Direct ConnectAWS Black Belt Online Seminar AWS Direct Connect
AWS Black Belt Online Seminar AWS Direct Connect
 
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
 
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)
 
20220409 AWS BLEA 開発にあたって検討したこと
20220409 AWS BLEA 開発にあたって検討したこと20220409 AWS BLEA 開発にあたって検討したこと
20220409 AWS BLEA 開発にあたって検討したこと
 
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
 
AWS Organizations連携サービスの罠(Security JAWS 第26回 発表資料)
AWS Organizations連携サービスの罠(Security JAWS 第26回 発表資料)AWS Organizations連携サービスの罠(Security JAWS 第26回 発表資料)
AWS Organizations連携サービスの罠(Security JAWS 第26回 発表資料)
 

Similar to 20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13

Navigating Microservice Architecture with AWS - AWS Public Sector Summit Sing...
Navigating Microservice Architecture with AWS - AWS Public Sector Summit Sing...Navigating Microservice Architecture with AWS - AWS Public Sector Summit Sing...
Navigating Microservice Architecture with AWS - AWS Public Sector Summit Sing...Amazon Web Services
 
AWS FSI Symposium 2017 NYC - Moving at the Speed of Serverless ft Broadridge
AWS FSI Symposium 2017 NYC - Moving at the Speed of Serverless ft BroadridgeAWS FSI Symposium 2017 NYC - Moving at the Speed of Serverless ft Broadridge
AWS FSI Symposium 2017 NYC - Moving at the Speed of Serverless ft BroadridgeAmazon Web Services
 
Learn how to build serverless applications using the AWS Serverless Platform-...
Learn how to build serverless applications using the AWS Serverless Platform-...Learn how to build serverless applications using the AWS Serverless Platform-...
Learn how to build serverless applications using the AWS Serverless Platform-...Amazon Web Services
 
20200721 AWS Black Belt Online Seminar AWS App Mesh
20200721 AWS Black Belt Online Seminar AWS App Mesh20200721 AWS Black Belt Online Seminar AWS App Mesh
20200721 AWS Black Belt Online Seminar AWS App MeshAmazon Web Services Japan
 
SRV310_Designing Microservices with Serverless
SRV310_Designing Microservices with ServerlessSRV310_Designing Microservices with Serverless
SRV310_Designing Microservices with ServerlessAmazon Web Services
 
What's New in Serverless - SRV305 - re:Invent 2017
What's New in Serverless - SRV305 - re:Invent 2017What's New in Serverless - SRV305 - re:Invent 2017
What's New in Serverless - SRV305 - re:Invent 2017Amazon Web Services
 
Introduction to Serverless on AWS - Builders Day Jerusalem
Introduction to Serverless on AWS - Builders Day JerusalemIntroduction to Serverless on AWS - Builders Day Jerusalem
Introduction to Serverless on AWS - Builders Day JerusalemAmazon Web Services
 
How to Build Scalable Serverless Applications
How to Build Scalable Serverless ApplicationsHow to Build Scalable Serverless Applications
How to Build Scalable Serverless ApplicationsAmazon Web Services
 
Introduction to the Serverless Cloud
Introduction to the Serverless CloudIntroduction to the Serverless Cloud
Introduction to the Serverless CloudAmazon Web Services
 
GPSMKT201-Expanding Channel Opportunities Using AWS Marketplace as a Fulfillm...
GPSMKT201-Expanding Channel Opportunities Using AWS Marketplace as a Fulfillm...GPSMKT201-Expanding Channel Opportunities Using AWS Marketplace as a Fulfillm...
GPSMKT201-Expanding Channel Opportunities Using AWS Marketplace as a Fulfillm...Amazon Web Services
 
AWS Marketplace on Reaching Enterprises
AWS Marketplace on Reaching EnterprisesAWS Marketplace on Reaching Enterprises
AWS Marketplace on Reaching EnterprisesAmazon Web Services
 
GPSTEC314-GPS From Monolithic to Serverless - Why and How to Move
GPSTEC314-GPS From Monolithic to Serverless - Why and How to MoveGPSTEC314-GPS From Monolithic to Serverless - Why and How to Move
GPSTEC314-GPS From Monolithic to Serverless - Why and How to MoveAmazon Web Services
 
Scale Your IoT Platform, Ensure Your Connected Devices Perform - DEM07 - Chic...
Scale Your IoT Platform, Ensure Your Connected Devices Perform - DEM07 - Chic...Scale Your IoT Platform, Ensure Your Connected Devices Perform - DEM07 - Chic...
Scale Your IoT Platform, Ensure Your Connected Devices Perform - DEM07 - Chic...Amazon Web Services
 
Advanced Techniques for Federation of the AWS Management Console and Command ...
Advanced Techniques for Federation of the AWS Management Console and Command ...Advanced Techniques for Federation of the AWS Management Console and Command ...
Advanced Techniques for Federation of the AWS Management Console and Command ...Amazon Web Services
 
Serverless: State of The Union I AWS Dev Day 2018
Serverless: State of The Union I AWS Dev Day 2018Serverless: State of The Union I AWS Dev Day 2018
Serverless: State of The Union I AWS Dev Day 2018AWS Germany
 
Serverless Computing: build and run applications without thinking about servers
Serverless Computing: build and run applications without thinking about serversServerless Computing: build and run applications without thinking about servers
Serverless Computing: build and run applications without thinking about serversAmazon Web Services
 
Monitoring and Troubleshooting in a Serverless World - SRV303 - re:Invent 2017
Monitoring and Troubleshooting in a Serverless World - SRV303 - re:Invent 2017Monitoring and Troubleshooting in a Serverless World - SRV303 - re:Invent 2017
Monitoring and Troubleshooting in a Serverless World - SRV303 - re:Invent 2017Amazon Web Services
 

Similar to 20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13 (20)

Navigating Microservice Architecture with AWS - AWS Public Sector Summit Sing...
Navigating Microservice Architecture with AWS - AWS Public Sector Summit Sing...Navigating Microservice Architecture with AWS - AWS Public Sector Summit Sing...
Navigating Microservice Architecture with AWS - AWS Public Sector Summit Sing...
 
AWS FSI Symposium 2017 NYC - Moving at the Speed of Serverless ft Broadridge
AWS FSI Symposium 2017 NYC - Moving at the Speed of Serverless ft BroadridgeAWS FSI Symposium 2017 NYC - Moving at the Speed of Serverless ft Broadridge
AWS FSI Symposium 2017 NYC - Moving at the Speed of Serverless ft Broadridge
 
Learn how to build serverless applications using the AWS Serverless Platform-...
Learn how to build serverless applications using the AWS Serverless Platform-...Learn how to build serverless applications using the AWS Serverless Platform-...
Learn how to build serverless applications using the AWS Serverless Platform-...
 
20200721 AWS Black Belt Online Seminar AWS App Mesh
20200721 AWS Black Belt Online Seminar AWS App Mesh20200721 AWS Black Belt Online Seminar AWS App Mesh
20200721 AWS Black Belt Online Seminar AWS App Mesh
 
SRV310_Designing Microservices with Serverless
SRV310_Designing Microservices with ServerlessSRV310_Designing Microservices with Serverless
SRV310_Designing Microservices with Serverless
 
What's New in Serverless - SRV305 - re:Invent 2017
What's New in Serverless - SRV305 - re:Invent 2017What's New in Serverless - SRV305 - re:Invent 2017
What's New in Serverless - SRV305 - re:Invent 2017
 
Introduction to Serverless on AWS - Builders Day Jerusalem
Introduction to Serverless on AWS - Builders Day JerusalemIntroduction to Serverless on AWS - Builders Day Jerusalem
Introduction to Serverless on AWS - Builders Day Jerusalem
 
How to Build Scalable Serverless Applications
How to Build Scalable Serverless ApplicationsHow to Build Scalable Serverless Applications
How to Build Scalable Serverless Applications
 
Introduction to the Serverless Cloud
Introduction to the Serverless CloudIntroduction to the Serverless Cloud
Introduction to the Serverless Cloud
 
Serverless: State Of the Union
Serverless: State Of the UnionServerless: State Of the Union
Serverless: State Of the Union
 
Serverless - State Of the Union
Serverless - State Of the UnionServerless - State Of the Union
Serverless - State Of the Union
 
Serverless DevOps to the Rescue
Serverless DevOps to the RescueServerless DevOps to the Rescue
Serverless DevOps to the Rescue
 
GPSMKT201-Expanding Channel Opportunities Using AWS Marketplace as a Fulfillm...
GPSMKT201-Expanding Channel Opportunities Using AWS Marketplace as a Fulfillm...GPSMKT201-Expanding Channel Opportunities Using AWS Marketplace as a Fulfillm...
GPSMKT201-Expanding Channel Opportunities Using AWS Marketplace as a Fulfillm...
 
AWS Marketplace on Reaching Enterprises
AWS Marketplace on Reaching EnterprisesAWS Marketplace on Reaching Enterprises
AWS Marketplace on Reaching Enterprises
 
GPSTEC314-GPS From Monolithic to Serverless - Why and How to Move
GPSTEC314-GPS From Monolithic to Serverless - Why and How to MoveGPSTEC314-GPS From Monolithic to Serverless - Why and How to Move
GPSTEC314-GPS From Monolithic to Serverless - Why and How to Move
 
Scale Your IoT Platform, Ensure Your Connected Devices Perform - DEM07 - Chic...
Scale Your IoT Platform, Ensure Your Connected Devices Perform - DEM07 - Chic...Scale Your IoT Platform, Ensure Your Connected Devices Perform - DEM07 - Chic...
Scale Your IoT Platform, Ensure Your Connected Devices Perform - DEM07 - Chic...
 
Advanced Techniques for Federation of the AWS Management Console and Command ...
Advanced Techniques for Federation of the AWS Management Console and Command ...Advanced Techniques for Federation of the AWS Management Console and Command ...
Advanced Techniques for Federation of the AWS Management Console and Command ...
 
Serverless: State of The Union I AWS Dev Day 2018
Serverless: State of The Union I AWS Dev Day 2018Serverless: State of The Union I AWS Dev Day 2018
Serverless: State of The Union I AWS Dev Day 2018
 
Serverless Computing: build and run applications without thinking about servers
Serverless Computing: build and run applications without thinking about serversServerless Computing: build and run applications without thinking about servers
Serverless Computing: build and run applications without thinking about servers
 
Monitoring and Troubleshooting in a Serverless World - SRV303 - re:Invent 2017
Monitoring and Troubleshooting in a Serverless World - SRV303 - re:Invent 2017Monitoring and Troubleshooting in a Serverless World - SRV303 - re:Invent 2017
Monitoring and Troubleshooting in a Serverless World - SRV303 - re:Invent 2017
 

More from Amazon Web Services Japan

202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)
202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)
202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)Amazon Web Services Japan
 
202205 AWS Black Belt Online Seminar Amazon FSx for OpenZFS
202205 AWS Black Belt Online Seminar Amazon FSx for OpenZFS202205 AWS Black Belt Online Seminar Amazon FSx for OpenZFS
202205 AWS Black Belt Online Seminar Amazon FSx for OpenZFSAmazon Web Services Japan
 
202204 AWS Black Belt Online Seminar AWS IoT Device Defender
202204 AWS Black Belt Online Seminar AWS IoT Device Defender202204 AWS Black Belt Online Seminar AWS IoT Device Defender
202204 AWS Black Belt Online Seminar AWS IoT Device DefenderAmazon Web Services Japan
 
202204 AWS Black Belt Online Seminar Amazon Connect を活用したオンコール対応の実現
202204 AWS Black Belt Online Seminar Amazon Connect を活用したオンコール対応の実現202204 AWS Black Belt Online Seminar Amazon Connect を活用したオンコール対応の実現
202204 AWS Black Belt Online Seminar Amazon Connect を活用したオンコール対応の実現Amazon Web Services Japan
 
202204 AWS Black Belt Online Seminar Amazon Connect Salesforce連携(第1回 CTI Adap...
202204 AWS Black Belt Online Seminar Amazon Connect Salesforce連携(第1回 CTI Adap...202204 AWS Black Belt Online Seminar Amazon Connect Salesforce連携(第1回 CTI Adap...
202204 AWS Black Belt Online Seminar Amazon Connect Salesforce連携(第1回 CTI Adap...Amazon Web Services Japan
 
Amazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデート
Amazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデートAmazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデート
Amazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデートAmazon Web Services Japan
 
202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用
202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用
202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用Amazon Web Services Japan
 
202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf
202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf
202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdfAmazon Web Services Japan
 
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介Amazon Web Services Japan
 
Amazon QuickSight の組み込み方法をちょっぴりDD
Amazon QuickSight の組み込み方法をちょっぴりDDAmazon QuickSight の組み込み方法をちょっぴりDD
Amazon QuickSight の組み込み方法をちょっぴりDDAmazon Web Services Japan
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことAmazon Web Services Japan
 
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチAmazon Web Services Japan
 
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介Amazon Web Services Japan
 
202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles
202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles
202202 AWS Black Belt Online Seminar Amazon Connect Customer ProfilesAmazon Web Services Japan
 
Amazon Game Tech Night #24 KPIダッシュボードを最速で用意するために
Amazon Game Tech Night #24 KPIダッシュボードを最速で用意するためにAmazon Game Tech Night #24 KPIダッシュボードを最速で用意するために
Amazon Game Tech Night #24 KPIダッシュボードを最速で用意するためにAmazon Web Services Japan
 
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨Amazon Web Services Japan
 
[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介
[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介
[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介Amazon Web Services Japan
 
202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介
202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介
202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介Amazon Web Services Japan
 
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...Amazon Web Services Japan
 
202112 AWS Black Belt Online Seminar 店内の「今」をお届けする小売業向けリアルタイム配信基盤のレシピ
202112 AWS Black Belt Online Seminar 店内の「今」をお届けする小売業向けリアルタイム配信基盤のレシピ202112 AWS Black Belt Online Seminar 店内の「今」をお届けする小売業向けリアルタイム配信基盤のレシピ
202112 AWS Black Belt Online Seminar 店内の「今」をお届けする小売業向けリアルタイム配信基盤のレシピAmazon Web Services Japan
 

More from Amazon Web Services Japan (20)

202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)
202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)
202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)
 
202205 AWS Black Belt Online Seminar Amazon FSx for OpenZFS
202205 AWS Black Belt Online Seminar Amazon FSx for OpenZFS202205 AWS Black Belt Online Seminar Amazon FSx for OpenZFS
202205 AWS Black Belt Online Seminar Amazon FSx for OpenZFS
 
202204 AWS Black Belt Online Seminar AWS IoT Device Defender
202204 AWS Black Belt Online Seminar AWS IoT Device Defender202204 AWS Black Belt Online Seminar AWS IoT Device Defender
202204 AWS Black Belt Online Seminar AWS IoT Device Defender
 
202204 AWS Black Belt Online Seminar Amazon Connect を活用したオンコール対応の実現
202204 AWS Black Belt Online Seminar Amazon Connect を活用したオンコール対応の実現202204 AWS Black Belt Online Seminar Amazon Connect を活用したオンコール対応の実現
202204 AWS Black Belt Online Seminar Amazon Connect を活用したオンコール対応の実現
 
202204 AWS Black Belt Online Seminar Amazon Connect Salesforce連携(第1回 CTI Adap...
202204 AWS Black Belt Online Seminar Amazon Connect Salesforce連携(第1回 CTI Adap...202204 AWS Black Belt Online Seminar Amazon Connect Salesforce連携(第1回 CTI Adap...
202204 AWS Black Belt Online Seminar Amazon Connect Salesforce連携(第1回 CTI Adap...
 
Amazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデート
Amazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデートAmazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデート
Amazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデート
 
202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用
202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用
202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用
 
202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf
202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf
202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf
 
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
 
Amazon QuickSight の組み込み方法をちょっぴりDD
Amazon QuickSight の組み込み方法をちょっぴりDDAmazon QuickSight の組み込み方法をちょっぴりDD
Amazon QuickSight の組み込み方法をちょっぴりDD
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
 
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
 
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
 
202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles
202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles
202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles
 
Amazon Game Tech Night #24 KPIダッシュボードを最速で用意するために
Amazon Game Tech Night #24 KPIダッシュボードを最速で用意するためにAmazon Game Tech Night #24 KPIダッシュボードを最速で用意するために
Amazon Game Tech Night #24 KPIダッシュボードを最速で用意するために
 
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨
 
[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介
[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介
[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介
 
202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介
202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介
202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介
 
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...
 
202112 AWS Black Belt Online Seminar 店内の「今」をお届けする小売業向けリアルタイム配信基盤のレシピ
202112 AWS Black Belt Online Seminar 店内の「今」をお届けする小売業向けリアルタイム配信基盤のレシピ202112 AWS Black Belt Online Seminar 店内の「今」をお届けする小売業向けリアルタイム配信基盤のレシピ
202112 AWS Black Belt Online Seminar 店内の「今」をお届けする小売業向けリアルタイム配信基盤のレシピ
 

Recently uploaded

20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
20240510 QFM016 Irresponsible AI Reading List April 2024.pdf20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
20240510 QFM016 Irresponsible AI Reading List April 2024.pdfMatthew Sinclair
 
20240508 QFM014 Elixir Reading List April 2024.pdf
20240508 QFM014 Elixir Reading List April 2024.pdf20240508 QFM014 Elixir Reading List April 2024.pdf
20240508 QFM014 Elixir Reading List April 2024.pdfMatthew Sinclair
 
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制pxcywzqs
 
在线制作约克大学毕业证(yu毕业证)在读证明认证可查
在线制作约克大学毕业证(yu毕业证)在读证明认证可查在线制作约克大学毕业证(yu毕业证)在读证明认证可查
在线制作约克大学毕业证(yu毕业证)在读证明认证可查ydyuyu
 
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样ayvbos
 
一比一原版田纳西大学毕业证如何办理
一比一原版田纳西大学毕业证如何办理一比一原版田纳西大学毕业证如何办理
一比一原版田纳西大学毕业证如何办理F
 
best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...
best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...
best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...kajalverma014
 
Indian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
Indian Escort in Abu DHabi 0508644382 Abu Dhabi EscortsIndian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
Indian Escort in Abu DHabi 0508644382 Abu Dhabi EscortsMonica Sydney
 
Vip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac Room
Vip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac RoomVip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac Room
Vip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac Roommeghakumariji156
 
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查ydyuyu
 
Mira Road Housewife Call Girls 07506202331, Nalasopara Call Girls
Mira Road Housewife Call Girls 07506202331, Nalasopara Call GirlsMira Road Housewife Call Girls 07506202331, Nalasopara Call Girls
Mira Road Housewife Call Girls 07506202331, Nalasopara Call GirlsPriya Reddy
 
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样ayvbos
 
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdfpdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdfJOHNBEBONYAP1
 
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...APNIC
 
Ballia Escorts Service Girl ^ 9332606886, WhatsApp Anytime Ballia
Ballia Escorts Service Girl ^ 9332606886, WhatsApp Anytime BalliaBallia Escorts Service Girl ^ 9332606886, WhatsApp Anytime Ballia
Ballia Escorts Service Girl ^ 9332606886, WhatsApp Anytime Balliameghakumariji156
 
哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查
哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查
哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查ydyuyu
 
一比一原版奥兹学院毕业证如何办理
一比一原版奥兹学院毕业证如何办理一比一原版奥兹学院毕业证如何办理
一比一原版奥兹学院毕业证如何办理F
 
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
20240507 QFM013 Machine Intelligence Reading List April 2024.pdfMatthew Sinclair
 
Nagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime Nagercoil
Nagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime NagercoilNagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime Nagercoil
Nagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime Nagercoilmeghakumariji156
 
Russian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
Russian Escort Abu Dhabi 0503464457 Abu DHabi EscortsRussian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
Russian Escort Abu Dhabi 0503464457 Abu DHabi EscortsMonica Sydney
 

Recently uploaded (20)

20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
20240510 QFM016 Irresponsible AI Reading List April 2024.pdf20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
 
20240508 QFM014 Elixir Reading List April 2024.pdf
20240508 QFM014 Elixir Reading List April 2024.pdf20240508 QFM014 Elixir Reading List April 2024.pdf
20240508 QFM014 Elixir Reading List April 2024.pdf
 
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
 
在线制作约克大学毕业证(yu毕业证)在读证明认证可查
在线制作约克大学毕业证(yu毕业证)在读证明认证可查在线制作约克大学毕业证(yu毕业证)在读证明认证可查
在线制作约克大学毕业证(yu毕业证)在读证明认证可查
 
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
 
一比一原版田纳西大学毕业证如何办理
一比一原版田纳西大学毕业证如何办理一比一原版田纳西大学毕业证如何办理
一比一原版田纳西大学毕业证如何办理
 
best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...
best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...
best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...
 
Indian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
Indian Escort in Abu DHabi 0508644382 Abu Dhabi EscortsIndian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
Indian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
 
Vip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac Room
Vip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac RoomVip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac Room
Vip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac Room
 
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
 
Mira Road Housewife Call Girls 07506202331, Nalasopara Call Girls
Mira Road Housewife Call Girls 07506202331, Nalasopara Call GirlsMira Road Housewife Call Girls 07506202331, Nalasopara Call Girls
Mira Road Housewife Call Girls 07506202331, Nalasopara Call Girls
 
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
 
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdfpdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
 
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
 
Ballia Escorts Service Girl ^ 9332606886, WhatsApp Anytime Ballia
Ballia Escorts Service Girl ^ 9332606886, WhatsApp Anytime BalliaBallia Escorts Service Girl ^ 9332606886, WhatsApp Anytime Ballia
Ballia Escorts Service Girl ^ 9332606886, WhatsApp Anytime Ballia
 
哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查
哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查
哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查
 
一比一原版奥兹学院毕业证如何办理
一比一原版奥兹学院毕业证如何办理一比一原版奥兹学院毕业证如何办理
一比一原版奥兹学院毕业证如何办理
 
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
 
Nagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime Nagercoil
Nagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime NagercoilNagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime Nagercoil
Nagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime Nagercoil
 
Russian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
Russian Escort Abu Dhabi 0503464457 Abu DHabi EscortsRussian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
Russian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
 

20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13

  • 1. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 27th Jan, 2021 Kensuke Shimokawa 今日から始める イベントドリブンアーキテクチャ @_kensh AWS Expert Online JAWS-UG
  • 2. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Who am I? Name Kensuke Shimokawa Company Amazon Web Services Japan K.K. Role Serverless Specialist Solutions Architect @_kensh
  • 3. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 本セッションは 想定される聴講者 • AWSをご利用されている事業者、デベロッパー • AWSを今後利用したビジネスを考えている方 • イベントドリブンアーキテクチャ構築に興味がある方 ゴール • システムでのイベントドリブンアーキテクチャの使い所を理解していただく
  • 4. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. イノベーションループ Listen Idea Experiment イノベーション ループ 傾聴 アイデア 実験
  • 5. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. "デリバリー速度"の獲得。 マイクロサービスの最大のメリットはビジネス変化に対応する "デリバリー速度"の獲得。 でもAPIで作ったサービスは頻繁な変更に対応するのは難しいですよね。 なぜならAPIにはインターフェース契約があるから。 そこで、アイデアとして登場したのが ”疎結合” にマイクロサービス を組み立て る、イベントドリブンアーキテクチャ。
  • 6. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Table of contents
  • 7. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
  • 8. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. アーキテクチャのゴールは "デリバリー速度"の獲得
  • 9. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. モノリスからマイクロサービス へ Monolith 全てを担当 Microservice 一つの責務の組み合わせ
  • 10. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 2001年のAmazonでは、、、 monolithic application + teams 2001 学び: アジリティのために分散が必要 2002 microservices + 2 pizza teams
  • 11. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. アーキテクチャの結合度 小さなピースに分けて ゆるく結合させたい
  • 12. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 小さなピースをAPIで結合してみる API API
  • 13. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 契約による結合 API API インターフェース契約 APIにはインターフェースを公開し 利用者に宣言する必要がある 利用者は公開者の宣言にしたがって 送信する義務を負う
  • 14. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 互いに依存する API API (API利用者) 契約を守らないと呼び出せない (API提供者) 契約を破棄できない 不自然な維持、冗長な拡張
  • 15. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 仕様と実装の乖離が許されないAPI = 契約 • 契約を記述する手段の進化 • 契約の配布やスキーマレジストリ 管理のマネージド化 • ただし、契約は公開されるが、強制できる ものではない。 • そして、APIエコノミーへ • クローズドなAPIからオープンなAPIへ
  • 16. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 多様化、複雑化、膨大化する依存関係 API 互いに依存する 互いに依存する
  • 17. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. “デリバリー速度”の獲得? 達成できたか?
  • 18. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 同期的なAPIの課題 • 他サービスの障害に影響を受ける • サービスのIPが変わった場合の発見が難しい • API自体の数が増加し、クライアントへの統一した体験が提供しにくい • HTTPリソースやメソッドごとに要件が複雑化
  • 19. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. APIにおける様々な改善 • サービスメッシュ • API ゲートウェイ • サーキットブレーカー • 集約ログ • ポリグロット • GraphQL • サービスディスカバリ (注意) • 今回のセッションではイベントの理解の ために、あえてAPIと比較をしています が、APIとイベントは排他の関係ではな く、通常は協調して利用します • APIの管理方法も日々進化していますの で、APIの課題がそのまま当てはまるわ けではありません ※本日のセッションではAPIの管理方法の進化については割愛
  • 20. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
  • 21. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. event [i-’vent] noun システムの状態が変化 したことを示す信号
  • 22. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. イベントとは • イベントは状態の変化に関する情報をサービス間で共有するためのメカニズム • Immutable – イベントは過去に遡っての修正はできない • イベントには意味的な意図があり、過去形の動詞として表現可能, • e.g. “customer_created” • コンテキスト共通のプロパティによって、システムの相関を取っている • e.g. “customer_id”
  • 23. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Eventは時系列に事実を 伝える手段 Time What 2021 01 21 08 07 06 CustomerCreated 2021 01 21 08 07 09 OrderCreated 2021 01 21 08 07 13 PaymentSuccessful 2021 01 21 08 07 17 CustomerUpdated . . . . . . イベントはWhatを伝える時系列データ
  • 24. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. イベントは観測するものであり、命令ではない 命令としての command 観測による event
  • 25. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. サービスとイベントルーティング機能を切り離す プロデューサ、コンシューマ の抽象化 イベントを選択して フィルタリング可能に プロデューサ コンシューマ ルーティング 送信イベント 受信イベント フィルタリング
  • 26. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 応答性とサービス間依存度の違い API Event
  • 27. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 契約時 • API設計時にサービス間の契約を締結 • 変化のためにはサービス実装の変更 API API 同期APIと非同期イベント配信の規約設定タイミング イベント配信時 • 非同期実行による分散 • 障害伝搬リスクの軽減 • 変化のためには配信ルールの変更 Service A Service B Message Message Service A Service B Event API Event
  • 28. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 結合度を実例で確認 (同期API) プロデューサ コンシューマ 😀 受注 サービス 発送 サービス 会計 サービス • プロデューサとコンシューマ が密結合 • 複数サービスが障害ポイント • サービスクオリティの低いも のが全体のサービス品質を決 定 • 外部への依存度が大きく、拡 張性が乏しい
  • 29. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 結合度を実例で確認 (同期API) プロデューサ コンシューマ 受注 サービス 発送 サービス 会計 サービス • プロデューサとコンシューマ が密結合 • 複数サービスが障害ポイント • サービスクオリティの低いも のが全体のサービス品質を決 定 • 外部への依存度が大きく、拡 張性が乏しい 😩 ダウンストリームの 障害に影響を受ける
  • 30. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 結合度を実例で確認 (同期API) プロデューサ コンシューマ 受注 サービス 発送 サービス 会計 サービス 在庫 サービス • プロデューサとコンシューマ が密結合 • 複数サービスが障害ポイント • サービスクオリティの低いも のが全体のサービス品質を決 定 • 外部への依存度が大きく、拡 張性が乏しい 😀 新サービス追加 コードの修正が必要
  • 31. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 結合度を実例で確認 (非同期Event) プロデューサ コンシューマ 😀 受注 サービス 発送 サービス 会計 サービス • プロデューサとコンシューマ が疎結合 • 各サービスは独立 • 品質、可用性管理を独自に実 施可能 • 外部への依存度が低いため、 拡張性が高い Event
  • 32. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 結合度を実例で確認 (非同期Event) プロデューサ コンシューマ 😀 受注 サービス 発送 サービス 会計 サービス • プロデューサとコンシューマ が疎結合 • 各サービスは独立 • 品質、可用性管理を独自に実 施可能 • 外部への依存度が低いため、 拡張性が高い Event ダウンストリームの 障害からの分離
  • 33. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 結合度を実例で確認 (非同期Event) プロデューサ コンシューマ 😀 受注 サービス 発送 サービス 会計 サービス • プロデューサとコンシューマ が疎結合 • 各サービスは独立 • 品質、可用性管理を独自に実 施可能 • 外部への依存度が低いため、 拡張性が高い Event 在庫 サービス コードの修正不要 新サービス追加時に Subscribeするだけ
  • 34. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
  • 35. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. イベントドリブンアーキテクチャを何で実装するか プロデューサ コンシューマ 😀 受注 サービス 発送 サービス 会計 サービス • 実装の考慮点 • 可用性についての検討 • スケーラビリティにつ いての検討 • サーバーの運用管理 • コスト見積もり Event 在庫 サービス この部分の イベント管理をどの ように実装するか
  • 36. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. サーバーレス とは? サーバーがない? サーバーの存在を意識しない • ユーザーコントロール可能なサーバーを前提としない • AWS のフルマネージドな管理
  • 37. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. サーバーレスを選択するビジネス価値 インフラのプロビジョニング不要 サーバー管理不要 自動でスケール 価値に対する支払い 高可用かつ安全
  • 38. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. サーバーレスの効能 + 利用費の 適正化 作業量の 削減 + 時間の 短縮
  • 39. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. イベントの管理はサーバーレス サービスで プロデューサ コンシューマ 😀 受注 サービス 発送 サービス 会計 サービス • インフラのプロビジョニング 不要、サーバー管理不要 • 自動でスケール • 価値に対する支払い • 高可用かつ安全 Event 在庫 サービス サーバーレス
  • 40. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
  • 41. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. イベントドリブンのパーツ 非同期イベント 応答性を高め、相互依存性 を低減 イベントルーター プロデューサとコンシューマを 互いから抽象化 イベントストア ビジネスロジックのプロセスが 稼働可能になるまでストア可能
  • 42. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWSのイベント、メッセージングサービス イベントルーター イベントストア キュー ストリーム トピック イベントバス サーバーレス マネージドOSS Amazon SQS Amazon MQ Amazon SNS Amazon MQ Amazon Kinesis Amazon MSK Amazon EventBridge
  • 43. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. SNS Topic Data Amazon Simple Notification Service (SNS) • Publish / subscribe モデルメッセージング • 高スループット, 高信頼性メッセージング • 複数のパブリッシャーに配信 • ファンアウト • メッセージフィルタリンを利用して配信タ ーゲットを指定可能 • 非同期Lambda実行
  • 44. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Message SQS Queue SQS はLambda サービス側で関 数から成功応答 が返った場合に メッセージ削除 Amazon Simple Queue Service (SQS) • 大量メッセージ • メッセージのバッチ処理 • At least once 配信 (標準キュー) • 複数回受信を防ぐ可視性タイムアウト • 同期Lambda実行 • Lambdaはロングポーリング
  • 45. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Kinesis Data Streams • リアルタイムメッセージング • At least once 配信(Lambda統合時) • Lambda関数はバッチ取得可能 • 1メッセージ内に論理バッチも可能 • 同期Lambda実行 Kinesis Stream Lambdaサービス は、メッセージ が期限切れで削 除されるまで、 ポーリング Data
  • 46. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 各モデルでのイベントハンドリング イベントストアを 利用しない (FIFOで順序) 高耐久性の メッセージ処理 (FIFOで順序) Amazon SNS Amazon SQS Amazon Kinesis 高耐久性の メッセージ処理 (順序の保証)
  • 47. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon EventBridge AWS Cloud AWS Cloud AWS Cloud Amazon EventBridge 異なるチーム、組織の間でも、Push型での情報連携(イベント通知)を 可能にするイベントバス
  • 48. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS Lambdaの非同期実行 Amazon S3 Amazon SNS Amazon SES Amazon EventBridge Amazon CloudWatch Logs AWS Config Amazon CloudFormation AWS CodeCommit AWS Lambda Amazon SNS Amazon SQS Amazon EventBridge Lambda Function onSuccess onFailure
  • 49. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. イベントドリブン・ユースケース
  • 50. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. ファイルアップロード処理 1. Amazon S3 バケットにファイ ルをアップロード 2. Lambda関数の非同期実行 • イベントペイロード: » Bucket name » Object key 1 2 Lambda + Amazon S3 Amazon S3 Upload Event file Lambda Function
  • 51. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. ファイルアップロード処理 3. Amazon Rekognitionを使用し た画像解析 4. 画像解析の結果を保存 1 2 イメージ解析、データ永続化 Amazon Rekognition Amazon DynamoDB 3 4 file Upload Event Amazon S3 Lambda Function
  • 52. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. ストリームデータの取り込みと保存 1. LambdaがKinesis Data Streamからメッセージポーリング 2. 関数が同期的にLambdaサービスから呼び出される 3. 関数によるメッセージの保存 1 2 取得、処理、保存 Amazon Redshift Amazon Elasticsearch Service 3 Kinesis Data Stream Lambda Lambda Function
  • 53. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. ダウンストリームの保護 1. API Gatewayに到達したメッセージをSQSにバッファリング 2. 関数が同期的にLambdaサービスから呼び出される • 同時実行数設定によるスループット調整 3. オンプレミスデータベースに対する、Lambda関数によるメッセージ の保存 1 2 スループットの調整 3 Lambda Lambda Function Amazon SQS Amazon API Gateway オンプレミス データベース 物理サーバー 低スループット 高スループット 202 accepted 低可用性、ローパフォーマンス
  • 54. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. SaaSとのイベント連携 1. API Gatewayでの Webhookや、定期起動Lambdaによるポーリ ングではなく、EventBridgeのイベントバス経由でイベント連携 2. イベントの種類に応じて各種マイクロサービスを実行 モニタリングアラームの受信 AWS Cloud Amazon EventBridge アラーム
  • 55. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. イベントドリブンアーキテクチャ 導入への流れ Journey to event-driven architectures
  • 56. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. イベントドリブンアーキテクチャ導入への流れ STEP 1 ドメインに対する考慮
  • 57. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. システムではなく、ビジネスのイベントを考えてみる
  • 58. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. イベントをビジネスドメインに紐付ける 販売 配送センター サポート
  • 59. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. ビジネスプロセスを一旦オーケストレーションで考えてみる 販売 オーケストレーター 決済管理 1 4 6 注文イベント 2 在庫管理 3 5 7
  • 60. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. ドメイン境界を越える処理をSubscriptionに置き換える 販売 発送センター 注文入ったよ 注文が入ったら教えてね Subscription Notification 1 2 非同期Event
  • 61. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. イベントドリブンのモデリング EventStorming
  • 62. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. イベントドリブンアーキテクチャ導入への流れ STEP 2 イベントルータの選定
  • 63. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. ルーターが必要になるかどうか?
  • 64. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. まだ、必要じゃない?
  • 65. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 本当に、まだ必要ない?
  • 66. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 設計時にルーターを入れて非同期にできるかはまず確認!
  • 67. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. イベントドリブンアーキテクチャ導入への流れ STEP 3 イベントストアの選定
  • 68. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. イベントストアで復元力とスケーラビリティを向上 ビジネスロジックサービスが処理可能に なるまでメッセージをバッファリング Event store
  • 69. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. イベントドリブンアーキテクチャ導入への流れ STEP 4 イベントスキーマの考慮
  • 70. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. イベントはそのままの生の情報ではない 注文123は、顧客456に よって午前10時47分に 作成されました。 注文123は、顧客456によっ て午前10時47分に作成されま した。現在のステータスは オープンで、合計は$ 237.51 で、商品は…
  • 71. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 必要となる属性を考える 123 456 注文123はどの ユーザの注文?
  • 72. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon EventBridgeイベントスキーマの例 { "version": "0", "id": "adeacade-c34c-ce58-c4a0-74f106398c4e", "account": "123456789012", "region": "us-east-1", "time": "2019-12-02T21:46:19Z", "source": "order-service", "detail-type": "New Order", "resources": [], "detail": { "orderId": "cfb2ae566f9b", "customerId": "C12345", ... } }
  • 73. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. { "version": "0", "id": "adeacade-c34c-ce58-c4a0-74f106398c4e", "account": "123456789012", "region": "us-east-1", "time": "2019-12-02T21:46:19Z", "source": "order-service", "detail-type": "New Order", "resources": [], "detail": { "orderId": "cfb2ae566f9b", "customerId": "C12345", ... } } Amazon EventBridgeイベントスキーマの例
  • 74. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. { "version": "0", "id": "adeacade-c34c-ce58-c4a0-74f106398c4e", "account": "123456789012", "region": "us-east-1", "time": "2019-12-02T21:46:19Z", "source": "order-service", "detail-type": "New Order", "resources": [], "detail": { "orderId": "cfb2ae566f9b", "customerId": "C12345", ... } } Amazon EventBridgeイベントスキーマの例
  • 75. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. { "version": "0", "id": "adeacade-c34c-ce58-c4a0-74f106398c4e", "account": "123456789012", "region": "us-east-1", "time": "2019-12-02T21:46:19Z", "source": "order-service", "detail-type": "New Order", "resources": [], "detail": { "orderId": "cfb2ae566f9b", "customerId": "C12345", ... } } Amazon EventBridgeイベントスキーマの例
  • 76. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon EventBridgeイベントスキーマの例 { "version": "0", "id": "adeacade-c34c-ce58-c4a0-74f106398c4e", "account": "123456789012", "region": "us-east-1", "time": "2019-12-02T21:46:19Z", "source": "order-service", "detail-type": "New Order", "resources": [], "detail": { "orderId": "cfb2ae566f9b", "customerId": "C12345", ... } }
  • 77. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. イベントドリブン・デザインパターン
  • 78. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. イベントドリブン・デザインパターン • コレオグラフィ • 全体の作業を制御する指揮者は存在せず、個々のサービスに予め与 えられた動作条件に従ってサービスを実行 • コマンドクエリ責務分離 • データ ストアの読み取り操作と更新操作を分離 • イベント ソーシングパターン • データに対して実行された一連のすべてのアクションを記録
  • 79. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. コレオグラフィ - Choreography Streams, Topics, Queues
  • 80. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. マイクロサービスの依存関係グラフ https://www.thoughtworks.com/insights/blog/scaling-microservices-event-stream Event APIで結合 コレオグラフィー
  • 81. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. コレオグラフィーパターンとは • 必要なすべての情報を含んだ最初のイベントを 1 つのメッセージに保存し て、最初のトランザクションを完了 • 他のサービスがそのメッセージを非同期的に取得し、それぞれのタスクを 完了させる • サービスが疎結合になり、直接互いに影響を与えない • メッセージの保存と取得が非同期の関係になり、スケーラビリティと信頼 性が向上
  • 82. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. コレオグラフィーパターン ユーザー リクエストサービス リクエストキュー サービスA サービスB サービスC
  • 83. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 実装例1: SNS、 SQS、 Lambdaの利用 ユーザー リクエストサービス Amazon SNS Amazon SQS Amazon SQS Amazon SQS AWS Lambda AWS Lambda AWS Lambda ファンアウト
  • 84. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 実装例2: Amazon EventBridgeの利用 配送 ポイント プレミアム会員 カート 支払 支払い方法 認証 注文 1分毎に実行 Events 会員 ステータス 支払認証 カートに 入れる 注文完了 Amazon EventBridge リクエストサービス イベントバス
  • 85. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. コマンドクエリ責務分離 CQRSパターン
  • 86. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. コマンドクエリ責務分離パターンとは • コマンドクエリ責務分離(Command-Query Responsibility Segregation: CQRS)パターンはデータを更新するコマンドと参照するクエリを分離するこ とで、ユースケースに応じて個別にスケールすることを可能とするパターン • データソースを分離することで異なるデータ構造を取ることも可能となり、ク エリ側はクエリで返すデータ転送オブジェクト(Data Transfer Object : DTO) に合わせた形のスキーマとすることでオブジェクト関係マッピング(Object Relational Mapping : ORM)のオーバーヘッドを軽減することも可能になる • コマンド側とクエリ側が結果整合性を許容する必要がある
  • 87. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. コマンドクエリ責務共有パターン ユーザー サービス ドメインモデル ドメインモデル ORM ORM データ転送 オブジェクト クエリ 更新
  • 88. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. コマンドクエリ責務分離(CQRS)パターン ユーザー コマンドサービス ドメインモデル データ転送 オブジェクト クエリ 更新 クエリサービス データ転送 オブジェクト 非同期 結果整合
  • 89. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 実装例1: Kinesis Data StreamsとLambdaを利用 フロントサービス Amazon Kinesis Data Streams AWS Lambda AWS Lambda Amazon Aurora 正規化テーブル ユーザー Amazon DynamoDB 非正規化テーブル
  • 90. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 実装例2: DynamoDB StreamsとLambdaを利用 ユーザー Amazon DynamoDB Streams 非正規化テーブル AWS Lambda Amazon Aurora 正規化テーブル フロントサービス
  • 91. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. イベント ソーシング Event Sourcing
  • 92. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. イベントソーシングパターンとは • データストアを直接更新する代わりに、注文の発注、クレジット照会、出荷中 の注文など、ビジネスロジックに重要なイベントを耐久性のあるイベントログ に追加 • イベントレコードは個別に保存されるため、すべての更新はアトミック (分割 不可かつ削減不可) • 保存されたイベントを再度処理するだけで、アプリケーションのいかなる時点 の状態でも再構築 可能
  • 93. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. イベント ソーシングパターン ユーザー プロセス イベントログ イベント プロセス プロセス 状態
  • 94. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Kinesis Data Streams (or SQS FIFO)とLambdaによる実装例 ユーザー Amazon Kinesis Data Streams AWS Lambda イベント メッセージ 状態 Amazon SQS FIFO or
  • 95. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. イベントドリブンアーキテクチャ 選択における観点 Design Considerations
  • 96. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. At-least once 配信 イベントは、ターゲットに複数回配信 されることも。処理されたイベントの 状態を追跡することによって重複イベ ントを検出するロジックを含める (冪等性) 配信セマンティクス Exactly-once 配信* AWSサービスに重複排除に使用す る識別子を渡すことで重複排除 * Lambdaでリトライ設定している場合は、At-least once • Amazon EventBridge • Amazon SNS 標準トピック • Amazon SQS 標準 キュー • Amazon Kinesis • Amazon SNS FIFO トピック • Amazon SQS FIFO キュー
  • 97. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 順序保証なし イベント/メッセージが順序保証なしで 配信 順序セマンティクス* 順序保証 イベントは、パーティション、 メッセージグループなどの中で順 番に配信 (グローバルな順序保証はありません) • Amazon EventBridge • Amazon SNS 標準トピック • Amazon SQS 標準 キュー • Amazon Kinesis • Amazon SNS FIFO トピック • Amazon SQS FIFO キュー * 順不同のイベント処理ロジックが受入可能かは、ビジネス要件次第となります。順不動なイベントを処理する ようにアプリケーションを設計できない場合は、代わりにオーケストレーションも検討
  • 98. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
  • 99. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. まとめ マイクロサービスの最大のメリットはビジネス変化に対応する "デリバリー速度"の獲得 • イベントドリブンアーキテクチャで疎結合にすることでデリバリー速度を高 める。 • AWSのサーバーレス サービスを利用することで、イベントドリブンアーキテ クチャを素早く導入できる。 • アーキテクチャパターンや導入の道筋を知ることで、システム設計に活かす ことができる。
  • 100. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Thank you! @_kensh
  • 101. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Appendix
  • 102. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. EventBridgeサービスクオータ(抜粋) • PutEvents: Depends on region (2400-400), regional • Invocations: Depends on region (4500-750), regional • Buses per account/region: 100, hard limit • Rules per bus: 300 • Targets per rule: 5, hard limit • Event pattern size: 2048 characters, hard limit https://docs.aws.amazon.com/eventbridge/latest/userguide/cloudwatch-limits-eventbridge.html