Kafka

Kafka資格の勉強法: 公式ドキュメント・演習・実機学習の進め方(CCDAK/CCAAK対応)

2026-04-19
NicheeLab編集部

本ガイドは、Apache KafkaとConfluentの認定(CCDAK/CCAAK)に向けて、公式ドキュメント・演習・実機学習をどう組み合わせるかを具体化した学習プランです。

試験対策だけでなく、現場でそのまま役立つ観点(設計・運用の意思決定、設定の落とし穴)を重視しています。最新の仕様や出題範囲は、Kafka公式ドキュメントとConfluent公式ドキュメント、認定ページを必ず併読してください。

試験の全体像と出題範囲マッピング(CCDAK/CCAAK)

CCDAKは開発者視点(プロデューサ/コンシューマ、シリアライゼーション、スキーマ管理、配信保証、Kafka Streams/ksqlDB基礎、Connect基礎)が中心です。CCAAKは管理者視点(ブローカー/トピック設定、セキュリティ、ACL、レプリケーション、ISR、リバランス、監視、容量計画、メンテナンス)が中心です。

出題はベンダー中立のKafka基本仕様に、Confluent製品(Schema Registry、ksqlDB、Connect、Control Center等)が絡むことがあります。基礎はKafka公式ドキュメント、製品固有はConfluent公式ドキュメントを一次情報として学習してください。最新の試験範囲はConfluentの認定ページで確認するのが安全です。

  • CCDAKの軸: 配信セマンティクス(at-most/at-least/exactly once)、キーとパーティション、順序性、シリアライゼーションとSchema Registry、トランザクション、Streams/ksqlDB基礎、Connectの概念
  • CCAAKの軸: レプリケーション係数/ISR/フェイルオーバ、min.insync.replicasとacksの整合、リバランス(range/cooperative-sticky等)、セキュリティ(SSL/SASL/ACL)、運用CLI、ログセグメント/リテンション、監視メトリクス
  • 公式ドキュメント優先: kafka.apache.orgのConfiguration/Design/Operations/Security/Clients、docs.confluent.ioのSchema Registry/Connect/ksqlDB/セキュリティ/ツール
  • 試験→実務の往復: 設定値の意味・デフォルト・トレードオフ・動かすCLI(確認コマンド)まで一気通貫で覚える

公式ドキュメントの読み方と優先順位

Kafka公式は仕様の一次情報です。まずConfigurationリファレンスで各設定の意味とデフォルト、相互依存(例: enable.idempotenceとacks/retries/max.in.flight)を確認します。Design/Operations/Securityで背景設計と運用要点を押さえます。

Confluent公式ではSchema Registry(互換性レベル、バージョニング、見落としやすいsubject名の運用)、Connect(分散運用、タスク/ワーカー、エラーハンドリングとDLQ)、ksqlDB(ストリーム/テーブル、キーマテリアライズ、処理保証)を一次情報として把握します。

読み方の型を固定すると効率が上がります。What(何をするか)、When(いつ/なぜ使うか)、Defaults(既定値と推奨値)、Trade-offs(性能・信頼性・コストのトレードオフ)、CLI(検証手順)を各トピックごとにノート化します。

  • 設定はキー単体で覚えず、セットで覚える(acks/min.insync.replicas、retention.ms/bytes、batch.size/linger.msなど)
  • Streams/ksqlDBは処理保証(processing.guarantee)とステートのバックアップ(changelog/rocksdb)を関連づけて理解
  • Schema Registryは互換性(BACKWARD/FORWARD/FULL/NONE)の違いを例で確認。subject名の戦略(TopicNameStrategyなど)も要点
  • セキュリティはTLSハンドシェイクとSASL種別、ACLの評価順序を図で理解してから設定に入る

実機環境の作り方(ローカル・安全な範囲)

最短で学ぶなら、ローカル単一ブローカーから始め、必要に応じてマルチブローカーへ拡張します。KafkaはKRaftモードが主流に移行中ですが、初学時はZooKeeperベースの最小構成でも基本概念(トピック/パーティション/オフセット/レプリケーションの挙動)を体感できます。試験学習では両方の用語と役割を把握しておくのが無難です。

ConfluentのDockerイメージを用いたComposeは導入が速く、CLIの場所や環境差異も少なめです。ポート競合やリソース不足に注意し、学習ではレプリケーション係数1の前提でまず動作確認、その後にレプリケーション/ISR/フェイルオーバの演習へ進みます。

  • Day1: 単一ブローカーでトピック作成、プロデュース/コンシューム、キーあり/なしでの順序差を確認
  • Day2: レプリケーション係数を上げ、ブローカー停止・再起動でリーダー移行とISRの変化を確認
  • Day3: クリーナ/リテンション(時間/容量)とログセグメントの動きを観察、cleanup.policy=compactの違いを確認

