Kafka

Confluent Certified Administrator (CCAAK) 対策: 出題範囲・配点の考え方・運用観点の要点

2026-04-19
NicheeLab編集部

本記事は、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/監視)の理解が差になります。

  • 学習の優先度付け: 設計/セキュリティ/監視/トラブルシュート → 高、ツール詳細の暗記 → 中、周辺エコシステムの広さ → 低〜中
  • 非公開の配点対策: 実務で「事故が起きやすい箇所」を深く(min.insync.replicas、acks=all、クォータ、U/Rパーティション、認証失敗)
  • 出題形式対策: 設定名と効果、トレードオフ、デフォルト値の方向性を選択肢比較で即断できるようにする

設計の要点: レプリケーション、ISR、ラックアウェアネス、コントローラ

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(自己管理メタデータ)は共存期があるため、両方の言及に対応できると安全です。

  • 基本式: データ損失回避 = acks=all かつ min.insync.replicas ≥ 2 かつ replication.factor ≥ min.insync.replicas + 1
  • U/R(Under-ReplicatedPartitions)> 0 は即アラート。ISR復帰条件(replica.lag、ネットワーク/ディスクI/O)を確認
  • unclean.leader.election.enable=false が安全側。やむを得ない状況でtrueはデータ不整合のリスク
  • rack感度: broker.rack を設定し、割当ポリシーがラック分散を満たすかを点検

Kafkaクラスタの論理構成とレプリケーション

ProducersController/MetadataBroker 1 (rack A)P0(L) P1(F) P2(R)Broker 2 (rack B)P0(R) P1(L) P2(F)Broker 3 (rack C)P0(F) P1(R) P2(L)Consumers凡例: L=Leader, F=Follower, R=Replica

トピック設定とクォータ: スループットと保全性の両立

トピック設計は、保持戦略(retention.ms / retention.bytes / cleanup.policy)、セグメントサイズ(segment.bytes / segment.ms)、コンパクション閾値(min.cleanable.dirty.ratio)などのトレードオフを理解します。ログコンパクションは最新キー値を残しつつ領域を削減しますが、読み出しパターンとレイテンシへの影響を考慮します。

クォータ(producer/consumer/client-id/user単位)はノイジーネイバー対策の基本です。スループット(bytes)、リクエストレート、接続数に対する制御を適用し、スロットリングが発生した場合の監視イベントと相関させます。

  • 保持戦略: cleanup.policy=delete or compact or compact,delete
  • 耐障害: min.insync.replicas と acks の組み合わせを設計段で固定
  • スループット: segment.bytes と flush系は過度に小さくしない(I/O過多回避)
  • クォータ種別: producer_byte_rate / consumer_byte_rate / request_percentage / controller_mutation_rate など

