動画はこちら https://www.youtube.com/watch?v=9qWsGg87qgg
情シスのお仕事を調べてみて、EventBridgeが適用できそうなタスクを洗い出してみました。
情シスの仕事をより楽しくしたい話。© 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 ShimokawaSnr. Serverless SpecialistAmazon Web Services Japan
View Slide
情シスの仕事をより楽しくしたい話。© 2023, Amazon Web Services, Inc. or its affiliates.© 2023, Amazon Web Services, Inc. or its affiliates. 2About Me…Kensuke ShimokawaAmazon Web Services JapanSnr. 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. 4MacBook が文鎮化した話し
情シスの仕事をより楽しくしたい話。© 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. 6About Me…Kensuke ShimokawaAmazon Web Services JapanSnr. Serverless Specialist情シス経験なし情シスの方々にはお世話になっています(再掲)
情シスの仕事をより楽しくしたい話。© 2023, Amazon Web Services, Inc. or its affiliates.情シスの仕事調べてみた7https://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.情シスの仕事調べてみた12https://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 EventBridge15
情シスの仕事をより楽しくしたい話。© 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つのパート18PipesEvent Bus SchedulerNew! 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 Bus21AWS CloudAWS CloudAWS CloudEvent Bus異なるチーム間の Push型での情報連携(イベント通知)を可能にするイベントバス
情シスの仕事をより楽しくしたい話。© 2023, Amazon Web Services, Inc. or its affiliates.© 2023, Amazon Web Services, Inc. or its affiliates.EventBridge PipesEvent Source Mapping as a Service22
情シスの仕事をより楽しくしたい話。© 2023, Amazon Web Services, Inc. or its affiliates.Amazon EventBridge の3つのパート23PipesEvent Bus SchedulerNew! New!
情シスの仕事をより楽しくしたい話。© 2023, Amazon Web Services, Inc. or its affiliates. 24いつも、業務間の中継処理をどうしてますか?
情シスの仕事をより楽しくしたい話。© 2023, Amazon Web Services, Inc. or its affiliates.定期ジョブ?25Amazon DynamoDB Amazon SQS何か繋ぐためのコードバッチサーバー上で何らかのプログラムが定期的に動いてると言うケースが多いかも?システム A システム B
情シスの仕事をより楽しくしたい話。© 2023, Amazon Web Services, Inc. or its affiliates. 26Lambda を利用されている方も多いかも?Event Source Mapping
情シスの仕事をより楽しくしたい話。© 2023, Amazon Web Services, Inc. or its affiliates.繋ぐためのコードを自分で書くと、、、27Amazon DynamoDBStreamAmazon SQS何か繋ぐためのコード• Source / Target のサービスのことをコーディングレベルでよく知らないといけない• コーディングの中に出てくるエラーハンドリングも自分で• Source から取得したメッセージの順序性の維持も自分で• Target 送信時の 認証もリトライも自分でSource Target
情シスの仕事をより楽しくしたい話。© 2023, Amazon Web Services, Inc. or its affiliates.EventBridge Pipes が登場!28APIDestinationAPIGatewayLambda BatchCloudWatchECSEventBridgeBusKinesisData FirehoseInspectorKinesisData StreamsRedshiftSageMakerpipelineSNS SQSStepFunctionsfilter(optional)Step FunctionsLambdaAPI DestinationAPI Gatewaytransform transformEventBridge Pipesenrich(optional)中継処理
情シスの仕事をより楽しくしたい話。© 2023, Amazon Web Services, Inc. or its affiliates.Amazon EventBridge Pipes29イベントプロデューサーとイベントコンシューマのサービス間連携を簡素化• イベントバス不要で、ソースとターゲットをシームレスに接続する構成が可能に• イベント駆動アプリケーションの開発を支援• ターゲットに送信する前に• イベントのバッファフィルタリング• 変換• 以下のサービスの呼び出しによる追加データの付与• Amazon API Gateway• AWS Step Functions• API Destinations• バッチ処理も可能• ソース側でイベントの順序性が保証されている場合、順序を保ったままターゲットに配信ソースとして利用可能なサービスAmazon SQS, Amazon Kinesis, Amazon DynamoDB, AmazonManaged 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 FunctionsEventBridge PipesEventBridge PipesAmazon KinesisData StreamsFilterEventBridge PipesFilterAmazon KinesisData StreamsAmazon KinesisData StreamsStream EventBridgePipesRuleAmazon SQSStep Functions API Gateway SageMakerEvent Bus30DynamoDB
情シスの仕事をより楽しくしたい話。© 2023, Amazon Web Services, Inc. or its affiliates.配信セマンティクス31At-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 EventBridgePipesDynamoDB Step Functions
情シスの仕事をより楽しくしたい話。© 2023, Amazon Web Services, Inc. or its affiliates.定例作業を自動化する35データベース登録/更新イベント通知定例作業• 日次、週次、月次のレポート• アカウント管理、マスタメンテナンス• 他システムへの連携ファイルを所定の場所に配置するStream EventBridgePipesDynamoDBRuleAmazon SQSStep Functions API Gateway SageMakerEvent Bus処理fan out
情シスの仕事をより楽しくしたい話。© 2023, Amazon Web Services, Inc. or its affiliates.© 2023, Amazon Web Services, Inc. or its affiliates.EventBridge SchedulerOne time event36
情シスの仕事をより楽しくしたい話。© 2023, Amazon Web Services, Inc. or its affiliates.Amazon EventBridge の3つのパート37PipesEvent Bus SchedulerNew! New!
情シスの仕事をより楽しくしたい話。© 2023, Amazon Web Services, Inc. or its affiliates.Amazon EventBridge Scheduler38• マネージドなサーバーレススケジューラー• タスクの作成、実行、管理を行うことができる例:毎日 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.利用イメージ41Lambda 関数 Amazon EventBridgeSchedulerLambda 関数 DynamoDB テーブルイベント契約開始日になったらスケジュールが発火ユーザーがサブスクリプションを契約サブスクリプションの登録ステータスの変更など(アプリケーション)スケジュールを作成ターゲットを呼び出しCreateSchedule API
情シスの仕事をより楽しくしたい話。© 2023, Amazon Web Services, Inc. or its affiliates.スケジュールパターン421. Rate-based指定の期間内で繰り返し定期実行2. Cron-basedcron 式による複雑な定期実行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:0002:30 02:30この時間帯に設定されているスケジュールはスキップされる* America/Los_Angeles の場合時計を 1 時間進める 時計を 1 時間戻す
情シスの仕事をより楽しくしたい話。© 2023, Amazon Web Services, Inc. or its affiliates.フレックスタイムウィンドウ4402:00オフの場合指定された時間にスケジュールされる02:00オンの場合指定された時間 + フレックスタイムウィンドウの時間内のどこかでスケジュールされる* 15 分、30 分、1 時間、2 時間、4 時間から選択可能02:15分散システムという都合上、複数回配信される可能性がある (at-least-once)タイムウィンドウ内にスケジュールを分散させることで、複数回の配信確率を下げるための仕組み時間ぴったりに起動する必要がなければ使っておくのがおすすめ
情シスの仕事をより楽しくしたい話。© 2023, Amazon Web Services, Inc. or its affiliates.ターゲットとして指定可能な AWS サービス451. Templated targets 2. Universal targets270+ services6000+ APIs20+ targets• Lambda Invoke や SQS SendMessage などのよく使われる API セットをサポート• 簡単な設定で利用を開始できる• AWS SDK を介して幅広い サービスおよび API をサポート• パラメータを自分でカスタマイズ• サポートされているサービス一覧
情シスの仕事をより楽しくしたい話。© 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 を出力すると...
情シスの仕事をより楽しくしたい話。© 2023, Amazon Web Services, Inc. or its affiliates.Universal targets の設定例47• 各 API のパラメータとして必要なものを JSON で入力• Templated targets と同様にコンテキスト属性も利用可能
情シスの仕事をより楽しくしたい話。© 2023, Amazon Web Services, Inc. or its affiliates.IAM ロールの設定48Lambda 関数EventBridgeSchedulerターゲットとなる 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.エラーに対する回復性49Lambda 関数EventBridgeSchedulerターゲットの呼び出しに失敗した場合、リトライポリシーに従って自動的にリトライする* 最大 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.モニタリング51InvocationAttemptCount EventBridge Scheduler がスケジュールを呼び出そうとした数TargetErrorCount ターゲットからエラーが返され、呼び出しに失敗した数TargetErrorThrottledCount ターゲット側でスロットリングされ、呼び出しに失敗した数InvocationThrottleCount EventBridge Scheduler 側でスロットリングされた数InvocationDroppedCount 最大リトライ回数を超えて呼び出しに失敗し、呼び出しを中止した数各種メトリクスDLQ を設定している場合、以下のメトリクスも利用可能• InvocationsSentToDeadLetterCount• InvocationsFailedToBeSentToDeadLetterCount• InvocationsFailedToBeSentToDeadLetterCount_• 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配置先 スケジュール 処理時間指定EventBridgeSchedulerStep FunctionsS3 Bucket
情シスの仕事をより楽しくしたい話。© 2023, Amazon Web Services, Inc. or its affiliates.簡単なバッチ処理の実装55S3 に置かれた CSV ファイル内のデータにビジネスロジックを適用して処理を行う"Game Number", "Game Length"1, 302, 293, 314, 16‥最大 10,000 並列実行
情シスの仕事をより楽しくしたい話。© 2023, Amazon Web Services, Inc. or its affiliates.承認フロー56こんな承認フローが必要な作業多くありませんか?• 作業の前の申請書類のほうが時間かかる• 承認者がつかまらない• 度々承認をもらうのが気が引けるEventBridgeSchedulerStep Functions承認が必要! スケジュール 承認フロー時間指定作業者
情シスの仕事をより楽しくしたい話。© 2023, Amazon Web Services, Inc. or its affiliates.承認フロー57承認ワークフローStartEndTaskToken=1234+ 承認内容TaskToken=1234+ 承認 / 拒否Amazon SNS承認者EmailEndpointタスクトークンを待っているタスクは、実行が 最大で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通知する作業で相手先のリソースを圧迫することも?• キャンペーンでショートメッセージの一斉送信• 通知先のサービス/サーバーに、一斉に負荷がかかる• ふんわりと時間差を持って通知したいEventBridgeScheduler通知が必要! スケジュール 通知時間指定主催者通知サービスフレックスタイムウィンドウ(例えば1時間)
情シスの仕事をより楽しくしたい話。© 2023, Amazon Web Services, Inc. or its affiliates.© 2023, Amazon Web Services, Inc. or its affiliates.API Destination59
情シスの仕事をより楽しくしたい話。© 2023, Amazon Web Services, Inc. or its affiliates.Webhook を投げる側60AWS Step FunctionsExpress WorkflowAmazon API GatewayHTTPEndpointLambdafunction Amazon SNSAmazon EventBridgeLambdafunctionHTTPEndpoint⾮同期⾮同期⾮同期SubscriptionAPI DestinationHTTP Integrationimport requestsurl = 'https://example.com/'response = requests.get(url)同期retry rateretryrateauthauthDLQretryDLQ外部 API 呼び出しを⾮同期的に扱えないかwaiting…Round-triplatency
情シスの仕事をより楽しくしたい話。© 2023, Amazon Web Services, Inc. or its affiliates. 61具体的なユースケース
情シスの仕事をより楽しくしたい話。© 2023, Amazon Web Services, Inc. or its affiliates.Webhook を投げる側62function Amazon EventBridge⾮同期 API DestinationSaaS や 別システムで公開している Webhook にメッセージを送信する際にEventBridge API Destinationが利用できる
情シスの仕事をより楽しくしたい話。© 2023, Amazon Web Services, Inc. or its affiliates.© 2023, Amazon Web Services, Inc. or its affiliates.SNS63
情シスの仕事をより楽しくしたい話。© 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-queueauto- というプレフィックスがついたオブジェクトの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 ShimokawaSnr. Serverless SpecialistAmazon 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 Map72AWS Step Functions workflowStartEndTransformLoad S3Extract functionTransform functionLoad functionTransformLoadExtractTransformLoadMapLambda関数での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 Mode73• 数千の並列処理を実行可能な 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.各イテレーションの実行ステータスの確認76DescribeMapRun API
情シスの仕事をより楽しくしたい話。© 2023, Amazon Web Services, Inc. or its affiliates.© 2023, Amazon Web Services, Inc. or its affiliates.Others on EventBridge77
情シスの仕事をより楽しくしたい話。© 2023, Amazon Web Services, Inc. or its affiliates.Github, Stripe, Twilio とのイベント連携をサポート78Ø 各 SaaS で発生するイベントを EventBridge のイベントバスに投入する QuickStart を提供Ø 実装済みの Lambda 関数と CloudFormationテンプレートをデプロイするだけで利用可能Ø EventBridge パートナーとは異なるØ SaaS 側の Webhook を活用して、Lambdafunction URL 経由でイベントバスにイベントを取り込む仕組み