Confluent Cloud のサンプル

Confluent Cloud は、Kafka をベースとして作成された、回復性が高くてスケーラブルなストリーミングデータサービスです。完全マネージドサービスとして提供されています。Web インターフェイスとローカルコマンドラインインターフェイスを備えており、これらを使用して、クラスターリソース、Kafka トピック、Schema Registry、およびその他のサービスを管理できます。

このページでは、Confluent Cloud でのソリューションの構築と検証に役立つ、いくつかのリソースを説明します。

サンプルの実行コスト

注意

Confluent Cloud のすべてのサンプルでは、課金される可能性のある実際の Confluent Cloud リソースを使用しています。サンプルで、新しい Confluent Cloud 環境、Kafka クラスター、トピック、ACL、サービスアカウントに加えて、コネクターや ksqlDB アプリケーションのように時間で課金されるリソースを作成する場合があります。想定外の課金を避けるために、慎重に リソースのコストを確認 してから開始してください。Confluent Cloud のサンプルの実行を終了したら、サービスへの時間単位の課金を回避するためにすべての Confluent Cloud リソースを破棄し、リソースが削除されたことを確認します。

Confluent Cloud のプロモーションコード

Confluent Cloud Console の Billing & payment セクションでプロモーションコード C50INTEG を入力すると、Confluent Cloud で $50 相当を無料で使用できます(詳細)。このプロモーションコードで、この Confluent Cloud サンプルの 1 日分の実行費用が補填されます。これを超えてサービスを利用すると、このサンプルで作成した Confluent Cloud リソースを破棄するまで、時間単位で課金されることがあります。

サンプル

Confluent Cloud クイックスタート

Confluent Cloud クイックスタート は、Confluent Platform クイックスタート の自動化バージョンで、Confluent Cloud 内で実行されます。

../../../../_images/quickstart.png

ccloud-stack ユーティリティ

Confluent Cloud 向け ccloud-stack ユーティリティ により、フルマネージド型サービスのスタックが Confluent Cloud 内に作成されます。1 つのコマンドで実行されるため、フルマネージド型コンポーネントを Confluent Cloud にすばやく作成できます。その後、他のデモの学習や作成のために、そのコンポーネントを使用できます。これは、本稼働環境では使用しないでください。このスクリプトは、Confluent CLI を使用して、以下のことを Confluent Cloud で動的に行います。

  • 新しい環境を作成する。
  • 新しいサービスアカウントを作成する。
  • 新しい Kafka クラスターとそれに関連する資格情報を作成する。
  • Confluent Cloud Schema Registry とそれに関連する資格情報を有効にする。
  • 新しい ksqlDB アプリケーションとそれに関連する資格情報を作成する。
  • ワイルドカードを使用するサービスアカウント用 ACL を作成する。
  • 上記のすべての接続情報を含むローカル構成ファイルを生成する(他のデモや自動化に便利)。
../../../../_images/ccloud-stack-resources.png

チュートリアル

https://kafka-tutorials.confluent.io には 50 以上のチュートリアルがあります。このサイトには、Apache Kafka®、Kafka Streams、および ksqlDB を使用した実際のユースケースのデモ用に完全なコード例が含まれています。チュートリアルは、ローカルでも Confluent Cloud を使用しても実行できます。

クライアントコードのサンプル

Confluent Cloud に対して書き込むプロデューサーと、読み取るコンシューマー、および Confluent Schema Registry で Avro を使用するプロデューサーとコンシューマーのサンプルコードが必要な場合は、Apache Kafka® のサンプルコード を参照してください。これには、さまざまなプログラミング言語で書かれたクライアントのサンプルが用意されています。

../../../../_images/clients-all1.png

Confluent CLI

チュートリアル: Confluent CLI は完全にスクリプト化されたサンプルで、これを使用すると、Confluent CLI を使用して Confluent Cloud と対話する方法がわかります。次のワークフローに従って、わかりやすく説明されています。

  • 新しい環境を作成し、デフォルトとして指定する。
  • 新しい Kafka クラスターを作成し、デフォルトとして指定する。
  • ユーザーのキー/シークレットのペアを作成し、デフォルトとして指定する。
  • Confluent CLI で生成し、消費する。
  • サービスアカウントのキー/シークレットのペアを作成する。
  • Java プロデューサーを実行する: ACL 構成の前後。
  • Java プロデューサーを実行する: プレフィックス ACL を試す。
  • アクセス許可を使用して Connect と kafka-connect-datagen コネクターを実行する。
  • Java コンシューマーを実行する: ワイルドカード ACL を試す。
  • API キー、サービスアカウント、Kafka のトピック、Kafka クラスター、環境、ログファイルを削除する。
../../../../_images/confluent-cli.png

