クラスタの作成の開始

OCIテナンシでKafkaクラスタを作成することで、Apache Kafkaを使用したOCIストリーミングを開始します。

開始する前に

Kafkaクラスタを作成するテナンシに次のOCIリソースを作成してください:

  • テナンシにVirtual Cloud Network (VCN)を作成します。
  • VCNにサブネットを作成します。
  • サブネットを編集して、次のいずれかのポートへのトラフィック(source port range = All)を許可します。
    • SASL_SCRAM認証メカニズムの場合、ポート9092へのTCPトラフィックを許可します。
    • mTLSベースの認証メカニズムの場合、ポート9093へのトラフィックを許可します。

必要なIAMポリシー

Kafkaクラスタを作成するコンパートメントに、これらのステートメントを使用してポリシーを作成します。

allow group <kafka_admins> to {KAFKA_CLUSTER_INSPECT, KAFKA_CLUSTER_READ, KAFKA_CLUSTER_CREATE, KAFKA_CLUSTER_DELETE, KAFKA_CLUSTER_UPDATE, KAFKA_CLUSTER_CONFIG_READ, KAFKA_CLUSTER_CONFIG_INSPECT, KAFKA_CLUSTER_CONFIG_CREATE, KAFKA_CLUSTER_CONFIG_UPDATE, KAFKA_CLUSTER_CONFIG_DELETE } in compartment <compartment> | tenancy

allow service rawfka to use vnics in compartment <compartment>

allow service rawfka to {SUBNET_READ} in compartment <compartment> 

allow service rawfka to use network-security-groups in compartment <compartment>

allow service rawfka to use subnets in compartment <compartment>

# If you're using SASL_SCRAM authentication - 

allow service rawfka to use secrets in compartment id <compartment> where request.operation = 'UpdateSecret'

クラスタの作成

