- MSKはApache Kafkaのフルマネージドサービス、運用負担を大幅削減
- MSK Serverlessなら初期費用ゼロ、従量課金でKafkaを始められる
- Kafka案件の月単価は75〜110万円、SES市場で需要急増中
リアルタイムデータ処理の需要が爆発的に増えている2026年。Apache Kafkaはストリーミング基盤のデファクトスタンダードですが、自前でクラスターを構築・運用するのは大変です。
**Amazon MSK(Managed Streaming for Apache Kafka)**を使えば、Kafkaの運用をAWSに任せ、ビジネスロジックの実装に集中できます。この記事では、MSKの構築からSESエンジニアとしてのキャリア戦略まで、実践的に解説します。
- Apache Kafkaの基本概念とMSKの全体像
- MSKクラスターの構築手順
- ストリーミングアーキテクチャの設計パターン
- MSK Connectによるデータパイプライン構築
- SESエンジニアとしてのKafkaキャリア戦略
Amazon MSKとは?Apache Kafkaマネージドサービスの全体像
Kafkaの基本概念(Producer/Consumer/Topic/Partition)
Apache Kafkaは、大量のデータをリアルタイムに処理するための分散ストリーミングプラットフォームです。まず基本概念を押さえましょう。
| 概念 | 説明 | 例 |
|---|---|---|
| Producer | データを送信する側 | Webアプリ、IoTセンサー |
| Consumer | データを受信・処理する側 | 分析エンジン、通知サービス |
| Topic | データのカテゴリ(チャンネル) | 注文イベント、ログデータ |
| Partition | Topicの分割単位(並列処理の鍵) | Topic内の分散処理 |
| Broker | データを保持・配信するサーバー | MSKが管理 |
Kafkaの特徴:
- 高スループット:1秒あたり数百万メッセージの処理が可能
- 耐障害性:データのレプリケーションで障害に強い
- スケーラブル:Partitionを増やして水平スケール
- 永続性:メッセージをディスクに保存(再処理可能)
MSKとセルフマネージドKafkaの比較
| 比較項目 | セルフマネージド | Amazon MSK |
|---|---|---|
| クラスター構築 | 手動(EC2 + ZooKeeper) | マネコンまたはCLIで数クリック |
| パッチ適用 | 自前で管理 | AWSが自動対応 |
| スケーリング | 手動でBroker追加 | 自動スケーリング対応 |
| モニタリング | 自前で構築 | CloudWatch統合 |
| セキュリティ | 自前で設定 | IAM・TLS・暗号化を統合 |
| 運用コスト | 高い | 低い(運用人員不要) |
| 費用 | EC2コスト | MSK料金(やや高め) |
MSKを使えば、Kafkaの運用にかかる工数を約70%削減できると言われています。
AWSの基礎知識については、AWSエンジニア入門ガイドで解説しています。
MSKクラスターの構築手順
VPCとサブネット設計
MSKクラスターはVPC内に配置するため、ネットワーク設計が重要です。
VPC (10.0.0.0/16)
├── Private Subnet 1 (10.0.1.0/24) - AZ-a → Broker 1
├── Private Subnet 2 (10.0.2.0/24) - AZ-c → Broker 2
├── Private Subnet 3 (10.0.3.0/24) - AZ-d → Broker 3
└── Public Subnet (10.0.0.0/24) → NAT Gateway
設計のポイント:
- 3つのAZにまたがるサブネットで高可用性を確保
- MSKブローカーはプライベートサブネットに配置
- ProducerとConsumerはVPC内またはVPC Peeringで接続
VPCネットワーク設計の詳細については、AWS VPCネットワークガイドをご覧ください。
クラスター作成とブローカー設定
AWS CLIを使ったMSKクラスターの作成手順です。
# MSKクラスターの作成
aws kafka create-cluster \
--cluster-name "my-streaming-platform" \
--broker-node-group-info '{
"BrokerAZDistribution": "DEFAULT",
"InstanceType": "kafka.m5.large",
"ClientSubnets": [
"subnet-xxx1",
"subnet-xxx2",
"subnet-xxx3"
],
"StorageInfo": {
"EbsStorageInfo": {
"VolumeSize": 100
}
}
}' \
--kafka-version "3.6.0" \
--number-of-broker-nodes 3
MSK Serverless vs Provisioned
2026年のMSKは2つのデプロイメントモデルを提供しています。
| 比較項目 | MSK Provisioned | MSK Serverless |
|---|---|---|
| 課金方式 | Broker時間 + ストレージ | データ転送量ベース |
| スケーリング | 手動 | 自動 |
| 初期コスト | 月$200〜 | $0(使った分だけ) |
| パフォーマンス制御 | InstanceType選択 | 自動最適化 |
| 向いている用途 | 大規模・安定負荷 | 変動負荷・PoC |
選択の指針:
- 月額データ転送量が予測しにくい → Serverless
- 常に高スループットが必要 → Provisioned
- まず試したい → Serverlessから始めてProvisionedに移行

