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
OCI Queue Service 概要
Search
oracle4engineer
PRO
December 21, 2023
Technology
1.2k
1
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
Oracle AI Databaseデータベース・サービスのメンテナンス(BaseDB/ExaDB-D/ExaDB-XS)
oracle4engineer
PRO
4
1.4k
Oracle AI Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
6
1.5k
Oracle AI Database@Azure:サービス概要のご紹介
oracle4engineer
PRO
6
1.9k
Oracle AI Database@AWS:サービス概要のご紹介
oracle4engineer
PRO
4
2.9k
CrossplaneによるCloud Native Control Plane
oracle4engineer
PRO
0
93
OCI Oracle AI Database Services新機能アップデート(2026/03-2026/05)
oracle4engineer
PRO
0
360
Oracle Cloud Infrastructure IaaS 新機能アップデート 2026/3 - 2026/5
oracle4engineer
PRO
1
260
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
5
1.8k
Oracle Database Gold Image
oracle4engineer
PRO
1
170
Other Decks in Technology
See All in Technology
失敗を経て、Harness Engineering で 大切にしたいことを考える / Learning from Failure: What Matters in Harness Engineering
bitkey
PRO
1
310
Claude Code×Terraform IaC テンプレート駆動開発
itouhi
1
490
RAG を使わないという選択肢
tatsutaka
1
190
爆速でマルチプロダクトを立ち上げる時 事業・CTO目線で大事にしたい事
miyatakoji
0
100
エラーバジェットのアラートのタイミングを考える.pdf
kairim0
0
120
SONiC Scale-Up Working Group から探る Scale-UpやUltraEthernet機能の実装方法
ebiken
PRO
1
120
非定型業務をAI slackbotで自動化する ~ 社内要望を自動壁打ちするbotを作った ~/automating-ad-hoc-work-with-ai-slackbot
shibayu36
0
600
Building applications in the Gemini API family.
line_developers_tw
PRO
0
3k
MIERUNE JCT 発表資料「宇宙から伊能忠敬ごっこ」
syuchimu
0
210
Snowflakeと仲良くなる第一歩
coco_se
4
420
小さくはじめるSLI/SLO ~育てながら組織に定着させる実践知~ / Starting Small with SLI/SLOs: Building Adoption Through Continuous Growth
nari_ex
5
1.7k
フロンティアAIのゲート化と地政学リスク
nagatsu
0
120
Featured
See All Featured
Everyday Curiosity
cassininazir
0
230
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
530
Faster Mobile Websites
deanohume
310
31k
A designer walks into a library…
pauljervisheath
211
24k
Raft: Consensus for Rubyists
vanstee
141
7.5k
WENDY [Excerpt]
tessaabrams
11
38k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
62
44k
Context Engineering - Making Every Token Count
addyosmani
9
960
It's Worth the Effort
3n
188
29k
30 Presentation Tips
portentint
PRO
1
320
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.5k
Why Our Code Smells
bkeepers
PRO
340
58k
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