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

OCI技術資料 : イベント・サービス 概要

OCI技術資料 : イベント・サービス 概要

Oralce Cloud Infrastructure (OCI) の技術説明資料、イベント・サービスの概要編 (Level 100) です。

クラウド上のリソースの変化を捉え、サービスが自動的に連動する仕組みを実現する、イベント・サービスについて解説しています。

2021/10/18  初版

More Decks by Oracle Cloud Infrastructure ソリューション・エンジニア

Other Decks in Technology

Transcript

  1. サービス同士を連動させるイベント・ルーティングの管理、配信をシンプルに ▪ ユースケース クラウド上のリソースの変化を捉え、サービスが自動的に連動する仕組みを実現 (例) • データベースのバックアップが完了したことを通知する • ファイルがオブジェクト・ストレージ・バケットにアップロードされた際、 あるフォーマットのファイルを別のフォーマットに変換する

    ▪ 特徴 イベントのメッセージは CNCFのCloudEventsに準拠した標準フォーマット • CloudEventsに準拠した他社クラウドサービスと連携したアプリケーションを 構築可能 EventsとOracle Functionsを連携し、イベント・ドリブンのサーバーレス・ プラットフォームとして動作可能 ▪ 価格 無料 Events (イベント・サービス) Copyright © 2022, Oracle and/or its affiliates 3 …… Events Notifications Functions Streaming Virtual Machine Block Storage Database System リソース イベント アクション Events
  2. イベント OCI上のリソースによって発行される、状態変更の通知。 イベントを発行するサービスと、その内容に応じてイベントの種類 - 「イベント・タイプ」 が定義されている。 ルール 関心のあるイベントを定義し、どのアクションをトリガーするかを定義するオブジェクト。 イベント・タイプや属性、フィルタ・タグなどの 条件を指定する

    ことで、アクションを実行するイベントを制限する。 アクション ルールに一致するイベントに対する、ユーザー定義の応答。 アクションは、下記のOracle Cloud Infrastucutre サービスにのみ配信可能。  通知  ストリーミング  ファンクション イベント・サービスの構成要素 Copyright © 2022, Oracle and/or its affiliates 4
  3. イベントを生成できる 主なOCIサービス • https://docs.oracle.com/ja-jp/iaas/Content/Events/Reference/eventsproducers.htm 最新情報と各サービスのイベント・タイプの詳細はリンク先のマニュアルを参照のこと イベントを生成するサービス Copyright © 2022, Oracle

    and/or its affiliates 5 • データ・カタログ • データ統合 • データ・ラベリング • データ・セーフ • データ・サイエンス • データ転送 • データベース • データベース移行 • データベース・ツール • DevOps • デジタル・アシスタント • ファイル・ストレージ • ファンクション • アナリティクス・クラウド (OAC) • APIゲートウェイ • クラシック移行サービス • アーティファクト・レジストリ • 要塞 (Bastion Service) • ビッグ・データ • ブロック・ボリューム • 予算 • クラウド・ガード • コンピュート • OKE • コンテナ・レジストリ • コンテンツ管理 (OCM) • GoldenGate • ヘルス・チェック • IAM • 統合 • Java管理 • メディア・フロー • メディア・ストリーム • MySQLデータベース • ネットワーキング • ネットワーク・ファイアーウォール • NoSQL Database Cloud • 通知 • オブジェクト・ストレージ • オペレーション・インサイト • OS管理 • プロセス自動化 • リソース・マネージャ • セキュリティ・ゾーン • サービス・メッシュ • 脆弱性スキャン • WAF
  4. https://docs.oracle.com/ja-jp/iaas/Content/Events/Reference/eventenvelopereference.htm イベント・メッセージの構成 Copyright © 2022, Oracle and/or its affiliates 6

    • イベント・メッセージは「エンベロープ」と「ペイロード」の2つの主要部分から構成される • 下記はオブジェクト・ストレージによって発行されるバケット・イベントの例 { "cloudEventsVersion": "0.1", "eventID": "<unique_ID>", "eventType": "com.oraclecloud.objectstorage.deletebucket", "source": "objectstorage", "eventTypeVersion": "1.0", "eventTime": "2019-01-10T21:19:24Z", "contentType": "application/json", "extensions": { "compartmentId": "ocid1.compartment.oc1..<unique_ID>" }, "data": { "compartmentId": "ocid1.compartment.oc1..<unique_ID>", "compartmentName": "example_name", "resourceName": "my_bucket", "resourceId": "ocid1.compartment.oc1..<unique_ID>", "availabilityDomain": "NfHZ:PHX-AD-2", "freeFormTags": { "Department": "Finance" }, "definedTags": { "Operations": { "CostCenter": "42" } }, "additionalDetails": { "namespace": "example_namespace", "publicAccessType": "NoPublicAccess", "eTag": "f8ffb6e9-f602-460f-a6c0-00b5abfa24c7" } } } エンベロープ部 すべてのイベント・メッセージのコンテナ。 (*) 構成は、Cloud Native Computing Foundation (CNCF) によって 推進されているCloudEvents 業界標準形式に準拠 ペイロード部 イベントを生成したサービスおよび定義したイベント・タイプによって 異なるデータ部。
  5. イベント・ルール設定の流れ Copyright © 2022, Oracle and/or its affiliates 7 1.

    アクション・リソースの設定 ルールで使用するアクション・リソースを作成または設定します。 例えば、通知サービスをアクション・リソースとして設定する場合には、事前に通知トピックを作成します。 2. フィルタの計画 モニター対象とするサービスが、イベント・サービスに対応しているかを確認します。 また、どのようにフィルタリングするか、条件の指定方針を検討します。 イベントの「ルール条件」では、イベント・タイプの指定のほかに、下記を指定可能です。 • 属性:モニター対象とするリソースの属性情報(リソースID、リソース名など、イベント・タイプ毎に異なる) • フィルタ・タグ:モニター対象とするリソースに付与された「タグ・ネームスペース」「タグ・キー」「タグ値」 3. ルールの作成 実際に、イベント・ルールを作成します。作成するコンパートメントおよび子コンパートメントのイベントに適用されます。 事前に計画した内容に沿って、モニターするリソースを持つコンパートメント内にルールを作成し、トリガー先となる アクション・タイプを指定します。
  6. イベント・サービスから 各トリガー先となるサービス (通知サービス、ファンクション、ストリーミング) に対してイベントを配信する ためには、下記ポリシーの設定が必要 • 通知サービスのトピックに対して、イベント・サービスが イベントを配信することを許可するポリシー • ファンクションに対して、イベント・サービスが

    イベントを配信することを許可するポリシー • ストリーミングに対して、イベント・サービスが イベントを配信することを許可するポリシー - その他、イベント・サービスの管理者として必要な権限については下記ドキュメントを参照 https://docs.oracle.com/ja-jp/iaas/Content/Events/Concepts/eventspolicy.htm サービス実行に必要となる IAMポリシー Copyright © 2022, Oracle and/or its affiliates 9 Allow service cloudEvents to use ons-topic in tenancy Allow service cloudEvents to use functions-family in tenancy Allow service cloudEvents to use stream-push in tenancy Allow service cloudEvents to read streams in tenancy
  7. ▪ 通知サービスとは • マネージドのメッセージングサービス • モニタリング・アラームなどのメッセージを大規模なサブスクリプション・ エンドポイントにプッシュ • セキュアで低レイテンシー、耐久性に優れたメッセージ配信 •

    通知先から確認応答がされない(通知が上手く行かない)場合、 サブスクリプションの再試行期間中(最大120分)、指数バックオフを 含む再試行を行う ▪ サブスクリプションのタイプ(2022年12月現在) • Email • ファンクション • HTTPS (Custom URL) • PagerDuty • Slack • SMS 指定可能なアクション(1):Notifications (通知サービス) Copyright © 2022, Oracle and/or its affiliates 10 イベント・サービス × 通知サービス の連携 イベント・サービスでリソースの変化を検知して通知 Notifications
  8. フルマネージド、高スケーラビリティ、実行時のみ課金のサーバーレス実行環境 指定可能なアクション(2):Functions (ファンクション) Copyright © 2022, Oracle and/or its affiliates

    11 ▪ ユースケース サーバーレス実行環境でイベント・ドリブン型開発を効率化 ▪ 特徴 フルマネージドなサーバレス基盤(FaaS) 実行時のみの課金、インフラ管理は不要、自動スケール オープンソースのFn Projectをベースとし、Dockerコンテナの 可搬性を備え、ロックイン無し Dockerコンテナと組み合わせ多彩な処理を実行可能 開発者視点のシンプルな開発フロー ▪ 価格 (2022年12月現在) 最初の200万リクエストは無料、以降100万リクエストごとに¥28.00 最初の400,000 GB – 秒は無料、以降10,000 GB-秒ごとに¥19.838 - 例) 1024MB (1GB)のメモリを10,000秒(2時間46分40秒)利用した場合: 1 x 1 x ¥19.838 IoT, Web, Mobileアプリケーションのバックエンドや Oracle Cloudサービスの変更をトリガーにファンクションが処理を実行 Mobile,Web App IoT Oracle Cloud Infrastructure … … Oracle Cloud Infrastructure Functions Events Functions API Gateway Streaming
  9. 大量のデータストリームを処理するフルマネージドな分散メッセージングサービス 指定可能なアクション(3):Streaming(ストリーミング) Copyright © 2022, Oracle and/or its affiliates 12

    ▪ ユースケース ログやイベント、Web/MobileやIoTからのデータストリームを集約、 巨大なシステム内でのサービス間を繋ぐデータハブ ▪ 特徴 複雑になりやすいサービス間やコンポーネント間の接続経路を、Streamingを経 由する形にすることでシンプルにすることが可能 Pub/Subモデルの採用により、データ通信を非同期に行い急激なデータ増加に よるシステム負荷の上昇を抑制 Streamingに接続するためのAPIやSDKを提供 • Kafka互換APIを提供 ▪ 価格 (2022年12月現在) データ転送(登録/取得)1GBごとに¥3.5 データの保持1GB×時間ごとに¥0.028 ▪ 関連するOracle Cloud Service • Events (イベント・サービス) • Oracle Functions (ファンクション) • API Gateway IoT Mobile/We b Activities App Kafka Client Streaming Events API Gateway Database System Object Storage Functions Streaming
  10. イベント・サービス × 通知サービス イベント・サービスの使用例(1) Copyright © 2022, Oracle and/or its

    affiliates 13  ユースケース:Autonomous Database の自動バックアップが問題なく完了したことを通知させる  イベント・タイプの条件に加えて、「属性」条件でリソース名 (resourceName) を指定することで、特定の Autonomous Database リソースの自動バックアップのみ通知させることも可 Autonomous Transaction Processing ATP 自動バックアップ Events Notifications 自動バックアップの完了 (Automatic Backup End) 通知サービスのトリガー 各サブスクリプションへの配信 例:Slack/Email/pagerduty
  11. イベント・サービス × ファンクション イベント・サービスの使用例(2) Copyright © 2022, Oracle and/or its

    affiliates 14  ユースケース:プリエンプティブル・インスタンスの終了を検知し、インスタンスを再作成する  イベント・タイプの条件に加えて、「属性」条件でリソース名 (resourceName) を指定することで、特定のコンピュー ト・インスタンスの終了に合わせて、インスタンスの再作成をさせることも可 インスタンスの再要求 (インスタンスの終了) Events プリエンプション・イベント (Instance Preemption Action) ファンクションのトリガー プリエンプティブル・インスタンスの再作成 Virtual Machine (Preemptible Instances) Functions Virtual Machine (Preemptible Instances)
  12. イベント・サービス × ストリーミング イベント・サービスの使用例(3) Copyright © 2022, Oracle and/or its

    affiliates 15  ユースケース:オブジェクト・ストレージへのオブジェクト追加を検知し、Splunkにデータを共有する  イベント・タイプの条件に加えて、「属性」条件でバケット名 (bucketName) を指定することで、特定のバケットに 絞り込むことが可能  オブジェクトはデフォルトではイベントを発行しないため、対象のバケットがオブジェクトの状態変更に対してイベントを 送信できるように事前に設定が必要。 オブジェクトの追加 (Object Create) ストリーミングのトリガー Splunkへのデータ連携 Splunk IoT Data etc. Object Storage Streaming Events
  13. イベント・サービスが向かないユースケース Copyright © 2022, Oracle and/or its affiliates 16 『イベント・サービスは

    リソースの 状態の変化 を検知し、特定の OCI サービスに連携 する』 サービス → 次のようなケースでは別の機能の利用を検討する “誰が”◦◦を行ったかを検知して、通知サービスに連携したい ◦◦”ログ”を、特定のOracle Cloud Infrastructure サービスに連携したい イベント・サービスでは、イベントの内容に「プリンシパル」の情報が含まれない。 代わりに、「監査ログ」と「サービス・コネクタ・ハブ」を利用して、通知サービスに連携する。 各サービスのログ (VCNのフロー・ログ、ロード・バランサのアクセス・ログ等) や、Syslog等を特定のOracle Cloud Infrastucutre サービスに連携したい場合には、「ロギング」と「サービス・コネクタ・ハブ」を利用して、 対象のサービスに連携する。 各リソースの”内部的な状態”を監視して、通知サービスに連携したい イベント・サービスでは、サービスの内部的な状態は検知できない。 (CPU使用率やスループット等) モニタリング・サービスを使用し、各リソースから発行されるメトリックを元に監視する。
  14. イベント・サービスで使用可能なメトリクス Copyright © 2022, Oracle and/or its affiliates 17 •

    PublishedEvents コンパートメント内のリソースによって発行された イベントの合計数 • MatchedEvents ルールに対して一致したイベントの合計数 • DeliverySucceedEvents アクションへの成功した配信の合計数 • DeliveryFailedEvents アクションへの失敗した配信の合計数
  15. Oracle Cloud Infrastructure マニュアル (日本語 / 英語) • https://docs.cloud.oracle.com/iaas/api/ -

    APIリファレンス • https://docs.cloud.oracle.com/ja-jp/iaas/Content/General/Reference/aqswhitepapers.htm - テクニカ ル・ホワイト・ペーパー • https://docs.cloud.oracle.com/iaas/releasenotes/ - リリースノート • https://docs.cloud.oracle.com/ja-jp/iaas/Content/knownissues.htm - 既知の問題(Known Issues) • https://docs.cloud.oracle.com/ja-jp/iaas/Content/General/Reference/graphicsfordiagrams.htm - OCIアイコン・ダイアグラム集(PPT、SVG、Visio用) ※ 日本語版は翻訳のタイムラグのため情報が古い場合があります。最新情報は英語版をご確認ください Oracle Cloud Infrastructure マニュアル・ドキュメント Copyright © 2022, Oracle and/or its affiliates 20
  16. Oracle Cloud Infrastructure 活用資料集 • https://oracle-japan.github.io/ocidocs/ チュートリアル - Oracle Cloud

    Infrastructureを使ってみよう • https://oracle-japan.github.io/ocitutorials/ Oracle Cloud ウェビナーシリーズ • https://www.oracle.com/goto/ocws-jp Oracle 主催 セミナー、ハンズオン・ワークショップ • https://www.oracle.com/search/events/_/N-2bu/ Oracle Cloud Infrastructure – General Forum (英語) • https://cloudcustomerconnect.oracle.com/resources/9c8fa8f96f/summary Oracle Cloud Infrastructure トレーニング・技術フォーラム Copyright © 2022, Oracle and/or its affiliates 21
  17. Our mission is to help people see data in new

    ways, discover insights, unlock endless possibilities.