リアルタイム処理が前提になると、Kafkaはデータ基盤の中核になり、設計と運用の両輪を回せる人材の価値が跳ね上がる。
CCDAK(開発)とCCAAK(運用)は、そのスキルを客観化できる数少ない指標。資格対策と現場タスクを結び付けて、採用・年収・キャリア拡張に効く形で整理する。
バッチ主体のDWHだけでは、パーソナライズ、在庫の同期、フラウド対策、IoTのテレメトリなどの要件に応えにくい。メッセージングとログの一貫性を持つKafkaは、疎結合なイベント駆動設計の背骨として採用される。採用側は、スループットと整合性のトレードオフを理解し、障害時の再処理や順序保証を設計に織り込める人材を求める。
エンタープライズでは、複数のクラウドとオンプレが混在する。Kafkaはランタイム互換性とクライアントAPIの安定性が高く、ベンダーロックインを緩和しやすい。認定とポートフォリオを併記できれば、移行・近代化案件でも評価が安定する。
ストリーミング基盤の俯瞰
最小限の土台: 高可用トピックの作成例
kafka-topics.sh --bootstrap-server broker-1:9092 \
--create --topic orders \
--partitions 6 --replication-factor 3 \
--config min.insync.replicas=2CCDAKは、プロデューサ/コンシューマAPI、データモデリング(キー/パーティション/順序)、配信保証(at-least/at-most/exactly once)、コネクタとスキーマ運用の基本を問う。アプリ側の設計判断と回復戦略が中心。
CCAAKは、ブローカーとトピックの設定、セキュリティ(SASL/SSLとACL)、監視と運用標準化(アラート、容量計画、ローリングアップグレード)、障害時の復旧や再均衡の制御が中心。プロダクションSLOを守る運用判断が主眼。
| 資格 | 対象者 | 主な出題領域 | 現場タスク例 |
|---|---|---|---|
| CCDAK(Developer) | アプリ/データエンジニア | Producer/Consumer API、キー設計、パーティション、配信保証、スキーマ、コネクタ基礎、ストリーム処理基礎 | イベントスキーマ設計、順序保証の要件化、idempotent/transactional送信、read_committed読取、再処理設計 |
| CCAAK(Administrator) | SRE/プラットフォーム/運用 | ブローカー/トピック設定、セキュリティ(SASL/SSL/ACL)、監視/容量計画、ローリング操作、障害復旧、コネクト運用 | クラスタ構築と更新、ACLポリシーの標準化、スループット/遅延SLOの監視、リバランス/スロットリング調整、マルチAZ構成 |
試験と実務の交点: 配信保証とアクセス制御の最小設定
# Producer(Exactly-onceの前提)
enable.idempotence=true
acks=all
retries=2147483647
max.in.flight.requests.per.connection=5
# トランザクションを使う場合
delivery.timeout.ms=120000
transactional.id=orders-tx-001
# Consumer(コミット済のメッセージのみ)
isolation.level=read_committed
auto.offset.reset=earliest
# ACL例(管理者が適用)
# topic:orders の Read をアプリUser:app-ordersに許可
kafka-acls.sh --bootstrap-server broker-1:9092 \
--add --allow-principal User:app-orders \
--operation Read --topic orders --group orders-cg採用は「設計判断の一貫性」と「障害時の再現性」で評価される。資格は共通言語として有効だが、実務の裏付け(スキーマ進化、順序と再処理、SLO運用)が提示できると交渉力が上がる。規模、SLO、オンコール有無、マルチリージョン要件は報酬に直結するため、案件の難易度と責務の明示が重要。
ケース面接では、遅延増大時のボトルネック切り分け(プロデューサ、ブローカー、コンシューマ、ストレージ)、スキーマ非互換の回避、コネクタのデッドレタリング設計などが定番。面接準備は試験ドメインと一致する。
面接で役立つ診断コマンドの最小セット
# API互換の確認
kafka-broker-api-versions.sh --bootstrap-server broker-1:9092
# トピックの状態
kafka-topics.sh --bootstrap-server broker-1:9092 --describe --topic orders
# 消費ラグの概観(ツール併用も可)
kafka-consumer-groups.sh --bootstrap-server broker-1:9092 \
--describe --group orders-cgWeek1は概念と単語合わせ。Kafkaの公式ドキュメントでトピック/パーティション/レプリケーション、プロデューサ/コンシューマの基本API、配信保証の定義を正確に言語化する。Confluentの試験ガイドで出題範囲をマッピングする。
Week2-3はハンズオン。小規模クラスタ(3ブローカー)でトピックのリテンションとコンパクションを切り替え、プロデューサのバッチ設定を変えながらスループット/遅延を測る。スキーマ進化とread_committedの読取を確認。運用側はACLと証明書、ローリング再起動の手順化まで行う。
Week4は弱点補強と模擬問。障害シナリオ(ブローカー停止、スローネットワーク、コンシューマフェンス)を用意し、切り分けメモを仕上げる。
性能測定の基点(バッチ/圧縮の影響を見る)
kafka-producer-perf-test.sh \
--producer.config producer.props \
--topic perf-test --num-records 500000 --throughput -1 \
--record-size 512
# producer.props の例
compression.type=snappy
batch.size=65536
linger.ms=20
acks=all
enable.idempotence=trueキー設計は順序保証とスケーリングの要。順序が必要な単位でキーを固定し、パーティション数は消費者の並列度と将来のスケールを見込んで設計する。リバランス頻発はスループットに影響するため、セッションや最大ポーリング間隔の調整で安定化させる。
配信保証は要件ドリブンで選択する。重複許容ならat-least-onceで十分な場合が多いが、外部系と協調が必要な場合はidempotenceとトランザクションを併用してexactly-once(トピック内での重複排除+コミット整合)を実現する。運用ではリテンションとコンパクションの違い、スキーマの後方互換を守ることが再処理コストを左右する。
設定スニペット:コンパクションとトランザクション
# ログコンパクションを有効化
kafka-configs.sh --bootstrap-server broker-1:9092 \
--alter --entity-type topics --entity-name user-profile \
--add-config cleanup.policy=compact,min.compaction.lag.ms=60000
# Java Producerのプロパティ抜粋(EOS2)
props.put("enable.idempotence", "true");
props.put("acks", "all");
props.put("transactional.id", "inventory-tx-1");
props.put("max.in.flight.requests.per.connection", "5");Kafkaはデータ流通の土台。上流のスキーマ管理と下流のDWH/レイク、インフラ自動化が噛み合うと、要件定義から運用まで一気通貫で価値が出せる。認定の組み合わせは、案件の幅と役割の広がりに直結する。
例として、ストリーミングETLでの信頼性担保(スキーマ互換、観測性、再処理設計)は、SnowflakeやDatabricksのロード戦略、dbtのトランスフォーメーション設計、Terraform/Vaultの自動化・シークレット管理と親和性が高い。
CCDAK / CCAAK
問題 1
決済イベントの処理で、外部の在庫サービスへ副作用を伴う更新を行う。重複適用は厳禁で、障害時も再開後に一貫した結果が必要。Kafkaを用いた設計として最も適切な組み合わせはどれか?
正解: A
厳密一回相当を実現するには、Producerの冪等化とトランザクション(transactional.id)によりコミット単位の整合性を保ち、Consumerはread_committedでコミット済みレコードのみを読む。外部副作用はアプリ側で冪等性キーを用意し、再試行時も重複適用されないようにする。その他の選択肢は配信保証と整合性を損なう。
まずどちらを受けるべきか(CCDAKかCCAAK)?
アプリ寄りの実装・データモデリングに関与するならCCDAK、プラットフォーム運用・SREに近いならCCAAKが近道。現場で両方を横断する場合は、CCDAKで設計の基礎を固め、次にCCAAKでSLO運用とセキュリティを押さえるのが効率的。
ZooKeeperとKRaftのどちらを学べばよい?
基本概念(トピック、レプリケーション、配信保証、セキュリティ、監視)は共通で、試験対策は出題ガイドの想定に合わせる。運用現場ではKRaft移行が進むが、移行期間は両方の運用前提を理解しておくと安全。
マネージドKafka(Confluent Cloud)中心でも資格は有効か?
有効。クライアントの設計、スキーマ運用、配信保証、ACLなどの中核概念は共通で、移植性の高い意思決定ができることを示せる。運用系はマネージドの責務分界を理解しつつ、監視・容量計画・セキュリティの設計判断を語れると強い。
NicheeLab編集部
データエンジニアリング・クラウド資格の専門家。Databricks・Snowflake等の認定資格を保有し、実務経験に基づいた問題作成・解説を行っています。NicheeLab運営。
Kafka Topic と Partition の基礎: 分散とスケーラビリティの要
CCDAK 対策と実務の両立を意識し、Topic/Partition/Replica/Consumer Group の役...
CCDAK 試験ガイド:出題範囲・配点・申込み・対策
Confluent Certified Developer for Apache Kafka (CCDAK) の出題範囲...
Confluent Certified Administrator (CCAAK) 対策: 出題範囲・配点の考え方・運用観点の要点
CCAAKに向けて、試験領域の押さえどころを運用目線で整理。プロダクションで通用する設定・監視・セキュリティの実践知を、...
Kafka の Replica と In-Sync Replicas を正しく設計する: 耐障害性と一貫性
レプリカとISRの仕組みを起点に、acks と min.insync.replicas、クリーン/アンクリーンリーダー選...
Kafka の Offset とコミット: ポジション管理と at-least-once の基礎
CCDAK 対策と実務の両立を意識して、Kafka コンシューマのオフセット管理とコミット戦略を整理。at-least-...