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

EventBridge schema registry and discovery で楽々イベ...

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.
Avatar for rinrin rinrin
December 18, 2019

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

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

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

Avatar for rinrin

rinrin

December 18, 2019

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 グループ会社