ストリームの作成および管理
ストリームにメッセージを公開するか、ストリームからメッセージを消費する前に、まずストリームを作成する必要があります。
ストリームを作成する場合は、パーティション化およびセキュリティ戦略を考慮してください。
Oracle Cloud Infrastructure (OCI)コンソール、コマンドライン・インタフェース(CLI)、ストリーミングAPI、OCI SDKおよびリソース・マネージャを使用して、ストリーミング・リソースを作成できます。
次の情報では、必要に応じてコンソール、CLIおよびAPIを使用してストリームを作成および管理する方法について説明します。OCI SDKおよびリソース・マネージャを使用するステップは、次のとおりです。
ストリームを作成および管理するための要件については、ストリーミングの開始を参照してください。
ストリーム・プール
ストリーム・プールは、ストリームの論理グループです。すべてのストリームは、ストリーム・プールのメンバーである必要があります。ストリーム・プールを作成しない場合、ストリーミング・サービスは、ストリームを格納するためにデフォルト・プールを使用します。
ストリーム・プールを使用して、次のことができます:
- 組織構造または特定のソリューションに一致するグループにストリームを編成します
- プール内のストリームにインターネットを介してアクセスできないように、テナンシ内の指定された仮想クラウド・ネットワーク(VCN)へのアクセスを制限します
- プールのストリーム内のデータを暗号化するために、独自のボールト暗号化キーを使用するか、Oracle管理キーを使用するかを指定します
ストリームを作成する場合、そのストリームを既存のストリーム・プールのメンバーにするか、自動的に作成される新しいストリーム・プールのメンバーにするかを指定する必要があります。作成できるストリーム・プールの数に制限はありません。詳細は、ストリーム・プールの作成を参照してください。
ストリーム名は、ストリーム・プール内で一意である必要があります。
ストリーム・プールおよびApache Kafka
ストリーム・プールは、ストリーミングでKafkaを使用するときに、仮想Apache Kafkaクラスタのルートとして機能します。プール内のすべてのストリームは、同じKafka構成、暗号化およびアクセス制御設定を共有します。仮想クラスタに対するすべてのアクションは、そのストリーム・プールが対象範囲になります。
ストリーム・プールを構成してストリームまたはKafkaトピックを自動的に作成し、KafkaAdminClient::createTopic
をコールしてそのストリーム・プールにストリームまたはトピックを作成できます。
Kafka Javaクライアントで使用するSASL接続文字列を指定する場合、次のユーザー名が必要です:
username="<Namespace>/<identity_domain_name>/<username>/<stream_pool_id>"
詳細は、Apache Kafkaでのストリーミングの使用を参照してください。
OCI SDKを使用したストリームの作成
ストリームを作成するには、StreamAdminClient
のcreateStream
メソッドを使用します。
SDKの詳細な例は、ストリーミングの開発者ガイドを参照してください。
OCI SDKを使用したストリーム・プールの作成
ストリーム・プールを作成するには、StreamAdminClient
のcreateStreamPool
メソッドを使用します。
SDKの詳細な例は、ストリーミングの開発者ガイドを参照してください。
リソース・マネージャを使用したストリームの作成
リソース・マネージャは、OCIリソースのプロビジョニング・プロセスを自動化できるOracle Cloud Infrastructure (OCI)サービスです。Terraformを使用する場合、リソース・マネージャでは、「infrastructure-as-code」モデルを使用してリソースをインストール、構成および管理できます。
Terraform構成は、宣言的な構成ファイルのインフラストラクチャを調整します。この構成により、プロビジョニングしようとしているリソース、変数、およびリソースのプロビジョニングに関する特定の指示が定義されます
リソース・マネージャを使用して、またはOCI TerraformプロバイダでTerraform CLIを使用して、ストリームやストリーム・プールなどのストリーミング・リソースをプロビジョニングできます。
ストリーム・リソース
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構成を参照してください。
リソース・マネージャを使用したストリーム・プールの作成
リソース・マネージャは、OCIリソースのプロビジョニング・プロセスを自動化できるOracle Cloud Infrastructure (OCI)サービスです。Terraformを使用する場合、リソース・マネージャでは、「infrastructure-as-code」モデルを使用してリソースをインストール、構成および管理できます。
Terraform構成は、宣言的な構成ファイルのインフラストラクチャを調整します。この構成により、プロビジョニングしようとしているリソース、変数、およびリソースのプロビジョニングに関する特定の指示が定義されます
リソース・マネージャを使用して、またはOCI TerraformプロバイダでTerraform CLIを使用して、ストリームやストリーム・プールなどのストリーミング・リソースをプロビジョニングできます。
ストリーム・プール・リソース
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構成を参照してください。