Upgrade to Pro — share decks privately, control downloads, hide ads and more …

EventBridge schema registry and discovery で楽々イベントスキーマ管理

rinrin
December 18, 2019

EventBridge schema registry and discovery で楽々イベントスキーマ管理

AWS re:Invent 2019 報告会にて、現地で感じたことやEventBridgeについてお話ししました。

https://repro-tech.connpass.com/event/158646/

rinrin

December 18, 2019
Tweet

More Decks by rinrin

Other Decks in Technology

Transcript

  1. 2 • 林 裕一郎 a.k.a rinrin • re:Inventは2回目 • AWSを利用したアーキテクチャ設計/移行

    • 画像解析 • サーバーレス❤ • クラフト❤ 自己紹介 ΩλϜϥɾϗʔϧσΟϯάε ɾɾɾ テックリード Co-Founder CTO フォトライフ提案企業グループ お手伝い
  2. 4 私のre:Inventの過ごし方 2019 • AndyJassyの基調講演の大半がMLの新サービ ス・事例の話であり、MLをサービスに利用する のは当たり前に • エキスパートでなくてもMLの知識をつけて サービス実装できる社内勉強会を開催へ

    世界との差を感じる • サーバーレスの話題の多さに危機感を感じ、コ ンテナのみのアーキテクチャから、サーバーレ スファーストへ転換 • より開発スピードアップ • サーバーレスアーキテクチャにもバリエーショ ンが沢山あり、引き出しが増えた • 今日はその中の一つ、EventBridgeと新機能 のお話をします 今までのやり方を見直す 2018年 2019
  3. 5 マネージドイベントバスサービス • CloudWatch Eventsをベースに拡張されたサービス (2019/7~) • 独自アプリケーションのイベントが送信できる • SaaSのイベント(DatadogやZendeskなど)に対応

    • イベントのフィルタリング(ルール) • イベント100 万件あたり 1.00 USD Amazon EventBridge Amazon EventBridge復習 AWSサービス 独自アプリ SaaS Amazon EventBridge Kinesis Data Streams Event Bus Rule1 Rule2 Rule3 Step Functions SQS Lambda
  4. 6 • ある程度のルール化ができる(とはいえ自由度 は高め) イベント形式が決まっている Amazon EventBridge復習 { "Entries":[ {

    "Source":"com.mycompany.myapp", "Detail":"{ \"key1\": \"value1\", \"key2\": \"value2\" }", "Resources":[ "resource1", "resource2" ], "DetailType":"myDetailType" }, { "Source":"com.mycompany.myapp", "Detail":"{ \"key1\": \"value3\", \"key2\": \"value4\" }", "Resources":[ "resource1", "resource2" ], "DetailType":"myDetailType" } ] } PutEvents APIのリクエストフォーマット プロパティ 内容 Source イベントソース名 Detail イベントの詳細内容 JSON文字列のみ有効 Resources 関連するAWSリソース(ARN) DetailType イベント名
  5. 7 • イベントはフィルタリングすることができる • 受信側は好きなイベントを受信しない選択ができ る • イベント送受信のスループットとレイテンシはSNS の方が大きく有利 •

    イベント送信(PutEvents)は400/s • ターゲットの起動数(Invocations)は750/sで調整 される • レイテンシーは500ms(遅い!) EventBridge vs SNS Amazon EventBridge復習 購入 SNS SNSは Directed(指示) 発注 購入 EventBridge 発注 Rule EventBridgeはObservable(観測可能) 売り上げレポーティング Rule イベントA イベントB 売り上げレポーティング イベントAとBは受信なし ※上限緩和は可能
  6. 8 • イベントのスキーマ(型)を登録可能に • スキーマはOpenAPI3.0 • 開発チームの距離が遠い場合はコミュニケーションのオー バーヘッドを小さくできそう • スキーマをもとにIDEからコードを生成可能

    • マネージメントコンソールからコードをダウンロードも可能 • Java, Python, TypeScriptに対応 • JavaはSAMアプリケーション生成まで • PythonとTypeScriptは(Un)Marshaller生成止まり • OpenAPI3.0なのでコード生成は色々できそう Schema Registry in Preview Amazon EventBridge新機能 NEW Event Source Event Bus Rule Schema Registry 登録 コード生成
  7. 9 • 送信されているイベントから自動的にスキーマ をSchema Registryに登録 • イベントバスごとに有効化する • 流れるイベント100 万件あたり

    0.10 USD Schema Discovery in Preview Amazon EventBridge新機能 NEW Event Source Event Bus Rule Schema Discovery Schema Registry 登録 自動登録 コード生成
  8. 10 • グループの共通サービス • 画像補正や解析など処理時間が長く非同期処理とな るもの • イベントを受ける側がイベントバスを作成して、それを 共通サービス側に連携する •

    ターゲット起動のアクセス制御を考えるとイベント を受ける側に持った方が都合がいい • スループットの制限もある キタムラグループでの 利用が期待できるケース 共通サービスバックエンド グループ共通基盤AWSアカウント フォトクリエイト サービスA 共通サービスAPI 処理ステータス 完了・エラー通知 サービスB グループ会社