Confluent Cloud に接続する Apache Kafka® クライアント用の Observability

Confluent Cloud に接続する Apache Kafka クライアント用の Observability のサンプル では、さまざまな障害のシナリオやダッシュボードでモニタリングすべきクライアントのメトリクスについて説明します。クライアントは Confluent Cloud に対して実行されています。この例では、Confluent Cloud クラスター、Java のプロデューサーとコンシューマー、Prometheus、Grafana、およびさまざまなエクスポーターを作成します。同じ原則を、他の時系列データベースや視覚化テクノロジー、および Java 以外のクライアントにも適用できます。それらのクライアントでも通常、同様のメトリクスが用意されています。

../../../../_images/monitoring-icon.png

クラウド ETL

クラウド ETL のサンプル では、Confluent Cloud 上のすべてのフルマネージド型サービスを活用するクラウド ETL ソリューションを紹介しています。サンプルでは、Confluent CLI を使用して、AWS Kinesis ストリームから Confluent Cloud へのデータの読み取りを行うソースコネクターを作成し、次に Confluent Cloud ksqlDB アプリケーションがそのデータを処理します。そして、使用するプロバイダー(GCP GCS、AWS S3、または Azure Blob)のクラウドストレージにシンクコネクターが出力データを書き込みます。

../../../../_images/topology.png

オンプレミス Kafka からクラウドへの移行

ハイブリッドクラウドのサンプル とプレイブックでは、Kafka のハイブリッドデプロイを紹介しています。一方のクラスターは、ローカルで実行されるセルフマネージド型クラスターで、他方は Confluent Cloud クラスターです。オンプレミスのデータが Replicator によって Confluent Cloud にコピーされるため、ストリーム処理をクラウド内で行うことができます。

../../../../_images/cp-demo-overview-with-ccloud.jpg

クラウドのマイクロサービス

マイクロサービスクラウドのサンプル では、Confluent Cloud をターゲットとした受注管理ワークフローを紹介しています。マイクロサービスは、Docker 上でローカルにデプロイされ、Confluent Cloud の Kafka クラスター、ksqlDB、Confluent Schema Registry を使用するように構成されます。Kafka Connect も Docker 上でローカルにデプロイされ、Confluent Cloud に対して生成する SQL Source Connector と、Confluent Cloud から消費する Elasticsearch Sink Connector を実行します。

../../../../_images/microservices-demo.png

独自のクラウドデモの作成

ccloud-stack ユーティリティ

Confluent Cloud 向け ccloud-stack ユーティリティ により、フルマネージド型サービスのスタックが Confluent Cloud 内に作成されます。1 つのコマンドで実行されるため、フルマネージド型コンポーネントを Confluent Cloud にすばやく作成できます。その後、他のデモの学習や作成のために、そのコンポーネントを使用できます。これは、本稼働環境では使用しないでください。このスクリプトは、Confluent CLI を使用して、以下のことを Confluent Cloud で動的に行います。

  • 新しい環境を作成する。
  • 新しいサービスアカウントを作成する。
  • 新しい Kafka クラスターとそれに関連する資格情報を作成する。
  • Confluent Cloud Schema Registry とそれに関連する資格情報を有効にする。
  • 新しい ksqlDB アプリケーションとそれに関連する資格情報を作成する。
  • ワイルドカードを使用するサービスアカウント用 ACL を作成する。
  • 上記のすべての接続情報を含むローカル構成ファイルを生成する(他のデモや自動化に便利)。
../../../../_images/ccloud-stack-resources.png

Confluent Cloud に接続するための自動生成による構成

構成生成スクリプト は、構成ファイルを読み取り、すべての Confluent Platform コンポーネントおよびクライアント用のデルタ構成を自動生成します。こうしたコンポーネントごとの構成を Confluent Platform コンポーネントおよびクライアントに使用して、Confluent Cloud に接続します。

  • Confluent Platform コンポーネント:
    • Schema Registry
    • ksqlDB Data Generator
    • ksqlDB
    • Confluent Replicator
    • Confluent Control Center
    • Kafka Connect
    • Kafka コネクター
    • Kafka コマンドラインツール
  • Kafka クライアント:
    • Java(プロデューサー/コンシューマー)
    • Java(ストリーム)
    • Python
    • .NET
    • Go
    • Node.js
    • C++
  • OS:
    • ENV ファイル

Confluent Cloud に対する自己管理型コンポーネント

この Docker ベースの環境 を Confluent Cloud で使用できます。この docker-compose.yml により、Confluent Platform のすべてのサービス(Kafka ブローカーを除く)が開始され、localhost のコンテナで実行されるとともに、Confluent Cloud に接続するように自動的に構成されます。これを基盤として使用すると、あらゆるコネクターまたはアプリケーションを追加できます。