Kafkaクラスタを作成する前に、前提条件リソースを作成する必要があります。

  • ナビゲーション・メニューを開き、「開発者サービス」を選択します。「アプリケーション統合」で、「Apache Kafkaを使用したOCIストリーミング」を選択します。

    Kafkaクラスタ・ページで、「クラスタの作成」を選択します。

    1. クラスタ設定

    • クラスタの名前: クラスタに一意の名前を入力します。
    • コンパートメント: クラスタを作成するコンパートメントを選択します。
    • Apache Kafkaバージョン: 使用するApache Kafkaのバージョンを選択します。
    • タグ付け: (オプション) リソースを作成する権限がある場合、そのリソースにフリーフォーム・タグを適用する権限もあります。定義済タグを適用するには、タグ・ネームスペースを使用する権限を持つ必要があります。タグ付けの詳細は、リソース・タグを参照してください。タグを適用するかどうかがわからない場合は、このオプションをスキップするか、管理者に問い合せてください。タグは後から適用できます。

    2. ブローカ設定

    • クラスタ・タイプ: 作成するクラスタのタイプとして、「スタータ・クラスタ」または「高可用性クラスタ」を選択します。クラスタ内のブローカーの最小数は、選択したタイプによって異なります。スタータ・クラスタはテストまたは開発に使用され、最低でも1つのブローカを持ちます。高可用性クラスタは本番用に使用され、最低でも3つのブローカがあります。
    • ブローカ設定: クラスタで使用するブローカの数と、ブローカごとに必要なOCPUを入力します。これらの値は、クラスタ要件に従ってクラスタのサイズ設定を行うと最適です。ブローカ当たりのメモリーは、指定したブローカ当たりのOCPUの数に基づいて割り当てられます。各OCPUには6 GBが割り当てられます。ブローカに使用されるデフォルトのコンピュート・シェイプは、Armベースのプロセッサです。このシェイプがリージョンで使用可能でない場合は、AMDまたはIntelプロセッサを搭載したシェイプが使用されます。
    • ストレージ: ブローカごとに必要なブロック・ボリューム・ストレージを指定します。ビジネス要件に従ってクラスタ・サイズおよびストレージを計画し、クラスタのブロック・ボリューム・ストレージ・サイズを計算します。

    3. クラスタの構成

    デフォルト構成は、作成するクラスタのタイプに応じて提供されます。デフォルト構成を使用することも、カスタム構成を指定することもできます。カスタム構成を使用する場合は、Kafkaクラスタを作成する前にクラスタ構成を作成することをお薦めします。Kafkaクラスタの作成後も、クラスタ構成ファイルを更新できますが、特定の制限があります。

    4. セキュリティ設定(オプション)

    クラスタの認証メカニズムとしてmTLSを使用する相互TLS認証の証明書を指定します。クラスタの作成後に証明書を指定することもできます。SASL/SCRAM認証を使用するには、この手順をスキップできます。

    5. ネットワーキング

    クラスタ用に作成したVCNおよびサブネットを選択します。指定したサブネットにクラスタ・ブローカが作成されます。

    6. 確認と作成

    「編集」リンクを使用して、指定されたすべての詳細を確認し、更新します(ある場合)。次に、「作成」を選択します。

  • oci kafka cluster createコマンドおよび必須パラメータを使用して、Kafkaクラスタを作成します:

    oci kafka cluster create 
    --access-subnets '[{"subnets":"<subnet-ocid>"}]' 
    --broker-shape '{"nodeCount":<node-count>, "ocpuCount":<ocpu-count>, "storageSizeInGbs":storage-size}'
    --cluster-config-id <config-ID> 
    --cluster-config-version <config-version> 
    --cluster-type <cluster-type> 
    --compartment-id <compartment-ocid> | -c <compartment-name> 
    --coordination-type <coordination-type> 
    --kafka-version <version>
    --client-certification-bundle <CA-cert-bundle-for-mTLS>
    --display-name <cluster-name>
    --freeform-tags <tags-in-json>
    --auth <auth-type>
    --auth-purpose <auth-purpose>
    --cert-bundle <CA-cert-bundle-path-for-ssl>
    --config-file <config-file-path>
    --connection-timeout <connection-timeout-in-seconds>
    --defined-tags <tags-in-json>

    必須オプション

    <サブネット-ocid>
    KafkaクラスタVNICを作成する必要があるサブネットOCIDsのセット。

    サブネットOCIDsは、コマンド・プロンプトでJSON形式で直接指定できます。

    または、サブネット情報を含むJSONファイルを作成し、CLIコマンドでファイルを渡すことができます。たとえば、サブネットの詳細を含むsubnets.jsonファイルを作成し、コマンド内のファイルを--access-subnets file://subnets.jsonとして渡します。
    [
      {
        "subnets": [
          "ocid1.subnet.oc1.<.exampleuniqueID_1>",
          "ocid1.subnet.oc1.<.exampleuniqueID_2>"
        ]
      }
    ] 
    または、サブネット情報を環境エクスポート変数に設定してから、CLIコマンドに渡すことができます。たとえば、エクスポート変数SUBNETSを作成し、コマンド内の変数を--access-subnets "$SUBNETS"として渡します。
    export SUBNETS='[{"subnets":["ocid1.subnet.oc1.<.exampleuniqueID_1>", "ocid1.subnet.oc1.<.exampleuniqueID_2>"]}]' 
    <ブローカーシェイプ>
    JSON形式で、作成するブローカ・ノードの数、ノード当たりのOCPUの数および各ノードの記憶域サイズを指定します。
    <構成ID>
    Kafkaクラスタ構成リソースのOCID。
    <config-version>
    Kafkaクラスタ構成リソースのバージョン。
    <クラスタ・タイプ>
    作成するクラスタのタイプ。DEVELOPMENTまたはPRODUCTIONのいずれかを指定します。
    <compartment-ID> | <compartment-name>
    クラスタを作成する必要があるコンパートメントのOCIDまたは名前。
    <coordination-type>
    Kafkaブローカ調整タイプ。Kafkaのバージョンに応じて、ZOOKEEPERまたはKRAFTを指定します。
    <バージョン>
    Kafkaクラスタの作成に使用するサポートされているバージョン

    CLIコマンドのパラメータおよび値の完全なリストは、CLIコマンド・リファレンスを参照してください。

  • CreateKafkaCluster操作を実行して、クラスタを作成します。

次のステップ

Kafkaクライアント・アプリケーションを使用してKafkaクラスタにアクセスするには、2つのタイプの認証のいずれかを構成する必要があります。

重要

2つのタイプの認証のいずれかを設定しないと、作成したKafkaクラスタにアクセスできません。Kafkaクラスタにアクセスし、データ操作を実行するには、Kafkaクライアントを設定する必要があります。

Kafkaクラスタを作成して認証を構成した後、OCIテナンシでKafkaクライアントを設定し、Kafkaコマンドを実行してトピックを作成し、データを生成および消費できます。