ストリーミングアーキテクチャ設計パターン
イベント駆動型マイクロサービス
MSKを使った代表的なアーキテクチャがイベント駆動型マイクロサービスです。
注文サービス → [MSK: order-events] → 在庫サービス
→ 決済サービス
→ 通知サービス
→ 分析サービス
サービス間の通信をKafkaのTopicを介して行うことで、以下のメリットが得られます。
- 疎結合:サービス間の依存関係を最小化
- スケーラビリティ:各サービスを独立にスケール
- 耐障害性:一つのサービスが停止しても他は影響を受けない
- 監査性:すべてのイベントが永続化されるため追跡可能
ログ集約・リアルタイム分析
アプリログ → [MSK: app-logs] → OpenSearch → Kibana
Webアクセスログ → [MSK: access-logs] → S3 → Athena
複数のソースからのログをMSKに集約し、リアルタイム分析と長期保存を両立するパターンです。
Lambda × MSKのイベントソース統合
MSKのTopicをLambdaのイベントソースとして設定できます。
# serverless.yml
functions:
processOrder:
handler: handler.processOrder
events:
- msk:
arn: arn:aws:kafka:ap-northeast-1:123456:cluster/my-cluster/xxx
topic: order-events
batchSize: 100
startingPosition: LATEST
Lambda連携の詳細については、AWS Lambdaサーバーレスガイドをご覧ください。
MSK Connectでデータパイプラインを構築
MSK Connectを使えば、コードを書かずにデータパイプラインを構築できます。
主要なコネクタ:
| コネクタ | 方向 | 用途 |
|---|---|---|
| S3 Sink | Kafka → S3 | ログの長期保存 |
| Elasticsearch Sink | Kafka → OpenSearch | リアルタイム検索 |
| JDBC Source | RDS → Kafka | DBのCDC(変更データキャプチャ) |
| Debezium | 各種DB → Kafka | リアルタイムDB同期 |
# MSK Connectのカスタムプラグインをアップロード
aws kafkaconnect create-custom-plugin \
--name "s3-sink-plugin" \
--content-type ZIP \
--location '{
"s3Location": {
"bucketArn": "arn:aws:s3:::my-plugins",
"fileKey": "confluentinc-kafka-connect-s3-10.5.0.zip"
}
}'
監視・運用のベストプラクティス
CloudWatchメトリクス
MSKは自動的にCloudWatchにメトリクスを送信します。特に監視すべきメトリクスは以下の通りです。
| メトリクス | 閾値目安 | アクション |
|---|---|---|
| CPUUtilization | 70%超 | ブローカーサイズアップ |
| DiskUsage | 80%超 | ストレージ拡張 or 保持期間短縮 |
| OfflinePartitionsCount | 0より大きい | 即座に調査 |
| UnderReplicatedPartitions | 0より大きい | レプリケーション確認 |
| BytesInPerSec | 急増 | Producer側の確認 |
CloudWatchの詳細については、AWS CloudWatchモニタリングガイドをご覧ください。
パーティション管理とスケーリング
パーティション設計はKafkaのパフォーマンスを左右する最重要ファクターです。
パーティション数の決め方:
- 目標スループット ÷ 1パーティションのスループット = 必要パーティション数
- 一般的にはConsumer数以上のパーティション数を設定
- 多すぎるとメタデータのオーバーヘッドが増加
# パーティション数の変更
aws kafka update-broker-count \
--cluster-arn $CLUSTER_ARN \
--current-version $CLUSTER_VERSION \
--target-number-of-broker-nodes 6
セキュリティ設定(IAM認証・暗号化・VPC)
MSKのセキュリティ設定は多層防御が基本です。
1. IAM認証
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": [
"kafka-cluster:Connect",
"kafka-cluster:DescribeTopic",
"kafka-cluster:ReadData",
"kafka-cluster:WriteData"
],
"Resource": "arn:aws:kafka:ap-northeast-1:123456:cluster/my-cluster/*"
}]
}
2. 暗号化
- 転送中の暗号化:TLS(デフォルト有効)
- 保管時の暗号化:KMSキーで暗号化
3. VPCセキュリティ
- セキュリティグループでアクセスを制限
- VPCエンドポイント経由でプライベート接続
AWS公式のAmazon MSKデベロッパーガイドも併せて確認しておきましょう。
EventBridgeとの連携パターンについては、AWS EventBridgeイベント駆動ガイドも参考になります。
SESエンジニアとしてのKafka案件キャリア戦略
Kafka/ストリーミング処理のスキルを持つSESエンジニアの需要は年々増加しています。
Kafka関連SES案件の月単価相場:
| ポジション | 月単価 | 求められる経験 |
|---|---|---|
| Kafkaアプリ開発 | 65〜85万円 | Producer/Consumer実装経験 |
| MSK構築・運用 | 75〜95万円 | MSKクラスター設計・運用 |
| ストリーミングアーキテクト | 90〜120万円 | アーキテクチャ設計経験 |
| データプラットフォームエンジニア | 85〜110万円 | Kafka + DWH + ETL |
キャリアアップのロードマップ:
- Kafkaの基本概念を座学で学ぶ
- ローカル環境でKafkaクラスターを構築して実践
- MSK Serverlessで小規模な検証環境を構築
- Kafka関連のSES案件にエントリー
- ストリーミングアーキテクチャの設計経験を積む
Kinesisとの比較については、AWS Kinesisリアルタイムデータガイドで解説しています。
まとめ:MSKでリアルタイム処理を制する
Amazon MSKは、Apache Kafkaの強力なストリーミング能力をフルマネージドで利用できるサービスです。
MSK導入のチェックリスト:
- ✅ ユースケースの明確化(イベント駆動?ログ集約?CDC?)
- ✅ ServerlessかProvisionedかの選択
- ✅ VPC・サブネットのネットワーク設計
- ✅ セキュリティ設定(IAM・TLS・暗号化)
- ✅ モニタリング・アラートの構築
- ✅ パーティション設計の最適化
リアルタイムデータ処理のスキルは、2026年のSES市場で最も単価の伸びしろが大きい領域のひとつです。MSKを使いこなして、高単価案件をキャッチしましょう。