Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
re:Invent2022 前後の Amazon EventBridge のアップデートを踏ま...
Search
kensh
January 31, 2023
Technology
3
1.9k
re:Invent2022 前後の Amazon EventBridge のアップデートを踏まえつつ、情シスの仕事をより楽しくしたい話。 / EventBridge for Information Systems Department
動画はこちら
https://www.youtube.com/watch?v=9qWsGg87qgg
情シスのお仕事を調べてみて、EventBridgeが適用できそうなタスクを洗い出してみました。
kensh
January 31, 2023
Tweet
Share
More Decks by kensh
See All by kensh
Technology that powers Lambda / AWS Lambda を支える技術
_kensh
25
6.6k
Platform Engineering with CodeCatalyst
_kensh
3
260
Innovation for Everyone
_kensh
0
110
Platform Engineering on Serverless
_kensh
14
3.3k
Asynchronous over Synchronous / 同期という思い込み世界は非同期で構成されている
_kensh
23
7.5k
地域発展の新たなフロンティアを探そう、地方企業こそサーバーレスを活用すべき3つの理由 / Local Startup With Serverless
_kensh
2
440
AWS Application Composer で紡ぐ、サーバーレスアーキテクチャ / Low Code based Serverless Development
_kensh
2
180
サーバーレスはどこから来たのか サーバーレスは何者か サーバーレスはどこへ行くのか / Where did serverless come from?
_kensh
0
430
30分で理解する、AWS の WEB Front-end Strategy / Serverless Front-end Strategy
_kensh
20
6.4k
Other Decks in Technology
See All in Technology
re:Invent をおうちで楽しんでみた ~CloudWatch のオブザーバビリティ機能がスゴい!/ Enjoyed AWS re:Invent from Home and CloudWatch Observability Feature is Amazing!
yuj1osm
0
130
オプトインカメラ:UWB測位を応用したオプトイン型のカメラ計測
matthewlujp
0
190
PHPerのための計算量入門/Complexity101 for PHPer
hanhan1978
5
290
10分で学ぶKubernetesコンテナセキュリティ/10min-k8s-container-sec
mochizuki875
3
380
プロダクト開発を加速させるためのQA文化の築き方 / How to build QA culture to accelerate product development
mii3king
1
280
マイクロサービスにおける容易なトランザクション管理に向けて
scalar
0
170
ずっと昔に Star をつけたはずの思い出せない GitHub リポジトリを見つけたい!
rokuosan
0
160
継続的にアウトカムを生み出し ビジネスにつなげる、 戦略と運営に対するタイミーのQUEST(探求)
zigorou
0
700
Opcodeを読んでいたら何故かphp-srcを読んでいた話
murashotaro
0
310
バクラクのドキュメント解析技術と実データにおける課題 / layerx-ccc-winter-2024
shimacos
2
1.1k
alecthomas/kong はいいぞ / kamakura.go#7
fujiwara3
1
300
5分でわかるDuckDB
chanyou0311
10
3.3k
Featured
See All Featured
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
Scaling GitHub
holman
459
140k
Java REST API Framework Comparison - PWX 2021
mraible
28
8.3k
Designing for humans not robots
tammielis
250
25k
Navigating Team Friction
lara
183
15k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
Building an army of robots
kneath
302
44k
Reflections from 52 weeks, 52 projects
jeffersonlam
347
20k
Building Better People: How to give real-time feedback that sticks.
wjessup
366
19k
Visualization
eitanlees
146
15k
Thoughts on Productivity
jonyablonski
68
4.4k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
28
2.1k
Transcript
情シスの仕事をより楽しくしたい話。 © 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
情シスの仕事をより楽しくしたい話。 © 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 情シス経験なし 情シスの方々にはお世話になっています
情シスの仕事をより楽しくしたい話。 © 2023, Amazon Web Services, Inc. or its affiliates.
© 2023, Amazon Web Services, Inc. or its affiliates. AWSの情シスとの関わり合い 3
情シスの仕事をより楽しくしたい話。 © 2023, Amazon Web Services, Inc. or its affiliates.
4 MacBook が文鎮化した話し
情シスの仕事をより楽しくしたい話。 © 2023, Amazon Web Services, Inc. or its affiliates.
© 2023, Amazon Web Services, Inc. or its affiliates. 情シスのお仕事を調べてみた。 5
情シスの仕事をより楽しくしたい話。 © 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 情シス経験なし 情シスの方々にはお世話になっています (再掲)
情シスの仕事をより楽しくしたい話。 © 2023, Amazon Web Services, Inc. or its affiliates.
情シスの仕事調べてみた 7 https://note.com/yuki_kapi/n/nf4bb093444c8 @かぴ
情シスの仕事をより楽しくしたい話。 © 2023, Amazon Web Services, Inc. or its affiliates.
8 © Metaps Inc. https://blog.metapscloud.com/information-system
情シスの仕事をより楽しくしたい話。 © 2023, Amazon Web Services, Inc. or its affiliates.
9 © Metaps Inc. https://blog.metapscloud.com/information-system
情シスの仕事をより楽しくしたい話。 © 2023, Amazon Web Services, Inc. or its affiliates.
情シスの仕事を楽しくするってどうするんだろう? 10 • IT技術に向き合い、新しい技術にチャレンジできる • 実践的なIT知識が身につく • 会社のライフラインを担っている自覚がある • 業務改善でユーザーに喜ばれる • 感謝されることが多い • 社内のさまざまな部門と関わる機会が持てる • 戦友が増える(社内+ベンダー) • 経営戦略に関わることができる • ITで会社の売上や成長に貢献できる • 知人になんかすごいねと言われる EventBridge の実践的な知識! EventBridge は人や組織をつなぐ。 アプリケーションもつなぐ。 SaaS もつなぐ! 明日からどんどん使っていこう!
情シスの仕事をより楽しくしたい話。 © 2023, Amazon Web Services, Inc. or its affiliates.
© 2023, Amazon Web Services, Inc. or its affiliates. 情シスのココを楽しくしたい。 11
情シスの仕事をより楽しくしたい話。 © 2023, Amazon Web Services, Inc. or its affiliates.
情シスの仕事調べてみた 12 https://note.com/yuki_kapi/n/nf4bb093444c8 @かぴ 承認フロー 多そう? 定例作業 多そう?
情シスの仕事をより楽しくしたい話。 © 2023, Amazon Web Services, Inc. or its affiliates.
情シスのココを楽しくしたい。/ 楽したい。 • 承認フローを作る • 簡単なバッチ処理を作る • 定例作業を自動化する • Slack 通知する 13 承認フロー 多そう? 定例作業 多そう? https://note.com/yuki_kapi/n/nf4bb093444c8 @かぴ
情シスの仕事をより楽しくしたい話。 © 2023, Amazon Web Services, Inc. or its affiliates.
情シスのココを楽しくしたい。/ 楽したい。 14 • 楽しくする • 業務ユーザーに貢献する部分を増やし • 義務的な仕事を減らす • 業務ユーザーに貢献する部分を増やす • ローコードで高い生産性を目指す • 義務的な仕事を減らす • サーバーのお守り仕事を増やさない (= サーバーレス)
情シスの仕事をより楽しくしたい話。 © 2023, Amazon Web Services, Inc. or its affiliates.
© 2023, Amazon Web Services, Inc. or its affiliates. Amazon EventBridge 15
情シスの仕事をより楽しくしたい話。 © 2023, Amazon Web Services, Inc. or its affiliates.
Amazon EventBridge って何 ? 16 イベント を 橋渡し するサービス Event Bridge イベント 発行側 イベント 受信・活用
情シスの仕事をより楽しくしたい話。 © 2023, Amazon Web Services, Inc. or its affiliates.
17 “イベント” 状態が変更されたことを⽰すシグナル JavaScript イベント • ユーザーアクション: ボタンが押されたとき、なにか入力されたとき… • システムイベント: 画面がロードされたとき、データを受け取ったとき… • カスタムイベント: 任意にシグナルを発火 アプリケーション固有イベント • 在庫が 10を下回ったとき、お客様がいくつかのページを繰り返し見ているとき…
情シスの仕事をより楽しくしたい話。 © 2023, Amazon Web Services, Inc. or its affiliates.
Amazon EventBridge の3つのパート 18 Pipes Event Bus Scheduler New! New!
情シスの仕事をより楽しくしたい話。 © 2023, Amazon Web Services, Inc. or its affiliates.
異種環境間をイベントでつなぎ、アクションへ 19 イベント 発行側 イベント 受信・活用 &$αΠτ $3. $9ϓϥοτϑΥʔϜ • 認証、セキュリティ • ネットワーク不通への対処 • サーバー障害対応 • いつ来るかわからない イベントを待機 • 処理性能の担保 :
情シスの仕事をより楽しくしたい話。 © 2023, Amazon Web Services, Inc. or its affiliates.
例えば… 20 $3. 顧客情報更新 → データ伝播 → 発注処理へ &$αΠτ 新規商品登録 → 登録画像を AI サービスで 画像解析し タグを追加 Πϯγσϯτ ཧ 新規インシデント → 営業への通知 → 優先度の更新 ೝূ 不正イベント → 緊急の制御を 各システムへ 展開 システム 連携 付加価値 の追加 情報 活用 リスク 低減
情シスの仕事をより楽しくしたい話。 © 2023, Amazon Web Services, Inc. or its affiliates.
Amazon EventBridge Event Bus 21 AWS Cloud AWS Cloud AWS Cloud Event Bus 異なるチーム間の Push型での情報連携(イベント通知)を可能にするイベントバス
情シスの仕事をより楽しくしたい話。 © 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
情シスの仕事をより楽しくしたい話。 © 2023, Amazon Web Services, Inc. or its affiliates.
Amazon EventBridge の3つのパート 23 Pipes Event Bus Scheduler New! New!
情シスの仕事をより楽しくしたい話。 © 2023, Amazon Web Services, Inc. or its affiliates.
24 いつも、業務間の中継処理をどうしてますか?
情シスの仕事をより楽しくしたい話。 © 2023, Amazon Web Services, Inc. or its affiliates.
定期ジョブ? 25 Amazon DynamoDB Amazon SQS 何か繋ぐためのコード バッチサーバー上で何らかのプログラムが定期的に動いてる と言うケースが多いかも? システム A システム B
情シスの仕事をより楽しくしたい話。 © 2023, Amazon Web Services, Inc. or its affiliates.
26 Lambda を利用されて いる方も多いかも? Event Source Mapping
情シスの仕事をより楽しくしたい話。 © 2023, Amazon Web Services, Inc. or its affiliates.
繋ぐためのコードを自分で書くと、、、 27 Amazon DynamoDB Stream Amazon SQS 何か繋ぐためのコード • Source / Target のサービスのことをコーディングレベルでよく知らないといけない • コーディングの中に出てくるエラーハンドリングも自分で • Source から取得したメッセージの順序性の維持も自分で • Target 送信時の 認証もリトライも自分で Source Target
情シスの仕事をより楽しくしたい話。 © 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) 中継処理
情シスの仕事をより楽しくしたい話。 © 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 など イベントバスで利用できるターゲットと同様
情シスの仕事をより楽しくしたい話。 © 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
情シスの仕事をより楽しくしたい話。 © 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 キュー
情シスの仕事をより楽しくしたい話。 © 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ソース側でイベントの順序性が保証されて いる場合、順序を保ったままターゲットに配信
情シスの仕事をより楽しくしたい話。 © 2023, Amazon Web Services, Inc. or its affiliates.
33 具体的なユースケース
情シスの仕事をより楽しくしたい話。 © 2023, Amazon Web Services, Inc. or its affiliates.
定例作業を自動化する 34 データベース 登録/更新 イベント通知 処理 定例作業 • 日次、週次、月次のレポート • アカウント管理、マスタメンテナンス • 他システムへの連携ファイルを所定の場所に配置する Stream EventBridge Pipes DynamoDB Step Functions
情シスの仕事をより楽しくしたい話。 © 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
情シスの仕事をより楽しくしたい話。 © 2023, Amazon Web Services, Inc. or its affiliates.
© 2023, Amazon Web Services, Inc. or its affiliates. EventBridge Scheduler One time event 36
情シスの仕事をより楽しくしたい話。 © 2023, Amazon Web Services, Inc. or its affiliates.
Amazon EventBridge の3つのパート 37 Pipes Event Bus Scheduler New! New!
情シスの仕事をより楽しくしたい話。 © 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. ユーザーが解約を実行 → 残りの契約期間が過ぎた後にユーザー削除等を実施
情シスの仕事をより楽しくしたい話。 © 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 コンソールに集約されている
情シスの仕事をより楽しくしたい話。 © 2023, Amazon Web Services, Inc. or its affiliates.
EventBridge Scheduler の強み 40 • 定期実行に加えて、1 回限りの実行をサポート • UTC 以外の様々なタイムゾーンおよびサマータイムをサポート • 充実したサービス連携 • EventBridge Rules と比較して大量のスケジュールの定義が可能
情シスの仕事をより楽しくしたい話。 © 2023, Amazon Web Services, Inc. or its affiliates.
利用イメージ 41 Lambda 関数 Amazon EventBridge Scheduler Lambda 関数 DynamoDB テーブル イベント 契約開始日になったら スケジュールが発火 ユーザーがサブスクリプションを契約 サブスクリプションの登録 ステータスの変更など (アプリケーション) スケジュールを作成 ターゲットを 呼び出し CreateSchedule API
情シスの仕事をより楽しくしたい話。 © 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 に切り捨てられる
情シスの仕事をより楽しくしたい話。 © 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 時間戻す
情シスの仕事をより楽しくしたい話。 © 2023, Amazon Web Services, Inc. or its affiliates.
フレックスタイムウィンドウ 44 02:00 オフの場合 指定された時間に スケジュールされる 02:00 オンの場合 指定された時間 + フレックスタイム ウィンドウの時間内のどこかで スケジュールされる * 15 分、30 分、1 時間、2 時間、4 時間から選択可能 02:15 分散システムという都合上、複数回配信される可能性がある (at-least-once) タイムウィンドウ内にスケジュールを分散させることで、複数回の配信確率を下げるための仕組み 時間ぴったりに起動する必要がなければ使っておくのがおすすめ
情シスの仕事をより楽しくしたい話。 © 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 をサポート • パラメータを自分でカスタマイズ • サポートされているサービス一覧
情シスの仕事をより楽しくしたい話。 © 2023, Amazon Web Services, Inc. or its affiliates.
Templated targets の設定例 46 • 例えば Lambda Invoke の場合、関数の選択と入力の設定のみ 入力では、事前定義されたコンテキスト属性も利用可能 <aws.scheduler.schedule-arn> – スケジュールの ARN <aws.scheduler.scheduled-time> – スケジュールされている時間 <aws.scheduler.execution-id> – 呼び出しごとに一意の ID <aws.scheduler.attempt-number> – 呼び出し試行回数のカウンター { 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 を出力すると...
情シスの仕事をより楽しくしたい話。 © 2023, Amazon Web Services, Inc. or its affiliates.
Universal targets の設定例 47 • 各 API のパラメータとして必要なものを JSON で入力 • Templated targets と同様にコンテキスト属性も利用可能
情シスの仕事をより楽しくしたい話。 © 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" ] } ] }
情シスの仕事をより楽しくしたい話。 © 2023, Amazon Web Services, Inc. or its affiliates.
エラーに対する回復性 49 Lambda 関数 EventBridge Scheduler ターゲットの呼び出しに失敗した場合、 リトライポリシーに従って自動的にリトライする * 最大 24 時間、185 回 SQS キュー (デッドレターキュー ) デッドレターキューが設定されている場合、 最大回数リトライが失敗したタスクはキューに送信される * IAM ロールに sqs:SendMessage の権限を付与する必要あり * 別アカウントのキューも指定可能
情シスの仕事をより楽しくしたい話。 © 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 (*以降はスロットリングされて遅延する) * ターゲット数以外は上限緩和可能
情シスの仕事をより楽しくしたい話。 © 2023, Amazon Web Services, Inc. or its affiliates.
モニタリング 51 InvocationAttemptCount EventBridge Scheduler がスケジュールを呼び出そうとした数 TargetErrorCount ターゲットからエラーが返され、呼び出しに失敗した数 TargetErrorThrottledCount ターゲット側でスロットリングされ、呼び出しに失敗した数 InvocationThrottleCount EventBridge Scheduler 側でスロットリングされた数 InvocationDroppedCount 最大リトライ回数を超えて呼び出しに失敗し、呼び出しを中止した数 各種メトリクス DLQ を設定している場合、以下のメトリクスも利用可能 • InvocationsSentToDeadLetterCount • InvocationsFailedToBeSentToDeadLetterCount • InvocationsFailedToBeSentToDeadLetterCount_<error_code> • InvocationsSentToDeadLetterCount_Truncated_MessageSizeExceeded * ログについては現状 CloudTrail による API call の記録のみ
情シスの仕事をより楽しくしたい話。 © 2023, Amazon Web Services, Inc. or its affiliates.
料金 52 • スケジュールの呼び出し回数に応じて課金 • 月あたり 14,000,000 回までは無料で利用可能 • その後 100 万回呼び出しごと料金が発生 Ø オレゴンリージョンの場合:$1.00 Ø 東京リージョンの場合:$1.25
情シスの仕事をより楽しくしたい話。 © 2023, Amazon Web Services, Inc. or its affiliates.
53 具体的なユースケース
情シスの仕事をより楽しくしたい話。 © 2023, Amazon Web Services, Inc. or its affiliates.
簡単なバッチ処理の実装 54 こんな時間指定で実施する作業多くありませんか? • 大きなCSVを データベースに取り込む • 大量のファイルのファイル形式やサイズの変換、圧縮処理 • CSV / JSON の必要な項目だけ抽出とかも CSV配置先 スケジュール 処理 時間指定 EventBridge Scheduler Step Functions S3 Bucket
情シスの仕事をより楽しくしたい話。 © 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 並列実行
情シスの仕事をより楽しくしたい話。 © 2023, Amazon Web Services, Inc. or its affiliates.
承認フロー 56 こんな承認フローが必要な作業多くありませんか? • 作業の前の申請書類のほうが時間かかる • 承認者がつかまらない • 度々承認をもらうのが気が引ける EventBridge Scheduler Step Functions 承認が必要! スケジュール 承認フロー 時間指定 作業者
情シスの仕事をより楽しくしたい話。 © 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
情シスの仕事をより楽しくしたい話。 © 2023, Amazon Web Services, Inc. or its affiliates.
キャンペーン / 開催通知 58 通知する作業で相手先のリソースを圧迫することも? • キャンペーンでショートメッセージの一斉送信 • 通知先のサービス/サーバーに、一斉に負荷がかかる • ふんわりと時間差を持って通知したい EventBridge Scheduler 通知が必要! スケジュール 通知 時間指定 主催者 通知 サービス フレックスタイムウィンドウ (例えば1時間)
情シスの仕事をより楽しくしたい話。 © 2023, Amazon Web Services, Inc. or its affiliates.
© 2023, Amazon Web Services, Inc. or its affiliates. API Destination 59
情シスの仕事をより楽しくしたい話。 © 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
情シスの仕事をより楽しくしたい話。 © 2023, Amazon Web Services, Inc. or its affiliates.
61 具体的なユースケース
情シスの仕事をより楽しくしたい話。 © 2023, Amazon Web Services, Inc. or its affiliates.
Webhook を投げる側 62 function Amazon EventBridge ⾮同期 API Destination SaaS や 別システムで公開して いる Webhook にメッセージを 送信する際に EventBridge API Destination が利用できる
情シスの仕事をより楽しくしたい話。 © 2023, Amazon Web Services, Inc. or its affiliates.
© 2023, Amazon Web Services, Inc. or its affiliates. SNS 63
情シスの仕事をより楽しくしたい話。 © 2023, Amazon Web Services, Inc. or its affiliates.
メッセージデータ保護 64 Ø メッセージに含まれる機密データ (PII や PHI) を検出し、 送受信をブロックしたりすることができる新機能 Ø トピックが受信するメッセージと、サブスクライバーに 送信するメッセージの両方で利用可能 Ø 検出できるデータの識別子は 25 以上 ex. 住所、メールアドレス、名前、クレジットカード番号 Ø メッセージをブロック、リダクション、マスキング、 または監査レポートとして記録することが可能 (保存先は Amazon CloudWatch, Amazon Kinesis Data Firehose, Amazon Simple Storage Service から選択できる) Ø ポリシーの設定例 ex. 住所、メールアドレス、名前を含んだメッセージがトピッ クに送信された場合、ブロックする Ø スキャンされるペイロードデータの量と生成される監査 レポートデータの量に基づいて課金
情シスの仕事をより楽しくしたい話。 © 2023, Amazon Web Services, Inc. or its affiliates.
ペイロードベースのメッセージフィルタリングのサポート 65 Ø サブスクリプションフィルターの設定でメッセージの ペイロードが利用できるようになった Ø 以前は属性ベースでフィルタリングするしかなかった Ø メッセージの送信側に変更を加えられないユースケース では特に嬉しいアップデート ex. AWS サービスからの通知、マイクロサービス Ø コンシューマー側からフィルタリングのロジックを排除 することでビジネスロジックがシンプルに S3 バケット イベント 通知 SNS トピック home-processing-queue サブスクリプションフィルター auto-processing-queue auto- というプレフィックス がついたオブジェクトの ObjectCreataed:* イベントの みをキューに送信する
情シスの仕事をより楽しくしたい話。 © 2023, Amazon Web Services, Inc. or its affiliates.
© 2023, Amazon Web Services, Inc. or its affiliates. まとめ 66
情シスの仕事をより楽しくしたい話。 © 2023, Amazon Web Services, Inc. or its affiliates.
情シスのココを楽しくしたい。/ 楽したい。 (再掲) 67 • 楽しくする • 業務ユーザーに貢献する部分を増やし • 義務的な仕事を減らす • 業務ユーザーに貢献する部分を増やす • ローコードで高い生産性を目指す • 義務的な仕事を減らす • サーバーのお守り仕事を増やさない (= サーバーレス)
情シスの仕事をより楽しくしたい話。 © 2023, Amazon Web Services, Inc. or its affiliates.
情シスの仕事がより楽しくなりそうでしょうか? • Amazon EventBridge や AWS Step Functions を使って定例作業 やバッチ処理、承認フローなどの自動化をしておきましょう • SaaS からのイベントも EventBridge で受け付けることができるの で、SaaSを利用した省エネな業務運用も期待できます • EventBridge Pipes は、AWS の Stream や Queue 、そしてワーク フローをマネージドに繋ぐことができます。 • 業務改善に役立てられないか社内ハッカソンしてみるのも面白いと思いま す! 68
情シスの仕事をより楽しくしたい話。 © 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
情シスの仕事をより楽しくしたい話。 © 2023, Amazon Web Services, Inc. or its affiliates.
70 並列ジョブをどうやって実装する?
情シスの仕事をより楽しくしたい話。 © 2023, Amazon Web Services, Inc. or its affiliates.
Job のワークロードタイプ 71 ジョブ インスタンス 密結合 ジョブ インスタンス ジョブ ジョブ ジョブ ジョブ ジョブ インスタンス インスタンス 疎結合 • 大規模な単一のジョブを高速に実行する ために複数のノードを跨いで処理 • ノード間通信ボトルネックによるスケー ル性能限界 インスタンス • 小規模な処理を大量に実行するために、 複数のノードで独立したジョブを処理 • ノード間の通信が発生しないためスケー ルメリットがある • 関数レベルに小規模なジョブに分割 • メッセージ単位の処理粒度 • ノードに直接データ送信してからジョブ 実行するのではなく、イベントドリブン にメッセージを連携し、メッセージから データを取得して実行
情シスの仕事をより楽しくしたい話。 © 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
情シスの仕事をより楽しくしたい話。 © 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 で取得
情シスの仕事をより楽しくしたい話。 © 2023, Amazon Web Services, Inc. or its affiliates.
S3 に置かれた JSON ファイルに対する処理 74
情シスの仕事をより楽しくしたい話。 © 2023, Amazon Web Services, Inc. or its affiliates.
S3 に置かれた JSON ファイルに対する処理 75
情シスの仕事をより楽しくしたい話。 © 2023, Amazon Web Services, Inc. or its affiliates.
各イテレーションの実行ステータスの確認 76 DescribeMapRun API
情シスの仕事をより楽しくしたい話。 © 2023, Amazon Web Services, Inc. or its affiliates.
© 2023, Amazon Web Services, Inc. or its affiliates. Others on EventBridge 77
情シスの仕事をより楽しくしたい話。 © 2023, Amazon Web Services, Inc. or its affiliates.
Github, Stripe, Twilio とのイベント連携をサポート 78 Ø 各 SaaS で発生するイベントを EventBridge の イベントバスに投入する QuickStart を提供 Ø 実装済みの Lambda 関数と CloudFormation テンプレートをデプロイするだけで利用可能 Ø EventBridge パートナーとは異なる Ø SaaS 側の Webhook を活用して、Lambda function URL 経由でイベントバスにイベントを 取り込む仕組み