../../../../_images/cp-all-in-one-cloud.png

全体の組み立て

これらのユーティリティをつないで、オンプレミスと Confluent Cloud にわたる独自のハイブリッドサンプルを作成できます。このサンプルでは、いくつかの自己管理型コンポーネントがオンプレミスで、フルマネージド型サービスが Confluent Cloud で動作します。

たとえば、まだ Confluent Cloud に用意されていないコネクターを実行する簡単な方法を探しているとします。この場合は、自己管理型 Connect ワーカーおよびコネクターをオンプレミスで実行し、Confluent Cloud クラスターに接続することができます。または、Confluent Cloud で Kafka デモを作成し、それに対して REST Proxy クライアントまたは Confluent Control Center を実行することもできます。

Confluent Cloud のフルマネージド型サービスと localhost の自己管理型コンポーネントを組み合わせると、少ない手順で簡単に、あらゆるサンプルを作成できます。

  1. フルマネージド型サービスの ccloud-stack を Confluent Cloud に作成します。出力の 1 つは、Confluent Cloud への必須接続値のキーと値のペアを含むローカル構成ファイルです(この手順は、Confluent Cloud リソースを既にプロビジョニングしている場合はスキップできます)。

    ./ccloud_stack_create.sh
    
  2. 前の手順で作成したローカル構成ファイルを入力として渡し、構成生成スクリプト を実行します。このスクリプトで、すべての Confluent Platform コンポーネントおよびクライアントのデルタ構成ファイルが生成されます。これには、ブートストラップサーバー、エンドポイント、Confluent Cloud への接続に必要な資格情報が含まれます。

    # stack-configs/java-service-account-<SERVICE_ACCOUNT_ID>.config is generated by step above
    ./ccloud-generate-cp-configs.sh stack-configs/java-service-account-<SERVICE_ACCOUNT_ID>.config
    

    このステップで生成されるデルタ構成ファイルのうちの 1 つは、環境変数で使用されます。これは、認証情報が入力された このサンプル と同様です。

    export BOOTSTRAP_SERVERS="<CCLOUD_BOOTSTRAP_SERVER>"
    export SASL_JAAS_CONFIG="org.apache.kafka.common.security.plain.PlainLoginModule required username='<CCLOUD_API_KEY>' password='<CCLOUD_API_SECRET>';"
    export SASL_JAAS_CONFIG_PROPERTY_FORMAT="org.apache.kafka.common.security.plain.PlainLoginModule required username='<CCLOUD_API_KEY>' password='<CCLOUD_API_SECRET>';"
    export REPLICATOR_SASL_JAAS_CONFIG="org.apache.kafka.common.security.plain.PlainLoginModule required username='<CCLOUD_API_KEY>' password='<CCLOUD_API_SECRET>';"
    export BASIC_AUTH_CREDENTIALS_SOURCE="USER_INFO"
    export SCHEMA_REGISTRY_BASIC_AUTH_USER_INFO="<SCHEMA_REGISTRY_API_KEY>:<SCHEMA_REGISTRY_API_SECRET>"
    export SCHEMA_REGISTRY_URL="https://<SCHEMA_REGISTRY_ENDPOINT>"
    export CLOUD_KEY="<CCLOUD_API_KEY>"
    export CLOUD_SECRET="<CCLOUD_API_SECRET>"
    export KSQLDB_ENDPOINT=""
    export KSQLDB_BASIC_AUTH_USER_INFO=""
    
  3. 上記のデルタ ENV ファイルをソースとしてシェル環境に変数をエクスポートします。

    # delta_configs/env.delta is generated by step above
    source delta_configs/env.delta
    
  4. 必要な Confluent Platform サービスを、この Docker ベースのサンプル を使用してローカルで実行します。Docker Compose ファイルにより、Confluent Platform サービスが localhost で開始され、環境変数の代入によって、Confluent Cloud に対する接続値がパラメーターに入力され、Confluent Cloud に接続できるようになります。サービスを 1 つだけ実行する場合は、そのサービスだけを開始できます。

    docker-compose up -d <service>
    

    Confluent Cloud に接続する自己管理型コネクターをローカルで実行する場合は、最初に、「コネクターまたはソフトウェアの追加」の説明に従って、必要なコネクターをベース Kafka Connect Docker イメージに追加し、次に、その Docker イメージを Docker Compose ファイルで代入します。

  5. Confluent CLI を使って Confluent Cloud と対話する方法のサンプルについては、bash 関数のライブラリ を参照してください。

Confluent Cloud のすべてのサンプルでは、実際の Confluent Cloud リソースを使用しています。Confluent Cloud のサンプルの実行を終了したら、予定外の課金を回避するために、すべての Confluent Cloud リソースが破棄されていることを直接確認してください。

その他のリソース