APIおよびJava SDKを使用したOracle Cloud Infrastructureキューの作成および実装について学習

Oracle Cloud Infrastructure (OCI)キューのAPIおよびSDKを使用して、このサービスをメッセージ・ソースとコンシューマの両方として作成、レポートおよび利用できます。このプレイブックではJava APIに焦点を当てていますが、すべての言語のSDKで同じ原則と機能を使用できます。

OCIキューは、フルマネージドのサーバーレス・メッセージ配信サービスで、ワークロードの需要に応じて自動的にスケーリングされます。アプリケーションを分離し、非同期のイベント駆動型アーキテクチャを構築するのに役立ちます。

OCIキューAPIについて学習

ソリューションは非常に単一のプロセスであることはほとんどありません。多くの場合、CPUやレイテンシなどの配置が必要になるなど、ソリューションがリソース制限によって制限されるのを回避するために、アプリケーション間の非同期通信が必要になります。これらの問題は、プロデューサとコンシューマが相互に依存する必要がない通信を確立することで解決できます。OCIキューは、非常に高レベルの実行中にこのタイプの通信をサポートしています。

アーキテクチャ

このプレイブックで説明するアーキテクチャにより、独自のコンピュータからロジックを実行したり、SSHトンネルを介して制御できる1つまたは2つのVMから簡単にロジックを実行できます。これらのアーキテクチャを次の図に示します。必要に応じてキューが作成されるため、OCIキューは表示されません。

VM外部のOCIキュー・ツールを使用してキューを作成および実装する場合は、次のアーキテクチャを使用します。


queue-api-playbook-arch-02.pngの説明が続きます
図queue-api-playbook-arch-02.pngの説明

queue-api-playbook-arch-02-oracle.zip

VM内のOCIキュー・ツールを使用してキューを作成および実装する場合は、次のアーキテクチャを使用します。


queue-api-playbook-arch-01.pngの説明が続きます
図queue-api-playbook-arch-01.pngの説明

queue-api-playbook-arch-01-oracle.zip

次のプレイブックでは、クライアントとコンシューマの両方に独自のデスクトップ・ホストを使用することを想定しています。

これらのアーキテクチャーの両方に、次のコンポーネントが含まれています。
  • リージョン

    Oracle Cloud Infrastructureリージョンは、アベイラビリティ・ドメインと呼ばれる1つ以上のデータ・センターを含むローカライズされた地理的領域です。リージョンは他のリージョンから独立しており、広大な距離で(複数の国または複数の大陸にまたがる)リージョンを分離できます。

  • 可用性ドメイン

    アベイラビリティ・ドメインは、リージョン内の独立したスタンドアロン・データ・センターです。各可用性ドメイン内の物理リソースは、他の可用性ドメイン内のリソースから分離されるため、耐障害性が提供されます。可用性ドメインは、電源や冷却、内部可用性ドメイン・ネットワークなどのインフラストラクチャを共有しません。そのため、ある可用性ドメインでの障害がリージョン内の他の可用性ドメインに影響することはほとんどありません。

  • フォルト・ドメイン

    フォルト・ドメインは、可用性ドメイン内のハードウェアおよびインフラストラクチャのグループです。各アベイラビリティ・ドメインに3つのフォルト・ドメインがあり、それぞれ独立した電源とハードウェアがあります。複数のフォルト・ドメインにリソースを分散すると、アプリケーションは、フォルト・ドメイン内の物理サーバー障害、システム・メンテナンスおよび電源障害を許容できます。

  • コンパートメント

    コンパートメントは、Oracle Cloud Infrastructureテナンシ内のリージョン間論理パーティションです。コンパートメントを使用して、Oracle Cloudでリソースを編成、リソースへのアクセスを制御および使用割当てを設定します。特定のコンパートメント内のリソースへのアクセスを制御するには、誰がリソースにアクセスできるか、どのアクションを実行できるかを指定するポリシーを定義します。

  • 仮想クラウド・ネットワーク(VCN)およびサブネット

    VCNは、Oracle Cloud Infrastructureリージョンで設定する、カスタマイズ可能なソフトウェア定義のネットワークです。従来のデータ・センター・ネットワークと同様に、VCNによってネットワーク環境を完全に制御できます。VCNには、VCNの作成後に変更できる、重複しない複数のCIDRブロックを含めることができます。VCNをサブネットにセグメント化して、そのスコープをリージョンや可用性ドメインに設定できます。各サブネットは、VCN内の他のサブネットと重複しない連続した範囲のアドレスで構成されます。サブネットのサイズは、作成後に変更できます。サブネットはパブリックにもプライベートにもできます。

  • コンピュート・インスタンス

    Oracle Cloud Infrastructure Computeでは、コンピュート・ホストのプロビジョニングおよび管理が可能です。リソース要件(CPU、メモリー、ネットワーク帯域幅およびストレージ)を満たすシェイプのコンピュート・インスタンスを起動できます。コンピュート・インスタンスの作成後は、インスタンスに安全にアクセスして再起動し、ボリュームをアタッチおよびデタッチして、不要なときに終了できます。

キュー・ポリシーの考慮事項

OCIキューを制御および構成するためのポリシーと、メッセージを作成および使用するためのポリシーは別々です。これにより、APIを介して使用可能な操作を詳細に制御できます。つまり、アプリケーションの要件とセキュリティ・ニーズを考慮する必要があります。

Java SDKについて学習

OCIによって提供されるSDKは、OCIサービス呼出しの認証および認可に必要な情報を取得する一連の説得機能を提供します。 SDKは、Joshua Blochのビルダー・パターンのバリアントを採用しています。これらのビルド・パターンの詳細は、ブログ投稿JavaでのJoshua Blochのビルダー設計パターンの確認を参照してください。