ストリームの作成および管理

ストリームにメッセージを公開するか、ストリームからメッセージを消費する前に、まずストリームを作成する必要があります。

ストリームを作成する場合は、パーティション化およびセキュリティ戦略を考慮してください。

Oracle Cloud Infrastructure (OCI)コンソールコマンドライン・インタフェース(CLI)ストリーミングAPIOCI SDKおよびリソース・マネージャを使用して、ストリーミング・リソースを作成できます。

次の情報では、必要に応じてコンソール、CLIおよびAPIを使用してストリームを作成および管理する方法について説明します。OCI SDKおよびリソース・マネージャを使用するステップは、次のとおりです。

ストリームを作成および管理するための要件は、ストリーミングの開始を参照してください。

ストリーム・プール

ストリーム・プールは、ストリームの論理グループです。すべてのストリームは、ストリーム・プールのメンバーである必要があります。ストリーム・プールを作成しない場合、ストリーミング・サービスは、ストリームを格納するためにデフォルト・プールを使用します。

ストリーム・プールを使用して、次のことができます:

  • 組織構造または特定のソリューションに一致するグループにストリームを編成します
  • プール内のストリームにインターネットを介してアクセスできないように、テナンシ内の指定された仮想クラウド・ネットワーク(VCN)へのアクセスを制限します
  • プールのストリーム内のデータを暗号化するために、独自のボールト暗号化キーを使用するか、Oracle管理キーを使用するかを指定します

ストリームを作成する場合、そのストリームを既存のストリーム・プールのメンバーにするか、自動的に作成される新しいストリーム・プールのメンバーにするかを指定する必要があります。作成できるストリーム・プールの数に制限はありません。詳細は、ストリーム・プールの作成を参照してください。

ノート

ストリーム名は、ストリーム・プール内で一意である必要があります。

ストリーム・プールおよびApache Kafka

ストリーム・プールは、ストリーミングでKafkaを使用するときに、仮想Apache Kafkaクラスタのルートとして機能します。プール内のすべてのストリームは、同じKafka構成、暗号化およびアクセス制御設定を共有します。仮想クラスタに対するすべてのアクションは、そのストリーム・プールが対象範囲になります。

ストリーム・プールを構成してストリームまたはKafkaトピックを自動的に作成し、KafkaAdminClient::createTopicをコールしてそのストリーム・プールにストリームまたはトピックを作成できます。

詳細は、Apache Kafkaでのストリーミングの使用を参照してください。

OCI SDKを使用したストリームの作成

ストリームを作成するには、StreamAdminClientcreateStream メソッドを使用します。

SDKの詳細な例は、ストリーミングの開発者ガイドを参照してください。

OCI SDKを使用したストリーム・プールの作成

ストリーム・プールを作成するには、StreamAdminClientcreateStreamPoolメソッドを使用します。

SDKの詳細な例は、ストリーミングの開発者ガイドを参照してください。

リソース・マネージャを使用したストリームの作成

リソース・マネージャは、Oracle Cloud Infrastructure (OCI)リソースのプロビジョニング処理を自動化できるOCIサービスです。Terraformを使用する場合、リソース・マネージャでは、「infrastructure-as-code」モデルを使用してリソースをインストール、構成および管理できます。

Terraform構成は、宣言的な構成ファイルのインフラストラクチャを調整します。この構成により、プロビジョニングしようとしているリソース、変数、およびリソースのプロビジョニングに関する特定の指示が定義されます

リソース・マネージャまたはTerraform CLIをOCI Terraformプロバイダとともに使用して、ストリームやストリーム・プールなどのストリーミング・リソースをプロビジョニングできます。

ストリーム・リソース

Terraform構成のoci_streaming_streamリソースを使用して、コンパートメントにストリームを作成できます。

例:

resource "oci_streaming_stream" "stream" {
  compartment_id     = var.compartment_ocid
  name               = "<stream_name>"
  partitions         = "<number_of_partitions>"
  retention_in_hours = "<retention_in_hours>"
}

リソース・マネージャで使用する構成の記述の詳細は、リソース・マネージャのTerraform構成およびTerraform構成を参照してください。

リソース・マネージャを使用したストリーム・プールの作成

リソース・マネージャは、Oracle Cloud Infrastructure (OCI)リソースのプロビジョニング処理を自動化できるOCIサービスです。Terraformを使用する場合、リソース・マネージャでは、「infrastructure-as-code」モデルを使用してリソースをインストール、構成および管理できます。

Terraform構成は、宣言的な構成ファイルのインフラストラクチャを調整します。この構成により、プロビジョニングしようとしているリソース、変数、およびリソースのプロビジョニングに関する特定の指示が定義されます

リソース・マネージャまたはTerraform CLIをOCI Terraformプロバイダとともに使用して、ストリームやストリーム・プールなどのストリーミング・リソースをプロビジョニングできます。

ストリーム・プール・リソース

oci_streaming_stream_poolリソースを使用して、オプションのプライベート・エンドポイントおよびKafka互換性設定でストリーム・プールを作成できます。プライベート・エンドポイント設定には、VCN、サブネットおよびネットワーク・セキュリティ・グループが必要です。この例のTerraform構成では、これらのリソースも作成されます。

例:

resource "oci_streaming_stream_pool" "test_stream_pool" {
  #Required
  compartment_id = var.compartment_ocid
  name           = "<stream_pool_name>"

  #Optional
  private_endpoint_settings {
    nsg_ids             = [oci_core_network_security_group.test_nsg.id]
    private_endpoint_ip = "10.0.0.5"
    subnet_id           = oci_core_subnet.test_subnet.id
  }

  kafka_settings {
    #Optional
    auto_create_topics_enable = true
    log_retention_hours       = 24
    num_partitions            = 1
  }
}

resource "oci_core_vcn" "test_vcn" {
  cidr_block     = "10.0.0.0/16"
  compartment_id = var.compartment_ocid
  display_name   = "testvcn"
  dns_label      = "dnslabel"
}

resource "oci_core_subnet" "test_subnet" {
  cidr_block     = "10.0.0.0/24"
  compartment_id = var.compartment_ocid
  vcn_id         = oci_core_vcn.test_vcn.id
}

resource "oci_core_network_security_group" "test_nsg" {
  compartment_id = var.compartment_ocid
  vcn_id         = oci_core_vcn.test_vcn.id
}

リソース・マネージャで使用する構成の記述の詳細は、リソース・マネージャのTerraform構成およびTerraform構成を参照してください。