ローカル学習用コンポーネント相関図

App P1App P2Kafka BrokerSchema RegistryConsumersConnectExternal Systemsksql

最小限のDocker Compose例(学習用・ZooKeeperベース)

version: '3.8'
services:
  zookeeper:
    image: confluentinc/cp-zookeeper:7.6.1
    environment:
      ZOOKEEPER_CLIENT_PORT: 2181
      ZOOKEEPER_TICK_TIME: 2000
    ports:
      - '2181:2181'
  kafka:
    image: confluentinc/cp-kafka:7.6.1
    depends_on:
      - zookeeper
    ports:
      - '9092:9092'
    environment:
      KAFKA_BROKER_ID: 1
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092
      KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
      KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
      KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
# 起動: docker compose up -d
# 停止: docker compose down

重点ハンズオン課題と採点ポイント

配信保証、パーティション設計、スキーマ管理、コンシューマグループのリバランスを手で動かすと、設計判断の根拠が明確になります。コンフィグは単独ではなく組み合わせで覚え、CLIで観察指標(lag、ISR、leader、retention、compactionの挙動)を確認します。

CCDAK狙いの演習は、キー設計→順序性→重複/ロス→トランザクション→Schema Registry→Streams/ksqlDBの順。CCAAK狙いでは、レプリケーションとISR、リバランス方式、ACL、証明書、ログセグメント/リテンション、ツール(kafka-topics, kafka-configs, kafka-reassign-partitions等)を重点的に。

  • トピック設計: パーティション数、replication.factor、min.insync.replicasの整合を説明できるようにする
  • 配信保証: at-most/at-least/exactly onceを、設定と挙動で比較できるようにする
  • スキーマ互換性: BACKWARD/FORWARD/FULL/NONEを小さなスキーマ変更で検証
  • リバランス: cooperative-stickyの特徴(最小移動・中断の抑制)を、コンシューマの増減で体感
  • セキュリティ: PLAINTEXT→TLS、ACL追加/検証まで最短パスで通す
セマンティクス主な設定(Producer/Consumer/Broker)長所注意点
At-most-onceProducer: acks=0 または retries=0。Consumer: enable.auto.commit=true(処理前コミット)最小レイテンシ、スループット最大化メッセージロスが発生し得る。試験では信頼性要件を満たさない選択肢として出やすい
At-least-onceProducer: acks=all, retries>0。Broker: min.insync.replicas>=2(本番)。Consumer: enable.auto.commit=false、処理後にcommitSyncロスなし(重複は許容)。現実的なデフォルト重複が起き得るため下流で冪等性や重複排除が必要
Exactly-onceProducer: enable.idempotence=true, transactional.id を設定しbegin/commit。Consumer: isolation.level=read_committed。Streams: processing.guarantee=exactly_once_v2ロス・重複なしの処理保証要件と引き換えにレイテンシ/複雑度が上がる。外部システムまで含む完全なE2Eはシンク側のトランザクション対応が前提

配信保証の実験用プロパティ例

# producer.properties
bootstrap.servers=localhost:9092
enable.idempotence=true
acks=all
retries=2147483647
max.in.flight.requests.per.connection=5
transactional.id=txn-app-1

# consumer.properties
bootstrap.servers=localhost:9092
enable.auto.commit=false
isolation.level=read_committed
group.id=g1

# 実行例(コンソールを使う場合)
# プロデューサ(トランザクション対応のクライアントAPIが必要。コンソールはbegin/commitを明示できないため、アプリ実装で確認推奨)
# コンシューマ(コミットはアプリで制御)
# kafka-console-producer --topic t1 --bootstrap-server localhost:9092 --producer.config producer.properties
# kafka-console-consumer --topic t1 --bootstrap-server localhost:9092 --from-beginning --consumer.config consumer.properties

設定・設計の落とし穴チェックリスト(試験頻出)

設定の相互依存とデフォルトの思い込みがミスの起点になりがちです。以下は試験でひっかけになりやすく、実務でも事故につながる代表例です。

