Amazon で LinkedInの Cruise Control for Apache Kafka を使用する MSK - Amazon Managed Streaming for Apache Kafka

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon で LinkedInの Cruise Control for Apache Kafka を使用する MSK

LinkedInの Cruise Control を使用して、Amazon MSKクラスターの再調整、異常の検出と修正、クラスターの状態と状態のモニタリングを行うことができます。

Cruise Control をダウンロードして構築するには
  1. Amazon MSKクラスターと同じ Amazon に Amazon EC2インスタンスVPCを作成します。

  2. 前のステップで作成した Amazon EC2インスタンスに Prometheus をインストールします。プライベート IP とポートに注意してください。デフォルトのポート番号は 9090 です。クラスターのメトリクスを集約するように Prometheus を構成する方法については、「Prometheus でMSKクラスターをモニタリングする」を参照してください。

  3. Amazon EC2インスタンスで Cruise Control をダウンロードします。(または、必要に応じて、Cruise Control に別の Amazon EC2インスタンスを使用できます。) Apache Kafka バージョン 2.4.* を搭載したクラスターの場合は、最新の 2.4.* Cruise Control リリースを使用してください。クラスターに 2.4.* より古いバージョンの Apache Kafka がある場合は、最新の 2.0.* Cruise Control リリースを使用してください。

  4. Cruise Control ファイルを解凍してから、解凍したフォルダに移動します。

  5. 次のコマンドを実行して git をインストールします。

    sudo yum -y install git
  6. 次のコマンドを実行して、ローカルリポジトリを初期化します。置換 Your-Cruise-Control-Folder 現在のフォルダ (Cruise Control ダウンロードを解凍したときに取得したフォルダ) の名前。

    git init && git add . && git commit -m "Init local repo." && git tag -a Your-Cruise-Control-Folder -m "Init local version."
  7. 次のコマンドを実行して、ソースコードを構築します。

    ./gradlew jar copyDependantLibs
Cruise Control を設定して実行するには
  1. config/cruisecontrol.properties ファイルを次のように更新します。ブートストラップサーバーとブートストラップブローカー文字列の例をクラスターの値に置き換えます。クラスターのこれらの文字列を取得するには、コンソールでクラスターの詳細を確認できます。または、 GetBootstrapBrokers および DescribeClusterAPIオペレーションまたはそのCLI同等物を使用できます。

    # If using TLS encryption, use 9094; use 9092 if using plaintext bootstrap.servers=b-1.test-cluster.2skv42.c1.kafka.us-east-1.amazonaws.com:9094,b-2.test-cluster.2skv42.c1.kafka.us-east-1.amazonaws.com:9094,b-3.test-cluster.2skv42.c1.kafka.us-east-1.amazonaws.com:9094 # SSL properties, needed if cluster is using TLS encryption security.protocol=SSL ssl.truststore.location=/home/ec2-user/kafka.client.truststore.jks # Use the Prometheus Metric Sampler metric.sampler.class=com.linkedin.kafka.cruisecontrol.monitor.sampling.prometheus.PrometheusMetricSampler # Prometheus Metric Sampler specific configuration prometheus.server.endpoint=1.2.3.4:9090 # Replace with your Prometheus IP and port # Change the capacity config file and specify its path; details below capacity.config.file=config/capacityCores.json
  2. config/capacityCores.json ファイルを編集して、適切なディスクサイズとCPUコア、およびネットワークの入出力制限を指定します。DescribeCluster API オペレーション (またはCLI同等のもの) を使用して、ディスクサイズを取得できます。CPU コアとネットワークの入出力制限については、「Amazon EC2 インスタンスタイプ」を参照してください。

    { "brokerCapacities": [ { "brokerId": "-1", "capacity": { "DISK": "10000", "CPU": { "num.cores": "2" }, "NW_IN": "5000000", "NW_OUT": "5000000" }, "doc": "This is the default capacity. Capacity unit used for disk is in MB, cpu is in number of cores, network throughput is in KB." } ] }
  3. オプションで、Cruise Control UI をインストールできます。ダウンロードするには、Cruise Control Frontend の設定に移動します。

  4. 次のコマンドを実行して、Cruise Control をスタートします。screentmux などのツールを使用して、長時間実行されるセッションを開いたままにすることを検討してください。

    <path-to-your-kafka-installation>/bin/kafka-cruise-control-start.sh config/cruisecontrol.properties 9091
  5. Cruise Control APIsまたは UI を使用して、Cruise Control にクラスターロードデータがあり、再調整の提案を行っていることを確認します。メトリクスの有効なウィンドウを取得するには、数分かかる場合があります。

Cruise Control for Amazon の自動デプロイテンプレートを使用する MSK

このCloudFormation テンプレート を使用して、Cruise Control と Prometheus を簡単にデプロイし、Amazon MSKクラスターのパフォーマンスをより深く理解し、リソース使用率を最適化することもできます。

主な特徴:
  • Cruise Control と Prometheus が事前設定された Amazon EC2インスタンスの自動プロビジョニング。

  • Amazon MSK プロビジョニングされたクラスターのサポート。

  • PlainText および IAMによる柔軟な認証。

  • Cruise Control の動物園キーパー依存関係はありません。

  • Amazon S3 バケットに保存されている独自の設定ファイルを提供することで、Prometheus ターゲット、Cruise Control 容量設定、およびその他の設定を簡単にカスタマイズできます。