代表的なトピック作成とクォータ設定(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 alice

セキュリティ: TLS/SASL、ACL、RBACの要点

Kafkaの通信は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を用いて役割ベースに集約することも可能で、運用の一貫性が向上します。

  • mTLSは証明書管理が鍵。サーバー/クライアント双方のCA信頼関係を明示
  • SASL/SCRAMはユーザー作成とシークレット保全を標準化(自動化・ローテーション)
  • ACLはプリンシパル命名とPREFIXEDの使い分けを定義。Group単位のREAD権限漏れに注意
  • RBAC(Confluent)は中央管理と監査が容易。ACLと混在時の評価順序・スコープを理解する

監視・運用: 重要メトリクス、ローリング更新、データ移行の比較

監視はJMX/ログ/Control Centerを併用し、遅延・スロットリング・U/R・ディスク使用率・ネットワークアイドルを多面的に見るのが基本です。異常検知は症状→原因→対処を短絡できるアラート設計に落とします。

データ移行・複製はMirrorMaker 2(MM2)とCluster Linkingでアプローチが異なります。試験では特性差、RPO/RTO、依存関係、順序保証の扱いが問われやすいです。

  • 主要JMX例: kafka.server:type=ReplicaManager,name=UnderReplicatedPartitions
  • 待ち行列/遅延: RequestQueueTimeMs、Fetch/Produce purgatoryサイズ
  • ネットワーク/スレッド: NetworkProcessorAvgIdlePercent
  • トラフィック: BytesInPerSec / BytesOutPerSec、レプリケーション帯域の頭打ち検出
  • ローリング更新: 互換性行列とインターバージョンのサポートを確認し、コントローラ/ブローカー順序を踏襲
観点MirrorMaker 2Cluster Linking試験での押さえどころ
方式/依存Connectベース。ソース/ターゲット双方にConnectが必要ブローカー間のネイティブリンク(Confluent機能)導入要件と依存コンポーネントの有無
粒度/対象トピック単位での複製。双方向も構成可クラスタ間でトピックをフォロー(read-only follower)どの設定がどちらで可能か(双方向、既存トピックの扱い)
順序/遅延パーティション内順序は維持。追加遅延はConnector経由分リンクは低レイテンシ寄りRPO/RTO・遅延見積りの優位性
運用/管理Connectorの監視・リバランスが必要Control Center等で一元管理が容易監視ポイントの違い(タスク/リンク)
ユースケースハイブリッドやバージョン差吸収に柔軟DR/リージョン間レプリケーションを簡素化DR設計での比較選択

トラブルシューティング頻出パターンとCLI手順

プロデュース失敗はacks=allとmin.insync.replicas不整合、ISR縮小、ブローカー間のTLS不整合で再現します。消費遅延はグループリバランス過多、スロットリング、古いコンシューマ設定(max.poll.interval.ms、fetch.min.bytes)で悪化します。

優先対応は、影響範囲の特定(特定トピック/パーティション/ラック)、制限要因の切り分け(ネットワーク、ディスク、スレッド、クォータ)、設定/コード両面の一次仮説検証(acksやバッチ、圧縮、GC/ページキャッシュ)です。

  • U/R > 0: ネットワーク遅延/ディスク帯域/replica.fetch.wait.max.ms を点検。必要に応じてレプリカの手動リーダー選出
  • スロットリング: broker側でThrottledRequestsやQuotaViolationをログ確認 → クォータ再調整
  • 認証失敗: サーバ/クライアントのSASL/TLSメカニズム不一致、証明書CN/SAN不整合を確認
  • ラグ増大: consumer groupのコミット間隔、max.in.flight.requests、fetch系設定とブローカーの帯域を相関分析

現場で即使う診断コマンド例

# ラグ確認(グループ単位)
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 orders

問題で確認

CCAAK

問題 1

プロデューサからの書き込みで、ブローカー1台の障害時にもデータ損失を避けたい。適切な組み合わせはどれか。

  1. replication.factor=2、min.insync.replicas=1、プロデューサ acks=1
  2. replication.factor=3、min.insync.replicas=1、プロデューサ acks=all
  3. replication.factor=3、min.insync.replicas=2、プロデューサ acks=all
  4. replication.factor=2、min.insync.replicas=2、プロデューサ acks=0

正解: 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限定機能の暗記ではなく、機能の本質と運用上の利点を理解しておくと対応できます。

具体的な配点や合格ラインは公開されていますか?

詳細な配点やドメイン別比率は公式に公開されていません。最新の試験概要(問題数・制限時間・出題範囲)は公式の認定ページで確認し、設計・セキュリティ・監視・トラブルシュートを重点的に学習してください。

この記事で学んだ内容を問題で確認しましょう

16,000問以上の問題で実力チェック

無料で問題を解いてみる
この記事の著者

NicheeLab編集部

データエンジニアリング・クラウド資格の専門家。Databricks・Snowflake等の認定資格を保有し、実務経験に基づいた問題作成・解説を行っています。NicheeLab運営。


関連記事
Kafka

Kafka Topic と Partition の基礎: 分散とスケーラビリティの要

CCDAK 対策と実務の両立を意識し、Topic/Partition/Replica/Consumer Group の役...

Kafka

CCDAK 試験ガイド:出題範囲・配点・申込み・対策

Confluent Certified Developer for Apache Kafka (CCDAK) の出題範囲...

Kafka

Kafka の Replica と In-Sync Replicas を正しく設計する: 耐障害性と一貫性

レプリカとISRの仕組みを起点に、acks と min.insync.replicas、クリーン/アンクリーンリーダー選...

Kafka

Kafka の Offset とコミット: ポジション管理と at-least-once の基礎

CCDAK 対策と実務の両立を意識して、Kafka コンシューマのオフセット管理とコミット戦略を整理。at-least-...

Kafka

Kafka Producer API 基礎: 送信フローと主要設定の意味

CCDAK 対応。Producer の送信フローを起点に、スループット・信頼性・順序性を左右する主要パラメータの意図と実...

Kafkaの記事一覧 (100件)
© 2026 NicheeLab All rights reserved.