本記事は、Kafka/Confluent Platformの公式動作と安定概念に基づき、CCAAKの出題傾向に合わせて運用要点を凝縮しています。
配点は公式に詳細非公開ですが、実務比重の高い領域(設計・運用・セキュリティ・監視)で失点しない準備を重視します。
CCAAKは選択式中心で、Kafka/Confluent Platformの管理・運用に必要な設計判断、セキュリティ設定、監視・トラブルシュートを横断的に問います。公式シラバスは変更される可能性があるため、常にConfluentの認定ページとdocs.confluent.ioを基準に用語と機能差分を確認してください。
配点の詳細は公表されていません。実務観点では、クラスタ設計(レプリケーション、ISR、ラックアウェアネス)、セキュリティ(TLS/SASL、ACL、RBAC)、運用(ローリングアップグレード、リバランス、監視指標、スロットリング)、データ移行(MirrorMaker 2 / Cluster Linking)の重みが高く、周辺ツール(Control Center、Cruise Control、CLI群、JMX/監視)の理解が差になります。
Kafkaの可用性設計は、トピックのreplication.factor、min.insync.replicas、プロデューサのacksの組み合わせで耐障害性を定義します。実務・試験ともに、replication.factor=3、min.insync.replicas=2、acks=allが基準解として頻出です。ISRが縮むとmin.insync.replicasに満たず、プロデュース失敗(NOT_ENOUGH_REPLICAS)を引き起こすことがあります。
ラックアウェアネス(broker.rack)を設定し、トピックの割当で複数ラックにレプリカを分散させると、ラック障害時のRPO/RTOを改善できます。コントローラはリーダー選出とメタデータ管理を司ります。運用ではコントローラの安定性(メタデータ伝播遅延やZooKeeper/KRaftの健全性)も監視対象です。ZookeeperベースとKRaft(自己管理メタデータ)は共存期があるため、両方の言及に対応できると安全です。
Kafkaクラスタの論理構成とレプリケーション
トピック設計は、保持戦略(retention.ms / retention.bytes / cleanup.policy)、セグメントサイズ(segment.bytes / segment.ms)、コンパクション閾値(min.cleanable.dirty.ratio)などのトレードオフを理解します。ログコンパクションは最新キー値を残しつつ領域を削減しますが、読み出しパターンとレイテンシへの影響を考慮します。
クォータ(producer/consumer/client-id/user単位)はノイジーネイバー対策の基本です。スループット(bytes)、リクエストレート、接続数に対する制御を適用し、スロットリングが発生した場合の監視イベントと相関させます。
代表的なトピック作成とクォータ設定(Apache Kafka CLI)
kafka-topics.sh --bootstrap-server broker:9092 \
--create --topic orders \
--partitions 12 --replication-factor 3 \
--config min.insync.replicas=2 \
--config cleanup.policy=compact,delete \
--config retention.ms=259200000 \
--config segment.bytes=1073741824
# クォータ: クライアントID単位で生産スループットを制限(1MB/s)
kafka-configs.sh --bootstrap-server broker:9092 \
--alter --add-config 'producer_byte_rate=1048576' \
--entity-type clients --entity-name app-producer
# ユーザー単位(SASL/SCRAM等のユーザー名)で消費スループットを制限(2MB/s)
kafka-configs.sh --bootstrap-server broker:9092 \
--alter --add-config 'consumer_byte_rate=2097152' \
--entity-type users --entity-name aliceKafkaの通信はTLSで暗号化し、SASLまたはmTLSで認証します。SASLメカニズムはPLAIN、SCRAM、OAUTHBEARER、GSSAPIなどがあります。ブローカー側はlisteners、listener.name.<...>.ssl.*、sasl.enabled.mechanisms、sasl.mechanism.inter.broker.protocolを正しく整合させます。
認可はACLが基本です。リソース種別(Topic、Group、Cluster、TransactionalId)、パターン種別(LITERAL/PREFIXED)、操作(READ/WRITE/DESCRIBE/IDEMPOTENT_WRITEなど)を組み合わせ、最小権限で付与します。Confluent Platform/CloudではRBACを用いて役割ベースに集約することも可能で、運用の一貫性が向上します。
監視はJMX/ログ/Control Centerを併用し、遅延・スロットリング・U/R・ディスク使用率・ネットワークアイドルを多面的に見るのが基本です。異常検知は症状→原因→対処を短絡できるアラート設計に落とします。
データ移行・複製はMirrorMaker 2(MM2)とCluster Linkingでアプローチが異なります。試験では特性差、RPO/RTO、依存関係、順序保証の扱いが問われやすいです。
| 観点 | MirrorMaker 2 | Cluster Linking | 試験での押さえどころ |
|---|---|---|---|
| 方式/依存 | Connectベース。ソース/ターゲット双方にConnectが必要 | ブローカー間のネイティブリンク(Confluent機能) | 導入要件と依存コンポーネントの有無 |
| 粒度/対象 | トピック単位での複製。双方向も構成可 | クラスタ間でトピックをフォロー(read-only follower) | どの設定がどちらで可能か(双方向、既存トピックの扱い) |
| 順序/遅延 | パーティション内順序は維持。追加遅延はConnector経由分 | リンクは低レイテンシ寄り | RPO/RTO・遅延見積りの優位性 |
| 運用/管理 | Connectorの監視・リバランスが必要 | Control Center等で一元管理が容易 | 監視ポイントの違い(タスク/リンク) |
| ユースケース | ハイブリッドやバージョン差吸収に柔軟 | DR/リージョン間レプリケーションを簡素化 | DR設計での比較選択 |
プロデュース失敗はacks=allとmin.insync.replicas不整合、ISR縮小、ブローカー間のTLS不整合で再現します。消費遅延はグループリバランス過多、スロットリング、古いコンシューマ設定(max.poll.interval.ms、fetch.min.bytes)で悪化します。
優先対応は、影響範囲の特定(特定トピック/パーティション/ラック)、制限要因の切り分け(ネットワーク、ディスク、スレッド、クォータ)、設定/コード両面の一次仮説検証(acksやバッチ、圧縮、GC/ページキャッシュ)です。
現場で即使う診断コマンド例
# ラグ確認(グループ単位)
kafka-consumer-groups.sh --bootstrap-server broker:9092 \
--group app-group --describe
# U/Rやリーダーの状態確認(メトリクスと併用)
# JMXは省略、ログからの抜粋
grep -E 'UnderReplicatedPartitions|Throttled|Quota' /var/log/kafka/server.log | tail -n 50
# トピック詳細(保持/ISR/割当)
kafka-topics.sh --bootstrap-server broker:9092 \
--describe --topic orders
# クラスタのACL確認
kafka-acls.sh --bootstrap-server broker:9092 --list
# 簡易通信用(TLS/SASLの切り分けにも活用)
kcat -b broker:9093 -X security.protocol=SASL_SSL \
-X sasl.mechanisms=SCRAM-SHA-512 \
-X sasl.username=alice -X sasl.password=secret \
-t orders -P -l <<< 'smoke-test'
# 必要に応じて安全側のリーダー選出(計画停止時)
# kafka-leader-election.sh --bootstrap-server broker:9092 --election-type PREFERRED --topic ordersCCAAK
問題 1
プロデューサからの書き込みで、ブローカー1台の障害時にもデータ損失を避けたい。適切な組み合わせはどれか。
正解: C
データ損失回避の定石は、レプリカ多数決が成立するようにreplication.factorを確保し、min.insync.replicas≥2、プロデューサはacks=allでコミットを待機する組み合わせ。選択肢Cがこれを満たす。A/B/Dはいずれも障害時の損失または未確認書き込みの可能性が残る。
ZooKeeperとKRaftのどちらが出題されますか?
試験は移行期を考慮し、どちらの用語や概念が出ても対応できる準備が安全です。コントローラの役割、メタデータの可用性、ローリング更新手順の違いなど、両者の共通点と差分を押さえましょう。
Confluent Cloudの知識は必要ですか?
基礎はKafka運用一般ですが、Confluent製品固有の機能(RBAC、Control Center、Cluster Linkingなど)が出る可能性があります。Cloud限定機能の暗記ではなく、機能の本質と運用上の利点を理解しておくと対応できます。
具体的な配点や合格ラインは公開されていますか?
詳細な配点やドメイン別比率は公式に公開されていません。最新の試験概要(問題数・制限時間・出題範囲)は公式の認定ページで確認し、設計・セキュリティ・監視・トラブルシュートを重点的に学習してください。
NicheeLab編集部
データエンジニアリング・クラウド資格の専門家。Databricks・Snowflake等の認定資格を保有し、実務経験に基づいた問題作成・解説を行っています。NicheeLab運営。
Kafka Topic と Partition の基礎: 分散とスケーラビリティの要
CCDAK 対策と実務の両立を意識し、Topic/Partition/Replica/Consumer Group の役...
CCDAK 試験ガイド:出題範囲・配点・申込み・対策
Confluent Certified Developer for Apache Kafka (CCDAK) の出題範囲...
Kafka の Replica と In-Sync Replicas を正しく設計する: 耐障害性と一貫性
レプリカとISRの仕組みを起点に、acks と min.insync.replicas、クリーン/アンクリーンリーダー選...
Kafka の Offset とコミット: ポジション管理と at-least-once の基礎
CCDAK 対策と実務の両立を意識して、Kafka コンシューマのオフセット管理とコミット戦略を整理。at-least-...
Kafka Producer API 基礎: 送信フローと主要設定の意味
CCDAK 対応。Producer の送信フローを起点に、スループット・信頼性・順序性を左右する主要パラメータの意図と実...