Managed Service for Apache Kafka クラスタは、トピックに整理されたメッセージ ストリームを保存して処理するための環境を提供します。
クラスタを作成するには、 Google Cloud コンソール、Google Cloud CLI、 クライアント ライブラリ、または Managed Kafka API を使用します。オープンソースの Apache Kafka API を使用してクラスタを作成することはできません。
始める前に
次のことを理解していることを確認してください。
クラスタの作成に必要なロールと権限
クラスタの作成に必要な権限を取得するには、プロジェクトに対するManaged Kafka クラスタ編集者 (roles/managedkafka.clusterEditor)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。
この事前定義ロールには クラスタの作成に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
クラスタを作成するには、次の権限が必要です。
-
クラスタを作成する:
managedkafka.clusters.create
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
Managed Kafka クラスタ編集者ロールでは、Managed Service for Apache Kafka クラスタでトピックとコンシューマ グループを作成、削除、変更することはできません。 また、クラスタ内でメッセージを公開または使用するためのデータプレーン アクセスも許可されません。このロールの詳細については、 Managed Service for Apache Kafka の事前定義ロールをご覧ください。
Managed Service for Apache Kafka クラスタのプロパティ
Managed Service for Apache Kafka クラスタを作成または更新する場合は、次のプロパティを指定する必要があります。
クラスタ名
作成する Managed Service for Apache Kafka クラスタの名前または ID。クラスタの命名方法のガイドラインについては、 Managed Service for Apache Kafka リソースの命名ガイドラインをご覧ください。 クラスタ名は変更できません。
場所
クラスタを作成するロケーション。ロケーションには、サポートされているリージョンのいずれかを指定します。 Google Cloud クラスタのロケーションは後から変更できません。使用可能なロケーションのリストについては、 Managed Service for Apache Kafka のロケーションをご覧ください。
容量構成
容量構成では、Kafka セットアップの vCPU 数とメモリ量を構成する必要があります。クラスタの容量を構成する方法については、 Kafka クラスタのサイズを計画するをご覧ください。
容量構成のプロパティは次のとおりです。
vCPUs: クラスタ内の vCPU の数。クラスタごとに少なくとも 3 つの vCPU が必要です。
メモリ: クラスタに割り当てられるメモリ量。 vCPU あたり 1 GiB ~ 8 GiB の範囲でプロビジョニングする必要があります。
たとえば、6 個の vCPU を持つクラスタを作成する場合、クラスタに割り当てられる最小メモリは 6 GiB(vCPU あたり 1 GiB)、最大メモリは 48 GiB(vCPU あたり 8 GiB)です。
クラスタの作成後にメモリと vCPU の数を変更する方法については、 クラスタのサイズを更新するをご覧ください。
ネットワークの構成
ネットワーク構成は、クラスタがアクセスできる VPC サブネットのリストです。メッセージを生成または使用するには、クライアントがこれらのサブネットのいずれかに到達できる必要があります。
ネットワーク構成に関するガイドラインは次のとおりです。
クラスタには少なくとも 1 つのサブネットが必要です。最大 10 個です。
任意のクラスタに対して、ネットワークごとに 1 つのサブネットのみが許可されます。
各サブネットは、クラスタと同じリージョンに存在する必要があります。プロジェクトとネットワークは異なる場合があります。
ブローカーとブートストラップ サーバーの IP アドレスは、各サブネットに自動的に割り当てられます。また、これらの IP アドレスの DNS エントリが、対応する VPC ネットワーク内に作成されます。
別のプロジェクトからサブネットを追加する場合は、クラスタに関連付けられている Google マネージド サービス アカウントに権限を付与する必要があります。詳細については、 プロジェクト間でクラスタを接続するをご覧ください。
クラスタを作成したら、 サブネットのリストを更新できます。ネットワーキングの詳細については、 Managed Service for Apache Kafka のネットワーキングを構成するをご覧ください。
ラベル
ラベルは、整理と識別に役立つ Key-Value ペアです。
ラベルを使用すると、環境に基づいてリソースを分類できます。例:
"env:production"、"owner:data-engineering"。
ラベルに基づいてリソースをフィルタして検索できます。たとえば、部門ごとに複数の Managed Service for Apache Kafka クラスタがあるとします。ラベル "department:marketing" を使用してクラスタを構成して検索すると、関連するクラスタをすばやく見つけることができます。
再分散の構成
この設定では、サービスがブローカー間でパーティション レプリカを自動的に再分散するかどうかを決定します。
使用可能なモードは次のとおりです。
スケールアップ時に自動再分散: このオプションを有効にすると、 クラスタをスケールアップしたときに、 サービスがレプリカの再分散を自動的にトリガーします。このモードは、負荷分散を維持するのに役立ちますが、再分散オペレーション中にパフォーマンスに一時的に影響する可能性があります。
再分散なし: このオプションを有効にすると、サービスは レプリカを自動的に再分散しません。
暗号化
Managed Service for Apache Kafka は、 Google-owned and Google-managed encryption keys (デフォルト)または 顧客管理の暗号鍵(CMEK)を使用してメッセージを暗号化できます。 すべてのメッセージは、保存時も転送時も暗号化されます。クラスタの暗号化タイプは変更できません。
Google-owned and Google-managed encryption keys はデフォルトで使用されます。これらの鍵は インフラストラクチャ内で完全に作成、管理、保存されます Google Cloud 。
CMEK は、Cloud Key Management Service を使用して管理する暗号鍵です。この 機能を使用すると、サポートされている Google Cloud サービス内で保存データの暗号化に使用する 鍵をより細かく制御できます。CMEK を使用すると、Cloud Key Management Service に関連する追加費用が発生します。CMEK を使用する場合は、キーリングが、使用するリソースと同じロケーションにある必要があります。詳細については、 メッセージ暗号化を構成するをご覧ください。
mTLS の構成
必要に応じて、クライアント証明書を使用する代替認証方法として mTLS を構成できます。構成の内容は次のとおりです。
CA プール: クラスタがクライアント認証を信頼する 1 ~ 10 個の Certificate Authority Service(CAS) プールのリスト。
SSL プリンシパル マッピング ルール: Kafka ACL で使用する長い証明書プリンシパル名を簡略化するための、省略可能ですが推奨される
ssl.principal.mapping.rulesブローカー プロパティ。
mTLS の詳細については、mTLS 認証を構成するをご覧ください。
クラスタの作成
クラスタを作成する前に、 クラスタ プロパティのドキュメントを確認してください。
通常、クラスタの作成には 20 ~ 30 分かかります。
クラスタを作成する手順は次のとおりです。
コンソール
コンソールで、[クラスタ] ページに移動します。 Google Cloud
[作成] を選択します。
[Kafka クラスタを作成] ページが開きます。
For the [Cluster name], enter a string.
クラスタの命名方法の詳細については、 Managed Service for Apache Kafka リソースの命名ガイドラインをご覧ください。
For [Location] に、サポートされているロケーションを入力します。
サポートされているロケーションの詳細については、 サポートされている Managed Service for Apache Kafka のロケーションをご覧ください。
[**容量構成**] に、[**メモリ**] と [**vCPU**] の値を入力します。
Managed Service for Apache Kafka クラスタのサイズ設定の詳細については、 Kafka クラスタのサイズを計画するをご覧ください。
[ネットワーク構成] に、次の詳細を入力します。
- プロジェクト: サブネットワークが配置されているプロジェクト。サブネットはクラスタと同じリージョンに配置する必要がありますが、プロジェクトは異なる場合があります。
- ネットワーク: サブネットが接続されているネットワーク。
- サブネットワーク: サブネットの名前。
- サブネット URI パス: このフィールドは自動的に入力されます。または、ここにサブネット パスを入力することもできます。サブネットの名前は、
形式にする必要があります:
projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_ID。 - [完了] をクリックします。
省略可: [接続されたサブネットを追加] をクリックして、サブネットを追加します。
サブネットは最大 10 個まで追加できます。
省略可: 顧客管理の暗号鍵(CMEK)を設定します。
[暗号化] で [Cloud KMS 鍵] を選択します。
[**キーのタイプ**] で [**Cloud KMS**] を選択します。
[顧客管理の鍵を選択] で、CMEK を選択または入力します。
このオプションが表示されない場合は、プロジェクトで Cloud KMS API が有効になっていることを確認してください。
詳細については、 メッセージ暗号化を構成するをご覧ください。
[作成] をクリックします。
gcloud
-
コンソールで Cloud Shell をアクティブにします。 Google Cloud
コンソールの下部にある Google Cloud Cloud Shell セッションが開始し、コマンドライン プロンプトが表示されます。Cloud Shell はシェル環境です 。Google Cloud CLI がすでにインストールされており、現在のプロジェクトの値もすでに設定されています 。セッションが初期化されるまで数秒かかることがあります。
gcloud managed-kafka clusters createコマンドを実行します。gcloud managed-kafka clusters create CLUSTER_ID \ --location=LOCATION \ --cpu=CPU \ --memory=MEMORY \ --subnets=SUBNETS \ --auto-rebalance \ --encryption-key=ENCRYPTION_KEY \ --async \ --labels=LABELS次のように置き換えます。
CLUSTER_ID: クラスタの ID または名前。
クラスタの命名方法の詳細については、 Managed Service for Apache Kafka リソースの命名ガイドラインをご覧ください。
LOCATION: クラスタのロケーション。
サポートされているロケーションの詳細については、 Managed Service for Apache Kafka のロケーションをご覧ください。
CPU: クラスタの vCPU 数。
Managed Service for Apache Kafka クラスタのサイズ設定の詳細については、 Kafka クラスタのサイズを計画するをご覧ください。
MEMORY:クラスタのメモリ量。 「MB」、「MiB」、「GB」、「GiB」、「TB」、「TiB」の単位を使用します。例: 「10GiB」。
SUBNETS:接続するサブネットのリスト。 複数のサブネット値を区切るにはカンマを使用します。
サブネットの形式は
projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_IDです。auto-rebalance: クラスタ内の CPU 数が変更されたときに、ブローカー間でトピック パーティションの自動再分散を有効にします。これはデフォルトで有効になっています。ENCRYPTION_KEY: クラスタに使用する顧客管理の 暗号鍵の ID。
形式は
projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/CRYPTO_KEYです。--async: オペレーションの完了を待たずに、作成リクエストを送信してすぐにレスポンスを返します。--asyncフラグを使用すると、クラスタの作成がバックグラウンドで行われている間に、他のタスクを続行できます。このフラグを使用しない場合、レスポンスを返す前にオペレーションが完了するまで待機します。他のタスクを続行するには、クラスタが完全に更新されるまで待つ必要があります。LABELS: クラスタに関連付けるラベル。
ラベルの形式の詳細については、 ラベルをご覧ください。
次のようなレスポンスが返されます。
Create request issued for: [CLUSTER_ID] Check operation [projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID] for status.OPERATION_ID を保存して
progressを追跡します。
REST
リクエストのデータを使用する前に、 次のように置き換えます。
-
PROJECT_ID: 実際の Google Cloud プロジェクト ID -
LOCATION: クラスタのロケーション -
CLUSTER_ID: クラスタの ID -
CPU_COUNT: クラスタの vCPU 数 -
MEMORY: クラスタのメモリ量(バイト単位)。例:3221225472。 -
SUBNET_ID: 接続するサブネットのサブネット ID。例:default。
HTTP メソッドと URL:
POST https://managedkafka.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/clusters?clusterId=CLUSTER_ID
リクエストの本文(JSON):
{
"capacityConfig": {
"vcpuCount": CPU_COUNT,
"memoryBytes": MEMORY
},
"gcpConfig": {
"accessConfig": {
"networkConfigs": [
{
"subnet": "projects/PROJECT_ID/regions/LOCATION/subnetworks/SUBNET_ID"
}
]
}
}
}
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{
"name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.managedkafka.v1.OperationMetadata",
"createTime": "CREATE_TIME",
"target": "projects/PROJECT_ID/locations/LOCATION/clusters/CLUSTER_ID",
"verb": "create",
"requestedCancellation": false,
"apiVersion": "v1"
},
"done": false
}
Terraform
Terraform リソースを使用して、 クラスタを作成できます。
Terraform 構成を適用または削除する方法については、 基本的な Terraform コマンドをご覧ください。
Go
このサンプルを試す前に、 クライアント ライブラリをインストールするにある Go の設定手順を行ってください。詳細については、 Managed Service for Apache Kafka Go API リファレンス ドキュメントをご覧ください。
Managed Service for Apache Kafka への認証を行うには、アプリケーションのデフォルト認証情報(ADC)を設定します。 詳細については、 ローカル開発環境の ADC の設定をご覧ください。
Java
このサンプルを試す前に、 クライアント ライブラリをインストールするにある Java の設定手順を行ってください。詳細については、 Managed Service for Apache Kafka Java API リファレンス ドキュメントをご覧ください。
Managed Service for Apache Kafka への認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、 ローカル開発環境の ADC の設定をご覧ください。
Python
このサンプルを試す前に、 クライアント ライブラリをインストールするにある Python の設定手順を行ってください。詳細については、 Managed Service for Apache Kafka Python API リファレンス ドキュメントをご覧ください。
Managed Service for Apache Kafka への認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、 ローカル開発環境の ADC の設定をご覧ください。
クラスタ作成オペレーションをモニタリングする
次のコマンドを実行できるのは、クラスタの作成に gcloud CLI を実行した場合のみです。
通常、クラスタの作成には 20 ~ 30 分かかります。クラスタ作成の進行状況を追跡するために、
gcloud managed-kafka clusters createコマンドは長時間実行オペレーション(LRO)を使用します。このオペレーションは、次のコマンドを使用してモニタリングできます。gcloud managed-kafka operations describe OPERATION_ID \ --location=LOCATION次のように置き換えます。
OPERATION_IDを前のセクションのオペレーション ID の値に置き換えます。LOCATIONを前のセクションのロケーションの値に置き換えます。
トラブルシューティング
クラスタの作成に関連するエラーのトラブルシューティング方法については、 以下を ご覧ください。Kafka クラスタの作成エラー