Slide 1

Slide 1 text

EventBridgeでEventが発 生しないことがある? 2023/3/1 color is クラウドLT大会vol.3 坪井 千春 1

Slide 2

Slide 2 text

自己紹介 名前: 坪井 千春 好きなAWSサービス:Amazon EFS 経歴: ・SIerとしてJAVAメインのアプリ担当を19年 ・直近5年程度AWSを利用 ・2022年4月からアプリを離れてAWSエンジニアとして活動 ・AWS Top Engineers受賞にチャレンジ 2

Slide 3

Slide 3 text

きっかけ 3 • コールセンターのシステムを担当(2021年頃) • サーバレスをメインとしたシステム構成(Amazon ConnectやAWS Lambda ) • 業務としては高い要求レベル • 同じ電話番号に対する1日の架電回数が制限 • 基幹システムへ架電実績を連携する期限 • テクニカルサポートへ問い合わせ(請求代行) • 結果としてはAmazon Connectの不具合 • 代替としてAmazon EventBridge採用の提案を受けた 複数回 架電 連携さ れない 稀にイン シデント Amazon EventBridge? →サービス内容を調査

Slide 4

Slide 4 text

Amazon EventBridgeとは? • イベントを使ってアプリケーション同士を接続するサービス • Amazon CloudWatch Eventsの後継であり、 同じAPIやエンドポイントを使用し、機能が拡張されている。 • 料金:呼出し月間1400万回まで無料。以降1.25USD/100万回 シンプルな例 • EC2の起動失敗イベントをトリガーにAWS Lambdaでメール通知 4 Amazon EventBridge Event AWS Lambda Amazon EC2

Slide 5

Slide 5 text

様々なイベントに対応 • アプリケーションの独自Eventを受 け取ることが可能 (アプリ間連携が可能) • AWSサービスに限らず、外部のSaaS からイベントを受け取ることも可能 • Cronのように時刻指定などで自己を トリガーするイベントも作成可能 5 Amazon EventBridge アラート通知 Event DataDog (SaaSアプリ) Amazon EventBridge 注文受付 Event 受注アプリB 受注アプリA Amazon EventBridge スケジュール Event

Slide 6

Slide 6 text

Amazon EventBridgeの注意点 6 • 起動が遅いことがある • イベント生成はベストエフォート(起動しないことがある) • まれに複数回起動する

Slide 7

Slide 7 text

注意点1:起動が遅いことがある • SLAは99.99%の月間稼働率(月間4分程度の停止は返金無し) • サービス中断によりイベントを配信できない場合、復旧後にイベ ントは最大24時間再試行さる • 24時間を超えるとイベントは発生せず「FailedInvocations」メ トリクスが記録される FailedInvocations:完全に失敗した呼び出しの数 7 AWS公式ドキュメント: https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-troubleshooting.html#eb-delayed-event-delivery

Slide 8

Slide 8 text

注意点2:イベント生成はベストエフォート • イベントを生成するサービスによって稀にイベントが配信され ないことがある • 基本的には「ベストエフォート」 • 一部のみ「保証付き配信」 8 • AWS Batch • Amazon Braket • AWS CloudFormation • Amazon CloudWatch • AWS CodeArtifact • Amazon Elastic Container Service • AWS Elemental MediaConvert • AWS Elemental MediaStore • Amazon EventBridge のスケジュール されたルール • AWS IoT Analytics • AWS Key Management Service CMK の削除 • Amazon Location Service • AWS OpsWorks • Amazon QLDB • Amazon Redshift • AWS Security Hub • AWS Signer • Amazon Simple Storage Service (Amazon S3) • AWS Storage Gateway • Amazon Translate イベント配信が保証されるサービス AWS公式ドキュメント: https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-service-event.html

Slide 9

Slide 9 text

注意点3:まれに複数回起動する • 「保証付き配信」で保証されるのは「1回以上」の配信 • まれに、下記のような事象が発生する • 単一のイベントに対して同じルールを複数回トリガーされてしまう • 特定のトリガーされたルールに対して同じターゲットを複数回起動し てしまう 9 AWS公式ドキュメント:https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-troubleshooting.html#eb-rule-triggered-more-than-once

Slide 10

Slide 10 text

対策 10 • 未起動、遅延、複数回起動しても問題無いものに採用 • 問題が発生しないように設計 例:ターゲット側で起動チェックを実装等 私が実施している対策 • マネージドサービスは制約を認識して採用を検討 • AWS Lambdaは「未処理」レコード全件に対して処理を実施 ※イベント発生レコードだけを処理対象としない

Slide 11

Slide 11 text

まとめ • Amazon EventBridgeは簡単にアプリ同士を接続できるサービス • まれに「起動が遅い」 「起動しない」 「複数回起動する」 • 100%が求められるシステムでの採用は注意が必要 11