Confluent CloudはKafkaの運用をマネージドで肩代わりしてくれるため、学習コストとリスクを抑えた実機演習に向いています。無料枠/トライアルクレジットの範囲で、CCDAK/CCAAKの要点を確実に手を動かして確認する手順をまとめました。
価格や特典はプロモーションにより変動します。数値や上限は必ず公式ドキュメントとコンソールの表示を優先し、課金が発生しやすい機能(コネクタ、ksqlDB等)は本稿では必要最小限に留めます。
Confluent Cloudの無料枠/トライアルは、使用量に応じた従量課金がクレジットから差し引かれる仕組みが一般的です。金額や有効期限は変動するため、数値の暗記ではなく、どこでコストが増えるかを構造で押さえてください。
学習ではBasic相当のKafkaクラスタを1つ、トピック数とパーティション数は最小で開始し、Schema RegistryとAPIキー、ACL/RBACの一連の流れをひと通り体験します。CCDAKはプロデューサ/コンシューマ、パーティション設計、スキーマ進化の実践を重視。CCAAKはアクセス制御、権限境界、監視/運用の基礎を重視します。
学習開始前の安全チェックリスト(抜粋)
- トピックは最小限(例: 1〜2個、各1〜3パーティション)
- 保持期間は短め(例: 1〜24時間)に設定して開始
- コネクタ/ksqlDBは無効のまま開始
- 利用終了後は必ずAPIキーと環境/クラスタ/トピックを削除
- クレジット残高/明細は作業前後に確認無料枠では、読み書きの実験に足る最小構成が原則です。まずは1トピック・1〜3パーティションで開始し、キーによる順序保証や消費者グループの拡張性を手を動かして確かめます。トピックの複製係数やブローカー構成はマネージド側の既定を尊重し、学習コストを下げます。
スキーマはSchema Registryを利用し、後方互換のスキーマ進化を実験します。最初は必須フィールドを減らす変更(後方互換性の確保)から始め、非互換変更を敢えて投入してエラーを観察し、互換性設定の意味を体感します。
| 構築手段 | 学習メリット | 注意点/試験適合 |
|---|---|---|
| Web UI | 全体像を直感的に把握でき、初回セットアップが速い | 操作履歴が残りにくい。概念整理には有効だが自動化設問には弱い |
| Confluent CLI | 再現性のある手順化が可能。認証/権限/ACL演習と相性が良い | 認証情報の取り扱いに注意。スクリプト化でCCAAKの運用観点を補強 |
| Terraform(プロバイダ) | IaCで本番アーキに近い管理体験。差分管理とドリフト検出の素振り | 無料枠ではオーバーキルになりがち。試験の中心テーマではないが運用設計の理解が深まる |
トピック作成の最小例(CLI、保持時間短縮)
confluent login --save
confluent environment create learn-env
confluent environment use <ENV_ID>
confluent kafka cluster create learn-basic --type basic --cloud aws --region ap-northeast-1
confluent kafka cluster use <CLUSTER_ID>
# APIキー発行(後でクライアントで使用)
confluent api-key create --resource <CLUSTER_ID> --description learn-key
# トピック(1パーティション、保持1時間の例)
confluent kafka topic create orders --partitions 1 --config retention.ms=3600000初回はWeb UIで環境とKafkaクラスタを用意し、続けてCLIでAPIキー、トピック、ACLを作ると迷いが少なくなります。クレジットが消費されるのは主にクラスタ稼働時間とデータ転送・保存です。最短で作り、最短で検証し、速やかにクリーンアップするのが基本動作です。
Schema Registryは同一環境で有効化しておくと、後続のスキーマ演習がスムーズです。リージョンやクラウド事業者は学習の可用性に大差が出にくいため、近接・低レイテンシで選びます。
学習用の極小アーキテクチャ(無料枠向け)
[Producer App] --(SASL_SSL)--> [Confluent Cloud Kafka] --(group subscribe)--> [Consumer App]
\ /
\-- Schema (Registry) --------------------/
説明:
- Producer/Consumerは同一リージョンから接続し外部転送料を抑制
- Schema Registryを併用して後方互換のスキーマ進化を演習
- RBAC/ACLはクラスタ単位で最小権限付与CLIによる環境〜APIキー発行の最短コマンド列(例)
confluent login --save
confluent environment create learn-env && confluent environment use <ENV_ID>
confluent kafka cluster create learn-basic --type basic --cloud aws --region ap-northeast-1 && confluent kafka cluster use <CLUSTER_ID>
confluent schema-registry cluster enable --cloud aws --geo ap-southeast-1 # 例: リージョンはUIの案内に合わせる
confluent iam service-account create sa-app --description "for app"
confluent api-key create --resource <CLUSTER_ID> --service-account <SA_ID> --description app-keyプロデューサ/コンシューマの基本、キーによる順序保証、再処理を体験します。まずは同期送信でエラーハンドリングを可視化し、次に非同期送信とコールバックでスループットの差を観察します。コンシューマはオートコミットと手動コミットの差を確認し、グループリバランス時の挙動を小さな並列度で確かめます。
スキーマは最小フィールドから開始し、後方互換を保った追加を行います。互換性を破る変更を敢えて試し、プロデュース時に拒否されることを確認すると、試験の理論が腹落ちします。
Python Producer(confluent-kafka、SASL_SSL、最小例)
from confluent_kafka import Producer
import json
conf = {
'bootstrap.servers': '<BOOTSTRAP_SERVERS>',
'security.protocol': 'SASL_SSL',
'sasl.mechanisms': 'PLAIN',
'sasl.username': '<API_KEY>',
'sasl.password': '<API_SECRET>'
}
p = Producer(conf)
def delivery(err, msg):
if err:
print(f'Delivery failed: {err}')
else:
print(f'Delivered to {msg.topic()} [{msg.partition()}] @ {msg.offset()}')
for order_id in range(1, 6):
key = f"order-{order_id % 2}" # 同一キーの順序を確認
val = json.dumps({'id': order_id, 'amount': 100 + order_id})
p.produce('orders', key=key, value=val, callback=delivery)
p.poll(0)
p.flush()
# コンシューマ側では group.id を設定し、auto.offset.reset=earliest で再処理の挙動を確認Confluent Cloudではブローカー運用の多くが抽象化されますが、学習ではアクセス制御と権限境界、監視、セキュリティ設定に集中します。特にACLとRBACの役割分担を明確にし、サービスアカウント単位の最小権限を実践します。
メトリクスはコンソールとCLI/APIで確認し、遅延やスループット、エラー率の基本的な読み方を押さえます。無料枠では長時間の負荷試験は避け、短時間の観測とクリーンアップを徹底します。
ACLとRBACの最小例(CLI)
# RBAC: Kafka開発者にDeveloperRead/Writeを付与(リソースはKafkaクラスタ)
confluent iam rbac role-binding create \
--principal User:<SA_ID> \
--role DeveloperWrite \
--cloud-cluster <CLUSTER_ID>
confluent iam rbac role-binding create \
--principal User:<SA_ID> \
--role DeveloperRead \
--cloud-cluster <CLUSTER_ID>
# ACL: 特定トピックordersへの許可(より細粒度)。
confluent kafka acl create \
--allow \
--service-account <SA_ID> \
--operation READ \
--topic orders
confluent kafka acl create \
--allow \
--service-account <SA_ID> \
--operation WRITE \
--topic ordersコスト最適化は開始前の設計と終了後の確実な削除がすべてです。実験はバッチ化し、連続で行い、環境を開きっぱなしにしない運用習慣を付けます。保持期間とパーティション数は常に見直し、不要トピックは即削除します。
Confluent Cloudは請求ダッシュボードと使用量メトリクスが充実しています。実験単位でスクリーンショットやCLIログを残すと、後で試験復習やチーム共有にも役立ちます。
クリーンアップの標準手順(CLI)
# コンシューマ/プロデューサ停止後に実施
confluent kafka topic delete orders
confluent api-key delete <API_KEY_ID>
confluent kafka cluster delete <CLUSTER_ID>
confluent environment delete <ENV_ID>
# 削除前に請求ダッシュボードで当日分の増分を確認CCDAK / CCAAK
問題 1
無料枠の学習用クラスタで、同一キーの順序保証を維持しつつコストを最小化したい。適切な初期設計はどれか。
正解: A
順序保証はキー単位で同一パーティションに割り当てられることで成立する。最小コストの観点でも、まずは1パーティションで開始し、保持時間を短めにするのが妥当。Bはキー未設定で順序保証を損なう。Cはキー未設定ではコンパクションの効果が出にくい。Dはコミット方式と順序保証は別問題。
Schema Registryは無料枠で使って大丈夫?課金はどうなる?
Confluent CloudのSchema Registryはマネージドで、使用量に応じて従量課金されます。無料枠/トライアルクレジットの範囲で試せますが、具体的な料金や上限は時期により変動します。学習ではスキーマサイズを小さく、短時間で有効化し、終了後は不要なサブジェクトを削除してください。
トライアル終了後にクラスタを放置するとどうなる?
クレジット消費後は請求先設定がないと操作が制限される場合があります。不要リソースが残ると課金発生リスクがあるため、学習セッションの終わりにAPIキー、トピック、クラスタ、環境を順番に削除する運用を徹底してください。最終判断は公式ドキュメントとコンソールの状態を確認してください。
どのリージョン/クラウドを選べばコストは下がる?
価格はクラウド/リージョンで異なることがあります。学習ではクライアントと同一リージョンを選び、外部転送料を最小化するのが基本です。具体的な単価やプロモーションは変動するため、作成前にコンソールの見積/料金表を確認してください。
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-...