E-MapReduce Kafka は、E-MapReduce 3.12.0 以降で SSL 機能をサポートしています。

クラスターの作成

クラスターの作成方法については、「 クラスターの作成」をご参照ください。

SSL サービスの有効化

デフォルトでは、 Kafka クラスターの SSL 機能は有効になっていません。 Kafka サービスの設定ページで有効化できます。SSL サービスの有効化

前の図に示すように、 kafka.ssl.enabletrue に変更し、コンポーネントを再起動します。

クライアントから Kafka へのアクセス

SSL 経由で Kafka にアクセスする場合、 security.protocoltruststorekeystore を設定します。 例として、標準モードのクラスターを取り上げます。 Kafka クラスターでジョブを実行するには、クラスターを次のように設定します。
security.protocol=SSL
ssl.truststore.location=/etc/ecm/kafka-conf/truststore
ssl.truststore.password=${password}
ssl.keystore.location=/etc/ecm/kafka-conf/keystore
ssl.keystore.password=${password}

Kafka クラスター以外の環境でジョブを実行している場合は、Kafka クラスター内の任意のノードの /etc/ecm/kafka-conf/ ディレクトリにある truststore と keystore のファイルを実行環境にコピーし、それに応じて設定を追加します。

例として、Kafka の producer-consumer パターンのプログラムを取り上げます。
  1. 設定ファイル ssl.properties を作成し、設定内容を追加します。
    security.protocol=SSL
     ssl.truststore.location=/etc/ecm/kafka-conf/truststore
     ssl.truststore.password=${password}
     ssl.keystore.location=/etc/ecm/kafka-conf/keystore
     ssl.keystore.password=${password}
  2. トピックを作成します。
    kafka-topics.sh --zookeeper emr-header-1:2181/kafka-1.0.1 --replication-factor 2 --
    partitions 100 --topic test --create
  3. SSL 設定ファイルを使用してデータを生成します。
    kafka-producer-perf-test.sh --topic test --num-records 123456 --throughput 10000 --record-size 1024 --producer-props bootstrap.servers=emr-worker-1:9092 --producer.config ssl.properties
  4. SSL 構成ファイルを使用してデータを使用します。
    kafka-consumer-perf-test.sh --broker-list emr-worker-1:9092 --messages 100000000 --topic test --consumer.config ssl.properties