$30 off During Our Annual Pro Sale. View Details »

re:Invent2022 前後の Amazon EventBridge のアップデートを踏まえつつ、情シスの仕事をより楽しくしたい話。 / EventBridge for Information Systems Department

kensh
January 31, 2023

re:Invent2022 前後の Amazon EventBridge のアップデートを踏まえつつ、情シスの仕事をより楽しくしたい話。 / EventBridge for Information Systems Department

動画はこちら
https://www.youtube.com/watch?v=9qWsGg87qgg

情シスのお仕事を調べてみて、EventBridgeが適用できそうなタスクを洗い出してみました。

kensh

January 31, 2023
Tweet

More Decks by kensh

Other Decks in Technology

Transcript

  1. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    © 2023, Amazon Web Services, Inc. or its affiliates.
    re:Invent2022 前後の Amazon EventBridge
    のアップデートを踏まえつつ、情シスの仕事
    をより楽しくしたい話。
    J A W S - U G 情 シ ス 支 部 第 2 9 回
    Kensuke Shimokawa
    Snr. Serverless Specialist
    Amazon Web Services Japan

    View Slide

  2. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    © 2023, Amazon Web Services, Inc. or its affiliates. 2
    About Me…
    Kensuke Shimokawa
    Amazon Web Services Japan
    Snr. Serverless Specialist
    情シス経験なし
    情シスの方々にはお世話になっています

    View Slide

  3. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    © 2023, Amazon Web Services, Inc. or its affiliates.
    AWSの情シスとの関わり合い
    3

    View Slide

  4. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates. 4
    MacBook が文鎮化した話し

    View Slide

  5. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    © 2023, Amazon Web Services, Inc. or its affiliates.
    情シスのお仕事を調べてみた。
    5

    View Slide

  6. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    © 2023, Amazon Web Services, Inc. or its affiliates. 6
    About Me…
    Kensuke Shimokawa
    Amazon Web Services Japan
    Snr. Serverless Specialist
    情シス経験なし
    情シスの方々にはお世話になっています
    (再掲)

    View Slide

  7. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    情シスの仕事調べてみた
    7
    https://note.com/yuki_kapi/n/nf4bb093444c8
    @かぴ

    View Slide

  8. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates. 8
    © Metaps Inc. https://blog.metapscloud.com/information-system

    View Slide

  9. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates. 9
    © Metaps Inc. https://blog.metapscloud.com/information-system

    View Slide

  10. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    情シスの仕事を楽しくするってどうするんだろう?
    10
    • IT技術に向き合い、新しい技術にチャレンジできる
    • 実践的なIT知識が身につく
    • 会社のライフラインを担っている自覚がある
    • 業務改善でユーザーに喜ばれる
    • 感謝されることが多い
    • 社内のさまざまな部門と関わる機会が持てる
    • 戦友が増える(社内+ベンダー)
    • 経営戦略に関わることができる
    • ITで会社の売上や成長に貢献できる
    • 知人になんかすごいねと言われる
    EventBridge の実践的な知識!
    EventBridge は人や組織をつなぐ。
    アプリケーションもつなぐ。
    SaaS もつなぐ!
    明日からどんどん使っていこう!

    View Slide

  11. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    © 2023, Amazon Web Services, Inc. or its affiliates.
    情シスのココを楽しくしたい。
    11

    View Slide

  12. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    情シスの仕事調べてみた
    12
    https://note.com/yuki_kapi/n/nf4bb093444c8
    @かぴ
    承認フロー
    多そう?
    定例作業
    多そう?

    View Slide

  13. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    情シスのココを楽しくしたい。/ 楽したい。
    • 承認フローを作る
    • 簡単なバッチ処理を作る
    • 定例作業を自動化する
    • Slack 通知する
    13
    承認フロー
    多そう?
    定例作業
    多そう?
    https://note.com/yuki_kapi/n/nf4bb093444c8
    @かぴ

    View Slide

  14. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    情シスのココを楽しくしたい。/ 楽したい。
    14
    • 楽しくする
    • 業務ユーザーに貢献する部分を増やし
    • 義務的な仕事を減らす
    • 業務ユーザーに貢献する部分を増やす
    • ローコードで高い生産性を目指す
    • 義務的な仕事を減らす
    • サーバーのお守り仕事を増やさない (= サーバーレス)

    View Slide

  15. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    © 2023, Amazon Web Services, Inc. or its affiliates.
    Amazon EventBridge
    15

    View Slide

  16. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    Amazon EventBridge って何 ?
    16
    イベント を 橋渡し するサービス
    Event Bridge
    イベント
    発行側
    イベント
    受信・活用

    View Slide

  17. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates. 17
    “イベント”
    状態が変更されたことを⽰すシグナル
    JavaScript イベント
    • ユーザーアクション: ボタンが押されたとき、なにか入力されたとき…
    • システムイベント: 画面がロードされたとき、データを受け取ったとき…
    • カスタムイベント: 任意にシグナルを発火
    アプリケーション固有イベント
    • 在庫が 10を下回ったとき、お客様がいくつかのページを繰り返し見ているとき…

    View Slide

  18. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    Amazon EventBridge の3つのパート
    18
    Pipes
    Event Bus Scheduler
    New! New!

    View Slide

  19. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    異種環境間をイベントでつなぎ、アクションへ
    19
    イベント
    発行側
    イベント
    受信・活用
    &$αΠτ
    $3.
    $9ϓϥοτϑΥʔϜ
    • 認証、セキュリティ
    • ネットワーク不通への対処
    • サーバー障害対応
    • いつ来るかわからない
    イベントを待機
    • 処理性能の担保
    :

    View Slide

  20. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    例えば…
    20
    $3.
    顧客情報更新
    → データ伝播
    → 発注処理へ
    &$αΠτ
    新規商品登録
    → 登録画像を
    AI サービスで
    画像解析し
    タグを追加
    Πϯγσϯτ
    ؅ཧ
    新規インシデント
    → 営業への通知
    → 優先度の更新
    ೝূ
    不正イベント
    → 緊急の制御を
    各システムへ
    展開
    システム
    連携
    付加価値
    の追加
    情報
    活用
    リスク
    低減

    View Slide

  21. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    Amazon EventBridge Event Bus
    21
    AWS Cloud
    AWS Cloud
    AWS Cloud
    Event Bus
    異なるチーム間の Push型での情報連携(イベント通知)を可能にするイベントバス

    View Slide

  22. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    © 2023, Amazon Web Services, Inc. or its affiliates.
    EventBridge Pipes
    Event Source Mapping as a Service
    22

    View Slide

  23. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    Amazon EventBridge の3つのパート
    23
    Pipes
    Event Bus Scheduler
    New! New!

    View Slide

  24. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates. 24
    いつも、業務間の中継処理をどうしてますか?

    View Slide

  25. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    定期ジョブ?
    25
    Amazon DynamoDB Amazon SQS
    何か繋ぐためのコード
    バッチサーバー上で何らかのプログラムが定期的に動いてる
    と言うケースが多いかも?
    システム A システム B

    View Slide

  26. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates. 26
    Lambda を利用されて
    いる方も多いかも?
    Event Source Mapping

    View Slide

  27. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    繋ぐためのコードを自分で書くと、、、
    27
    Amazon DynamoDB
    Stream
    Amazon SQS
    何か繋ぐためのコード
    • Source / Target のサービスのことをコーディングレベルでよく知らないといけない
    • コーディングの中に出てくるエラーハンドリングも自分で
    • Source から取得したメッセージの順序性の維持も自分で
    • Target 送信時の 認証もリトライも自分で
    Source Target

    View Slide

  28. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    EventBridge Pipes が登場!
    28
    API
    Destination
    API
    Gateway
    Lambda Batch
    CloudWatch
    ECS
    EventBridge
    Bus
    Kinesis
    Data Firehose
    Inspector
    Kinesis
    Data Streams
    Redshift
    SageMaker
    pipeline
    SNS SQS
    Step
    Functions
    filter
    (optional)
    Step Functions
    Lambda
    API Destination
    API Gateway
    transform transform
    EventBridge Pipes
    enrich
    (optional)
    中継処理

    View Slide

  29. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    Amazon EventBridge Pipes
    29
    イベントプロデューサーとイベントコンシューマのサービス間連携を簡素化
    • イベントバス不要で、ソースとターゲットを
    シームレスに接続する構成が可能に
    • イベント駆動アプリケーションの開発を支援
    • ターゲットに送信する前に
    • イベントのバッファフィルタリング
    • 変換
    • 以下のサービスの呼び出しによる追加データの付与
    • Amazon API Gateway
    • AWS Step Functions
    • API Destinations
    • バッチ処理も可能
    • ソース側でイベントの順序性が保証されている場合、
    順序を保ったままターゲットに配信
    ソースとして利用可能なサービス
    Amazon SQS, Amazon Kinesis, Amazon DynamoDB, Amazon
    Managed Streaming for Apache Kafka,
    セルフマネージド型 Apache Kafka, Amazon MQ
    ターゲットとして利用可能なサービス
    Amazon SQS, Amazon ECS, AWS Step Functions など
    イベントバスで利用できるターゲットと同様

    View Slide

  30. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    EventBridge Pipes のユースケース
    Amazon SQS Step Functions
    EventBridge Pipes
    EventBridge Pipes
    Amazon Kinesis
    Data Streams
    Filter
    EventBridge Pipes
    Filter
    Amazon Kinesis
    Data Streams
    Amazon Kinesis
    Data Streams
    Stream EventBridge
    Pipes
    Rule
    Amazon SQS
    Step Functions API Gateway SageMaker
    Event Bus
    30
    DynamoDB

    View Slide

  31. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    配信セマンティクス
    31
    At-least once 配信
    イベントは、ターゲットに複数回配信される
    ことも。処理されたイベントの状態を追跡す
    ることによって重複イベントを検出するロ
    ジックを含める (冪等性要検討)
    Exactly-once 配信*
    AWSサービスに重複排除に使用する識別子を
    渡すことで重複排除
    * Lambdaでリトライ設定している場合は、At-least once
    • Amazon EventBridge
    • Amazon SNS 標準トピック
    • Amazon SQS 標準 キュー
    • Amazon Kinesis
    • Amazon SNS FIFO トピック
    • Amazon SQS FIFO キュー

    View Slide

  32. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    順序セマンティクス*
    32
    順序保証なし
    イベント/メッセージが順序保証なしで配信
    順序保証
    イベントは、パーティション、メッセージグ
    ループなどの中で順番に配信
    (グローバルな順序保証はありません)
    • Amazon EventBridge
    • Amazon SNS 標準トピック
    • Amazon SQS 標準 キュー
    • Amazon Kinesis
    • Amazon SNS FIFO トピック
    • Amazon SQS FIFO キュー
    • Amazon EventBridge Pipes
    * 順不同のイベント処理ロジックが受入可能かは、ビジネス要件次第
    となります。順不動なイベントを処理するようにアプリケーション
    を設計できない場合は、代わりにオーケストレーションも検討
    ※ Pipesソース側でイベントの順序性が保証されて
    いる場合、順序を保ったままターゲットに配信

    View Slide

  33. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates. 33
    具体的なユースケース

    View Slide

  34. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    定例作業を自動化する
    34
    データベース
    登録/更新
    イベント通知 処理
    定例作業
    • 日次、週次、月次のレポート
    • アカウント管理、マスタメンテナンス
    • 他システムへの連携ファイルを所定の場所に配置する
    Stream EventBridge
    Pipes
    DynamoDB Step Functions

    View Slide

  35. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    定例作業を自動化する
    35
    データベース
    登録/更新
    イベント通知
    定例作業
    • 日次、週次、月次のレポート
    • アカウント管理、マスタメンテナンス
    • 他システムへの連携ファイルを所定の場所に配置する
    Stream EventBridge
    Pipes
    DynamoDB
    Rule
    Amazon SQS
    Step Functions API Gateway SageMaker
    Event Bus
    処理
    fan out

    View Slide

  36. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    © 2023, Amazon Web Services, Inc. or its affiliates.
    EventBridge Scheduler
    One time event
    36

    View Slide

  37. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    Amazon EventBridge の3つのパート
    37
    Pipes
    Event Bus Scheduler
    New! New!

    View Slide

  38. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    Amazon EventBridge Scheduler
    38
    • マネージドなサーバーレススケジューラー
    • タスクの作成、実行、管理を行うことができる
    例:毎日 0 時に特定の Lambda 関数を実行
    例: 2022/12/31 15:00 に EC2 インスタンスを停止
    • 270+ の AWS サービス、6000+ の API アクションを呼び出すことが可能
    • 少なくとも 1 回 (at-least-once) の信頼性のある配信を保証
    • リトライポリシー、デッドレターキューを設定可能
    • マネジメントコンソール、AWS CLI、AWS SDK から設定可能
    • ユースケース:運用の自動化、バッチ処理、ビジネスロジックの遅延実行
    ex. ユーザーが解約を実行 → 残りの契約期間が過ぎた後にユーザー削除等を実施

    View Slide

  39. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    EventBridge Rules でも同様のことができていたのでは?
    39
    • できてた
    • 今回のリリースは、スケジュール機能に特化した、既存機能の拡張という位置付け
    • 今後スケジュールベースでターゲットを呼び出す場合は、EventBridge Scheduler の方を利用する
    ことが推奨されている
    • 既存の EventBridge Rules を EventBridge Scheduler に移行するような方法は特にない
    • そもそも API が異なる
    Ø EventBridge ⇨ events.us-east-1.amazonaws.com
    Ø EventBridge Scheduler ⇨ scheduler.us-east-1.amazonaws.com
    • ただしマネジメントコンソールでは、どちらの機能も EventBridge コンソールに集約されている

    View Slide

  40. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    EventBridge Scheduler の強み
    40
    • 定期実行に加えて、1 回限りの実行をサポート
    • UTC 以外の様々なタイムゾーンおよびサマータイムをサポート
    • 充実したサービス連携
    • EventBridge Rules と比較して大量のスケジュールの定義が可能

    View Slide

  41. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    利用イメージ
    41
    Lambda 関数 Amazon EventBridge
    Scheduler
    Lambda 関数 DynamoDB テーブル
    イベント
    契約開始日になったら
    スケジュールが発火
    ユーザーがサブスクリプションを契約
    サブスクリプションの登録
    ステータスの変更など
    (アプリケーション)
    スケジュールを作成
    ターゲットを
    呼び出し
    CreateSchedule API

    View Slide

  42. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    スケジュールパターン
    42
    1. Rate-based
    指定の期間内で繰り返し定期実行
    2. Cron-based
    cron 式による複雑な定期実行
    3. One-time
    指定されタイミングで 1 回だけ実行
    rate(5 minutes)
    rate(12 hours)
    rate(1 days)
    * 秒レベルの実行は未サポート
    * 分 / 時間 / 日 のみ選択可能
    cron(0 8 * * * *)
    cron(15 10 ? * 6L 2022-2023)
    * 各種ワイルドカードをサポート
    * UTC または指定のタイムゾーン
    at(2022-11-20T13:00:00)
    * 有効な日付および時間を指定
    * UTC または指定のタイムゾーン
    * 秒は指定しても 0 に切り捨てられる

    View Slide

  43. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    タイムゾーンについて
    43
    • IANA によってメンテされている タイムゾーンデータベース を使用
    ex. America/New_York, Asia/Tokyo, Japan
    • サマータイムが導入されているタイムゾーンでは以下のルールが適用される
    Ø サマータイム開始時 ⇨ 存在しない時間に設定されているスケジュールはスキップ
    Ø サマータイム終了時 ⇨ 2 回存在する時間に設定されているスケジュールは 1 度だけ実行
    01:59 03:00
    サマータイム導入日
    02:00~2:59 という
    時間が存在しない
    この時間帯に設定されている
    スケジュールはトリガーされない
    02:59 02:00
    サマータイム終了日
    02:00~2:59 という
    時間が 2 回存在する
    この時間帯に設定されている
    スケジュールはトリガーされる
    02:00
    02:30 02:30
    この時間帯に設定されている
    スケジュールはスキップされる
    * America/Los_Angeles の場合
    時計を 1 時間進める 時計を 1 時間戻す

    View Slide

  44. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    フレックスタイムウィンドウ
    44
    02:00
    オフの場合
    指定された時間に
    スケジュールされる
    02:00
    オンの場合
    指定された時間 + フレックスタイム
    ウィンドウの時間内のどこかで
    スケジュールされる
    * 15 分、30 分、1 時間、2 時間、4 時間から選択可能
    02:15
    分散システムという都合上、複数回配信される可能性がある (at-least-once)
    タイムウィンドウ内にスケジュールを分散させることで、複数回の配信確率を下げるための仕組み
    時間ぴったりに起動する必要がなければ使っておくのがおすすめ

    View Slide

  45. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    ターゲットとして指定可能な AWS サービス
    45
    1. Templated targets 2. Universal targets
    270+ services
    6000+ APIs
    20+ targets
    • Lambda Invoke や SQS SendMessage などのよく使われる API セットをサポート
    • 簡単な設定で利用を開始できる
    • AWS SDK を介して幅広い サービスおよび API をサポート
    • パラメータを自分でカスタマイズ
    • サポートされているサービス一覧

    View Slide

  46. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    Templated targets の設定例
    46
    • 例えば Lambda Invoke の場合、関数の選択と入力の設定のみ
    入力では、事前定義されたコンテキスト属性も利用可能
    – スケジュールの ARN
    – スケジュールされている時間
    – 呼び出しごとに一意の ID
    – 呼び出し試行回数のカウンター
    {
    message: "Hello world!!",
    scheduleArn: 'arn:aws:scheduler:us-west-2:1234567890:schedule/default/test-schedule',
    scheduledTime: '2022-11-22T12:00:00Z',
    executionId: 'c5dff38152f77a41',
    attemptNumber: '1'
    }
    Lambda 関数内で event を出力すると...

    View Slide

  47. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    Universal targets の設定例
    47
    • 各 API のパラメータとして必要なものを JSON で入力
    • Templated targets と同様にコンテキスト属性も利用可能

    View Slide

  48. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    IAM ロールの設定
    48
    Lambda 関数
    EventBridge
    Scheduler
    ターゲットとなる API の実行権限を持った IAM ロールを指定する必要がある
    {
    "Version": "2012-10-17",
    "Statement": [
    {
    "Effect": "Allow",
    "Action": [
    "lambda:InvokeFunction"
    ],
    "Resource": [
    "arn:aws:lambda:us-west-2:xxxxx:function:event-scheduler-test:*",
    "arn:aws:lambda:us-west-2:xxxxx:function:event-scheduler-test"
    ]
    }
    ]
    }

    View Slide

  49. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    エラーに対する回復性
    49
    Lambda 関数
    EventBridge
    Scheduler
    ターゲットの呼び出しに失敗した場合、
    リトライポリシーに従って自動的にリトライする
    * 最大 24 時間、185 回
    SQS キュー
    (デッドレターキュー )
    デッドレターキューが設定されている場合、
    最大回数リトライが失敗したタスクはキューに送信される
    * IAM ロールに sqs:SendMessage の権限を付与する必要あり
    * 別アカウントのキューも指定可能

    View Slide

  50. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    各種クォータ
    50
    • 作成可能なターゲットグループ数: アカウントあたり最大 500 まで
    (*スケジュールのグループ化に使用)
    • 作成可能なスケジュール数:アカウントあたり最大 1,000,000 まで
    (EventBridge Rules: リージョンあたり 300 ルールまで登録可能)
    • 設定可能なターゲット数:スケジュールあたり 1 つのみ
    (EventBridge Rules: 1ルール内で最大 5 ターゲットまで設定可能)
    • CreateSchedule API のリクエストレート:最大 50 TPS
    • 呼び出しスループット:最大 500 TPS (*以降はスロットリングされて遅延する)
    * ターゲット数以外は上限緩和可能

    View Slide

  51. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    モニタリング
    51
    InvocationAttemptCount EventBridge Scheduler がスケジュールを呼び出そうとした数
    TargetErrorCount ターゲットからエラーが返され、呼び出しに失敗した数
    TargetErrorThrottledCount ターゲット側でスロットリングされ、呼び出しに失敗した数
    InvocationThrottleCount EventBridge Scheduler 側でスロットリングされた数
    InvocationDroppedCount 最大リトライ回数を超えて呼び出しに失敗し、呼び出しを中止した数
    各種メトリクス
    DLQ を設定している場合、以下のメトリクスも利用可能
    • InvocationsSentToDeadLetterCount
    • InvocationsFailedToBeSentToDeadLetterCount
    • InvocationsFailedToBeSentToDeadLetterCount_
    • InvocationsSentToDeadLetterCount_Truncated_MessageSizeExceeded
    * ログについては現状 CloudTrail による API call の記録のみ

    View Slide

  52. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    料金
    52
    • スケジュールの呼び出し回数に応じて課金
    • 月あたり 14,000,000 回までは無料で利用可能
    • その後 100 万回呼び出しごと料金が発生
    Ø オレゴンリージョンの場合:$1.00
    Ø 東京リージョンの場合:$1.25

    View Slide

  53. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates. 53
    具体的なユースケース

    View Slide

  54. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    簡単なバッチ処理の実装
    54
    こんな時間指定で実施する作業多くありませんか?
    • 大きなCSVを データベースに取り込む
    • 大量のファイルのファイル形式やサイズの変換、圧縮処理
    • CSV / JSON の必要な項目だけ抽出とかも
    CSV配置先 スケジュール 処理
    時間指定
    EventBridge
    Scheduler
    Step Functions
    S3 Bucket

    View Slide

  55. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    簡単なバッチ処理の実装
    55
    S3 に置かれた CSV ファイル内のデータに
    ビジネスロジックを適用して処理を行う
    "Game Number", "Game Length"
    1, 30
    2, 29
    3, 31
    4, 16

    最大 10,000 並列実行

    View Slide

  56. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    承認フロー
    56
    こんな承認フローが必要な作業多くありませんか?
    • 作業の前の申請書類のほうが時間かかる
    • 承認者がつかまらない
    • 度々承認をもらうのが気が引ける
    EventBridge
    Scheduler
    Step Functions
    承認が必要! スケジュール 承認フロー
    時間指定
    作業者

    View Slide

  57. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    承認フロー
    57
    承認ワークフロー
    Start
    End
    TaskToken=1234
    + 承認内容
    TaskToken=1234
    + 承認 / 拒否
    Amazon SNS
    承認者
    Email
    Endpoint
    タスクトークンを待っているタスクは、
    実行が 最大で1 年間 のサービスクォータ
    に達するまで待機します
    https://docs.aws.amazon.com/ja_jp/step-functions/latest/dg/connect-to-
    resource.html#connect-wait-token

    View Slide

  58. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    キャンペーン / 開催通知
    58
    通知する作業で相手先のリソースを圧迫することも?
    • キャンペーンでショートメッセージの一斉送信
    • 通知先のサービス/サーバーに、一斉に負荷がかかる
    • ふんわりと時間差を持って通知したい
    EventBridge
    Scheduler
    通知が必要! スケジュール 通知
    時間指定
    主催者
    通知
    サービス
    フレックスタイムウィンドウ
    (例えば1時間)

    View Slide

  59. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    © 2023, Amazon Web Services, Inc. or its affiliates.
    API Destination
    59

    View Slide

  60. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    Webhook を投げる側
    60
    AWS Step Functions
    Express Workflow
    Amazon API Gateway
    HTTP
    Endpoint
    Lambda
    function Amazon SNS
    Amazon EventBridge
    Lambda
    function
    HTTP
    Endpoint
    ⾮同期
    ⾮同期
    ⾮同期
    Subscription
    API Destination
    HTTP Integration
    import requests
    url = 'https://example.com/'
    response = requests.get(url)
    同期
    retry rate
    retry
    rate
    auth
    auth
    DLQ
    retry
    DLQ
    外部 API 呼び出しを⾮同期的に扱えないか
    waiting…
    Round-trip
    latency

    View Slide

  61. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates. 61
    具体的なユースケース

    View Slide

  62. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    Webhook を投げる側
    62
    function Amazon EventBridge
    ⾮同期 API Destination
    SaaS や 別システムで公開して
    いる Webhook にメッセージを
    送信する際に
    EventBridge API Destination
    が利用できる

    View Slide

  63. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    © 2023, Amazon Web Services, Inc. or its affiliates.
    SNS
    63

    View Slide

  64. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    メッセージデータ保護
    64
    Ø メッセージに含まれる機密データ (PII や PHI) を検出し、
    送受信をブロックしたりすることができる新機能
    Ø トピックが受信するメッセージと、サブスクライバーに
    送信するメッセージの両方で利用可能
    Ø 検出できるデータの識別子は 25 以上
    ex. 住所、メールアドレス、名前、クレジットカード番号
    Ø メッセージをブロック、リダクション、マスキング、
    または監査レポートとして記録することが可能
    (保存先は Amazon CloudWatch, Amazon Kinesis Data Firehose,
    Amazon Simple Storage Service から選択できる)
    Ø ポリシーの設定例
    ex. 住所、メールアドレス、名前を含んだメッセージがトピッ
    クに送信された場合、ブロックする
    Ø スキャンされるペイロードデータの量と生成される監査
    レポートデータの量に基づいて課金

    View Slide

  65. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    ペイロードベースのメッセージフィルタリングのサポート
    65
    Ø サブスクリプションフィルターの設定でメッセージの
    ペイロードが利用できるようになった
    Ø 以前は属性ベースでフィルタリングするしかなかった
    Ø メッセージの送信側に変更を加えられないユースケース
    では特に嬉しいアップデート
    ex. AWS サービスからの通知、マイクロサービス
    Ø コンシューマー側からフィルタリングのロジックを排除
    することでビジネスロジックがシンプルに
    S3 バケット
    イベント
    通知
    SNS トピック
    home-processing-queue
    サブスクリプションフィルター
    auto-processing-queue
    auto- というプレフィックス
    がついたオブジェクトの
    ObjectCreataed:* イベントの
    みをキューに送信する

    View Slide

  66. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    © 2023, Amazon Web Services, Inc. or its affiliates.
    まとめ
    66

    View Slide

  67. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    情シスのココを楽しくしたい。/ 楽したい。 (再掲)
    67
    • 楽しくする
    • 業務ユーザーに貢献する部分を増やし
    • 義務的な仕事を減らす
    • 業務ユーザーに貢献する部分を増やす
    • ローコードで高い生産性を目指す
    • 義務的な仕事を減らす
    • サーバーのお守り仕事を増やさない (= サーバーレス)

    View Slide

  68. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    情シスの仕事がより楽しくなりそうでしょうか?
    • Amazon EventBridge や AWS Step Functions を使って定例作業
    やバッチ処理、承認フローなどの自動化をしておきましょう
    • SaaS からのイベントも EventBridge で受け付けることができるの
    で、SaaSを利用した省エネな業務運用も期待できます
    • EventBridge Pipes は、AWS の Stream や Queue 、そしてワーク
    フローをマネージドに繋ぐことができます。
    • 業務改善に役立てられないか社内ハッカソンしてみるのも面白いと思いま
    す!
    68

    View Slide

  69. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    © 2023, Amazon Web Services, Inc. or its affiliates.
    Thank you!
    Kensuke Shimokawa
    Snr. Serverless Specialist
    Amazon Web Services Japan

    View Slide

  70. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates. 70
    並列ジョブをどうやって実装する?

    View Slide

  71. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    Job のワークロードタイプ
    71
    ジョブ
    インスタンス
    密結合
    ジョブ
    インスタンス
    ジョブ ジョブ ジョブ ジョブ ジョブ
    インスタンス インスタンス
    疎結合
    • 大規模な単一のジョブを高速に実行する
    ために複数のノードを跨いで処理
    • ノード間通信ボトルネックによるスケー
    ル性能限界
    インスタンス
    • 小規模な処理を大量に実行するために、
    複数のノードで独立したジョブを処理
    • ノード間の通信が発生しないためスケー
    ルメリットがある
    • 関数レベルに小規模なジョブに分割
    • メッセージ単位の処理粒度
    • ノードに直接データ送信してからジョブ
    実行するのではなく、イベントドリブン
    にメッセージを連携し、メッセージから
    データを取得して実行

    View Slide

  72. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    Lambda 関数ジョブの並列化 with Map
    72
    AWS Step Functions workflow
    Start
    End
    Transform
    Load S3
    Extract function
    Transform function
    Load function
    Transform
    Load
    Extract
    Transform
    Load
    Map
    Lambda関数でのETLを Map State により並列化
    [data1, data2, …, dataN]
    https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-map-state.html

    View Slide

  73. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    AWS Step Functions Distributed Mode
    73
    • 数千の並列処理を実行可能な Distributed モードが選択可能に
    • 入力内の配列または S3 バケットをデータソースとして利用可能
    • 特定のファイル/プレフィックス、JSON/CSV、インベントリファイル
    をサポート
    • 大規模なデータセットに対してイテレーションを実行
    • ex. 特定のプレフィックス配下にある画像ファイルのサムネイル作成
    • ex. CSV 形式で出力された巨大なログファイルの分析
    • 各イテレーションは子ワークフローの実行として記録される
    • 処理の結果は集約して S3 にファイルとして出力できる
    • 最大並列実行数や許容可能な失敗数の閾値、リトライを設定可能
    • デフォルトは 10,000 並列実行
    • 実行ステータスは DescribeMapRun API で取得

    View Slide

  74. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    S3 に置かれた JSON ファイルに対する処理
    74

    View Slide

  75. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    S3 に置かれた JSON ファイルに対する処理
    75

    View Slide

  76. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    各イテレーションの実行ステータスの確認
    76
    DescribeMapRun API

    View Slide

  77. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    © 2023, Amazon Web Services, Inc. or its affiliates.
    Others on EventBridge
    77

    View Slide

  78. 情シスの仕事をより楽しくしたい話。
    © 2023, Amazon Web Services, Inc. or its affiliates.
    Github, Stripe, Twilio とのイベント連携をサポート
    78
    Ø 各 SaaS で発生するイベントを EventBridge の
    イベントバスに投入する QuickStart を提供
    Ø 実装済みの Lambda 関数と CloudFormation
    テンプレートをデプロイするだけで利用可能
    Ø EventBridge パートナーとは異なる
    Ø SaaS 側の Webhook を活用して、Lambda
    function URL 経由でイベントバスにイベントを
    取り込む仕組み

    View Slide