CLIで状態確認まで一連で練習し、どのメトリクス/出力で裏付けできるかを自問できるようにしておくと、ケース問題で強くなります。

  • acks=all と min.insync.replicas は対。ブローカー障害時にプロデュースが失敗すべきか、要件どおりに振る舞うかを確認
  • retention.ms と retention.bytes の優先順位。どちらか満了で削除。コンパクション(cleanup.policy=compact)はキーの最新値を残すが削除マーカーの扱いに注意
  • message.max.bytes と fetch.max.bytes と replica.fetch.max.bytes の不整合で大きなメッセージが詰まる
  • max.in.flight.requests.per.connection と idempotence。冪等送信時の既定上限と順序性の影響を理解
  • auto.offset.reset は既存グループの最初の起動時にのみ適用。後から切り替えても既存コミットは変わらない
  • 静的メンバーシップ(group.instance.id)で停止時の不要なリバランスを抑制

代表的なトピック/ブローカー設定の適用例(CLI)

# 最小ISRを設定(可用性要件に合わせる)
# kafka-configs --bootstrap-server localhost:9092 --alter --topic orders --add-config min.insync.replicas=2

# リテンション時間(ミリ秒)
# kafka-configs --bootstrap-server localhost:9092 --alter --topic logs --add-config retention.ms=604800000

# コンパクションに切替
# kafka-configs --bootstrap-server localhost:9092 --alter --topic kv-store --add-config cleanup.policy=compact

# 設定確認
# kafka-configs --bootstrap-server localhost:9092 --describe --topic kv-store

学習計画(4週間の例)と当日の戦略

短期集中なら4週間で往復学習を回せます。週ごとに範囲を絞り、必ず「読む→動かす→メモを更新→小テスト」で一周させます。模擬問題は根拠の出典(公式ドキュメントの節)を書き込み、暗記依存を避けます。

当日は問題文の要件語(重複許容か、ダウンタイム許容か、順序要件はキー単位か全体か、運用制約は何か)に下線を引くイメージでスクリーニングし、消去法を徹底します。数値や既定値は丸暗記よりも、トレードオフとセットで思い出せるように。

  • Week1: 基本概念とCLI(topics/partitions/offsets、配信保証の定義、Schema Registry入門)
  • Week2: 設計と設定(acks/ISR、リテンション、バッチング、キー設計、Connect/ksqlDB概念)
  • Week3: 運用(レプリケーション/フェイルオーバ、リバランス、ACL/TLS、監視メトリクス)
  • Week4: 総合演習と弱点補強(模擬問題、ログ解析、障害注入と復旧手順)
  • 試験直前: 自作チートシートの見直し(設定セット、CLIコマンド、よくある設計判断)

問題で確認

CCDAK / CCAAK

問題 1

注文イベントを単一トピックにプロデュースし、消費側で重複もロスも許容しない要件がある。Kafkaの標準機能で満たす最適な構成はどれか。

  1. Producerでenable.idempotence=true、acks=all、transactional.idを設定しトランザクションを用いる。Consumerはisolation.level=read_committedを設定する
  2. Producerでacks=1、retries=0。Consumerはデフォルトのまま
  3. cleanup.policy=compactにしてコンパクションを有効化する
  4. Consumerでenable.auto.commit=falseにするだけでExactly-onceになる

正解: A

Exactly-onceにはプロデューサの冪等送信とトランザクション(transactional.id、begin/commit)が必要で、コンシューマはread_committedで未コミットのレコードを除外する。acks=allは整合の一部。コンパクションはストレージのポリシーであり処理保証ではない。auto commitの可否だけでは重複が防げない。

よくある質問

KRaftとZooKeeper、どちらで学ぶべきですか?

概念学習と試験対策の両立には両方の用語と役割を把握しておくのが安全です。ローカルの初期学習はZooKeeperベースでも十分ですが、近年はKRaftが主流に移行しているため、公式ドキュメントでKRaftの用語(controller quorum、metadata logなど)も併読してください。

Confluent固有機能(Schema Registry、ksqlDB、Connect)はどこまで必要ですか?

CCDAKではSchema Registryの互換性レベル、シリアライゼーション、Connect/ksqlDBの基本概念が頻出です。CCAAKでもConnectの分散運用やセキュリティは重要です。深掘りは出題範囲と一致する章に限定し、用語と運用イメージを押さえるのが効率的です。

模擬問題のスコアが伸びません。何から見直せばいいですか?

誤答を設定単体で覚えていないかを点検し、設定セット(acks+min.insync.replicas、batch.size+linger.ms、retention.ms+bytesなど)で因果を説明できるかに切り替えましょう。必ず公式ドキュメントの根拠節に立ち返り、CLIや小さな実験で再現してから暗記します。

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

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

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

CCAAKに向けて、試験領域の押さえどころを運用目線で整理。プロダクションで通用する設定・監視・セキュリティの実践知を、...

Kafka

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

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

Kafka

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

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

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