Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
OCI Queue Service 概要
Search
oracle4engineer
PRO
December 21, 2023
Technology
1.3k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
OCI Queue Service 概要
oracle4engineer
PRO
December 21, 2023
More Decks by oracle4engineer
See All by oracle4engineer
Deep Data Security 機能解説
oracle4engineer
PRO
3
950
Autonomous AI Lakehouse - Live AI Hubから始めるセキュアなAIデータ活用 -
oracle4engineer
PRO
2
160
Oracle Database Security 詳細解説
oracle4engineer
PRO
1
64
【Oracle AI SPOTLIGHT ウェビナー】事例から見る!なぜOCIが選ばれたのか ― AI時代のクラウド戦略を紐解く ―
oracle4engineer
PRO
1
110
Oracle Cloud Infrastructure:2026年10月度サービス・アップデート
oracle4engineer
PRO
1
100
Kubernetesで作るLLM推論基盤(OCHaCafe Season 12 #1)
oracle4engineer
PRO
1
170
【Oracle AI Spotlight ウェビナー】AI活用を支えるデータ基盤とは ― いま押さえておきたい Oracle AI Database 26ai の注目機能
oracle4engineer
PRO
0
120
kagent で Kubernetes 運用を考える
oracle4engineer
PRO
1
490
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
17
120k
Other Decks in Technology
See All in Technology
AI駆動開発におけるハーネスエンジニアリングの勘所
tsukuboshi
1
820
クラウドサインを止めずに Nuxt へ 次の10年のために先に決めたこと
bengo4com
1
170
Don't write the architecture only in the prompt.
neohsu
0
170
局所最適は悪ではない。壊れているのは指標です。量と質を同時に見る先行指標の設計
recruitengineers
PRO
3
1.3k
正解のない研修に放り出されて / Being thrown into a training program with no right answers
ohnoeight
1
160
Flutter Widget Previewerで始めるUIプレビューとVRTの自動化
sakusaku3939
0
140
OneLakeをデータソースにした AI Search(Foundry IQ)の ライフサイクル管理
ryuseiiida
0
120
200人の配信コメント、 全部Jevが仕分けます 〜 マサカリガードを作ってみた 〜
katayamatg
1
350
Claude Code をローカルとサーバー上で利用した際の Bedrock 利用料をユーザー単位で一本化してみる
ohorig
0
170
ドメインエキスパートは いかにして AI を使って プロダクト開発をするか
tatsuyashiraishi
1
220
Vue で書く 空間コンピューティング、TresJS と WebXR を使ったXR デバイスのフロントエンド開発
hiranuma
0
120
AIに任せられるFlutterコードベースを作る 〜仕様をコードで表し、ハーネスで守る〜
myohei
1
330
Featured
See All Featured
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
70
68k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
1
290
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
2
2.9k
The Invisible Side of Design
smashingmag
301
52k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1.1k
Odyssey Design
rkendrick25
PRO
2
890
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
2
330
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
2
370
Faster Mobile Websites
deanohume
310
32k
How to Talk to Developers About Accessibility
jct
2
590
Un-Boring Meetings
codingconduct
0
470
Amusing Abliteration
ianozsvald
1
360
Transcript
OCI Queue Service ご紹介 日本オラクル株式会社 2024年5月
メッセージ基盤の分類 分散ストリーミング • 点と(複数の)点を接続 • ブローカー通信 • リアルタイム/高スループット • メッセージの再利用性
• 順序保証 • 例) OCI Streaming (Kafka) メッセージキュー • 点と点を接続 • ブローカー通信 • 信頼度の高い非同期通信 • 一度だけのメッセージ処理 • 処理の保証 • 複数のプロトコル • 自動スケール • 例) OCI Queue メッセージブローカー • 点と(複数の)点を接続 • ブローカー通信 • Pushベース/非同期 • 緩い順序保証 • 例) Oracle TEQ (AQ) (ストリーミング) Web サービス • 点と点を接続 • 直接の通信 • 同期通信 • 例) HTTP Web Services, gRPC Copyright © 2024, Oracle and/or its affiliates. 2
非同期メッセージングをサーバレスに実現する、ハイパフォーマンス・メッセージキュー 3 Copyright © 2024, Oracle and/or its affiliates. OCI
Queue Service ▪ ユースケース • アプリケーションを分離し、疎結合なアーキテクチャを構築 • 信頼性の高いスケーラブルなメッセージ基盤の活用 ▪ 特徴 • フルマネージド、オートスケール • OCI Streaming を補完する適用領域 • オフセット(カーソル)無し、メッセージ消費は逐次確認 • パーティション無し、需要に応じてオートスケール • at-least-once 配信、配信順序はベストエフォート • Dead Letter Queue (DLQ) の提供 (異常終了メッセージを退避) • チャネル機能(一時的なキュー内の宛先) • キューメッセージの暗号化 • STOMPプロトコルをサポート ▪ 価格 最初の100万リクエストは無料、移行100万リクエストごとに¥30.8 * 1 リクエストのメッセージ容量が64KBを超える場合、64KBを1単位として複数のリクエストとして計算 ** 複数メッセージの同時取得は、メッセージ容量に基づいて計算 Container Engine For Kubernetes Containers Virtual Machine OCI Queue Service Functions Producer … etc. Container Engine For Kubernetes Containers Virtual Machine Functions Consumer … etc. • STOMP: Simple Text Orientated Messaging Protocol 軽量なメッセージングプロトコル regular dead letter
4 マネージド 自動化、メンテナンス要らず のインフラとプラットフォーム セキュア 外部/内部の脅威から データを守る スケール 停止なしの自動スケール と最低限のコスト
OCI Queue Service の特長 4 従量課金 最大限のコストパフォーマンス 複数のプロトコル HTTP/STOMPのサポート Copyright © 2024, Oracle and/or its affiliates.
①プロデューサ(メッセージ送信クライアント)はメッセージを OCI Queue に公開 ②コンシューマ(メッセージ受信クライアント)が OCI Queue 上のメッセージを取得 ③コンシューマが取得したメッセージを処理 ④コンシューマがOCI
Queueに対して処理したメッセージの 削除をリクエスト OCI Queue Service の基本的な処理の流れ プロデューサ OCI Queue コンシューマ ① ② ④ ③ Copyright © 2024, Oracle and/or its affiliates. 5
at-least-once デリバリーを採用 at-most-once デリバリー • メッセージ毎に、そのメッセージ は0回か1回配信される • メッセージは重複しない •
メッセージが失われる可能性 がある at-least-once デリバリー • メッセージ毎に、少なくとも1回 成功するように潜在的に複数 回配信が行われる • メッセージの重複があり得る • メッセージの複製が失われない exactly-once デリバリー • メッセージ毎に正確に1回の 配信が受信者に対して行わ れる • メッセージは重複しない • メッセージは失われたり複製さ れたりしない OCI Queue Service の機能 Copyright © 2024, Oracle and/or its affiliates. 6
デッド・レター・キュー (DLQ) 正常に処理されていないメッセージを格納する方法として、デッド・レター・キューを提供 • メッセージがキューから取得されるたびに、メッセージの配信回数が増加 • メッセージの配信回数が設定値を超えると、メッセージはデッド・レター・キューに移動 • キューの設定値(最大配信試行回数)はキューの作成時または変更時に指定可能 デッド・レター・キューに転送されたメッセージが削除されるのは以下の2パターン
• 設定した保存期間が過ぎ、サービスによって削除 • メッセージを処理後のコンシューマなどによって手動で削除 OCI Queue Service の機能 Copyright © 2024, Oracle and/or its affiliates. 7
Queueのモニタリング キューとデッドレター・キューの様々なメトリックを取得可能 • 消費可能なキュー内の現在のメッセージの概数 • コンシューマに配信されたがまだ削除されていないメッセージの概数 • 表示メッセージおよび処理中メッセージのサイズの合計としてのキューの概算サイズ(バイト) • etc.
OCI Queue Service の機能 Copyright © 2024, Oracle and/or its affiliates. 8
チャネル 一時的なキュー内の宛先として機能する • プロデューサはメッセージを特定のチャネルに公開可能 • コンシューマはメッセージを取得するチャネルのフィルタリングが可能 • 複数のチャネルがフィルタリングされたときには、その複数のチャネルからランダムに選択されメッセージを取得(ランダム・チャネル) • チャネルのフィルタリングをしない場合はキュー・レベルでランダム・チャネルから取得
OCI Queue Service の機能 Copyright © 2024, Oracle and/or its affiliates. 9
アプリケーションの分離 フロントエンドとバックエンドの分離 • バックエンドサービスの並列化 • 非同期処理の実現 • システム利用ユーザはバックエンド の処理終了を待たずに結果を得る •
疎結合性による開発スピードの 向上 コンポーネントの独立したスケール • ボトルネックの解消 • システム内でボトルネックの部分 (IaaS/コンテナ/DB/etc.)のみを 必要なだけスケール • 余剰リソースの削減 システムの拡張性 • 後からコンポーネントの追加(機 能の追加など)が容易 • QueueにProduce/Queueから Consumeと言う形を守ればよい OCI Queue Service のユースケース Front Svc1 プロデューサ コンシューマ コンシューマ コンシューマ スケール プロデューサ コンシューマ プロデューサ メッセージのスキーマを揃えれば、 コンシューマの変更は不要 Svc2 Svc3 Copyright © 2024, Oracle and/or its affiliates. 10
ユースケース: メッセージ処理の公平性 複数のプロデューサが同じキューにメッセージを Publishする場合に、あるプロデューサ(P1)からの メッセージが突然急増すると、他のプロデューサから のメッセージのConsumeが大幅に遅延する チャネルを用いたOCI Queueのユースケース 11 チャネル機能を利用すると、キュー・レベルのランダ
ム・チャネルからメッセージを取得できるため、メッセー ジ処理の偏りをなくし、公平性を高めることができる Copyright © 2024, Oracle and/or its affiliates.
ユースケース: 一時キューとして利用(リクエスト/レスポンス・パターン) 本来Pub/Subモデルの非同期メッセージングでは、リクエストとレスポンスは切り離されたものとなる • レスポンス先をリクエスト元に正確に返却するには、リクエスト元の特定が必要 • 一時キューとしてチャネルを活用することで、特定が可能 チャネルを用いたOCI Queueのユースケース 12
Copyright © 2024, Oracle and/or its affiliates.
デフォルトの制限 リソース 詳細 キュー テナンシ当たり10/リージョン 最大PutMessageリクエスト・サイズ 512KBおよび20メッセージ 最大GetMessageレスポンス・サイズ 2MBおよび20メッセージ メッセージの最大容量
128KB 処理中メッセージの最大数 キュー当たり100,000 キューごとの最大メッセージ 無制限 メッセージの保存 最大: 7日間 最小: 10秒 デフォルト: 1日 メッセージ表示タイムアウト 最大: 12時間 最小: メッセージ・レベルで0秒、キュー・レベルで1秒 デフォルト: 30秒 OCI Queue Service の制限 Copyright © 2024, Oracle and/or its affiliates. 13
デフォルトの制限 リソース 詳細 最大同時GETリクエスト キュー当たり1,000リクエスト/秒 最大メッセージ操作数 キュー当たりのAPI当たり1,000リクエスト/秒 最大データレート キュー当たりのイングレス: 10MB/sキュー当たりのエグレス:
10MB/s 投票タイムアウト 最大: 30秒最小: 0秒 STOMPスループット STOMP接続あたり10Mバイト/秒 ストレージ テナンシ当たり20GB、キュー当たり2GB OCI Queue Service の制限(続き) Copyright © 2024, Oracle and/or its affiliates. 14
「ドクセル」 を、OCI Container Instancesを活用してGoogle Cloudから移行し、圧倒的なコスト削減を実現 ドクセル(Docswell) • PDFやパワーポイントのスライドを共有できる国産のスライドシェ アサービス。ユーザー約30万人、月間アクセス約600万回。 従来の課題
• 既存のGoogle Cloud環境のコスト削減の必要性があった(特 に、アウトバウンドのデータ転送のコスト)。 • ユーザーアクセス時にコンテナが都度起動するスピンアップの仕組 みにより、時に遅延が発生していた。 採用ポイントと導入効果 • 既存Google Cloud環境から移行し、特にデータ転送が毎月 10TB無料の利点を享受し、全体で約65%のコスト削減を実 現。MySQL Database Serviceの高可用性構成の部分は、 要件を実現しつつ約50%のコスト削減を実現。 • OCI Container Instancesを活用し、Kubernetesを利用せ ずに既存のコンテナアプケーションをシームレスに移行できた。 • コスト面で有利なContainer Instancesを必要個数、常時起 動しておくことで、スピンアップの仕組みにする必要が無くなった。 結果、遅延のない安定的な処理を実現。 • 複数のコンテナ間の疎結合な処理にOCI Queueを活用。 システム構成イメージ 利用サービス(クラウドサービス/その他) • OCI Container Instances • OCI Registry • MySQL Database Service • OCI Queue • OCI Cache • コスト削減フレームワーク (Oracleによる移行アセスメント支援) 顧客事例:株式会社アプルーシッド様 Copyright © 2024, Oracle and/or its affiliates 15
None