AWS認定資格 WEB問題集&徹底解説
ソリューションアーキテクト – アソシエイト
AWSサービスの一つであるAmazon Managed Streaming for Apache Kafka (Amazon MSK)はどんな内容なのでしょうか?また、AWS認定資格のソリューションアーキテクト-アソシエイト(SAA)に合格するためには、サービスのどんなポイントを押さえておけばよいのでしょうか?
ここでは、そんなあなたの疑問に回答していきたいと思います
1. サービス概要
Amazon MSK(Managed Streaming for Apache Kafka)は、Apache Kafkaをフルマネージドで提供するサービスです。Kafkaブローカーのプロビジョニング・設定・パッチ適用・障害復旧・スケーリングをAWSが管理するため、Kafkaのアプリケーション開発に集中できます。
リアルタイムストリーミング処理・ログ集約・イベント駆動アーキテクチャ・データパイプラインなど、高スループットで低レイテンシのメッセージストリーミングが必要なユースケースに最適です。
2. 主な特徴と機能
2.1 Apache Kafka互換
標準のApache Kafka APIと完全互換。既存のKafkaアプリケーション・クライアントライブラリ・ツール(Kafka CLI・Kafka Streams・ksqlDB等)をそのまま利用できます。
2.2 MSK Serverless
キャパシティ管理不要のサーバーレスオプション。プロデューサー/コンシューマーのスループットに応じてブローカーが自動スケール。ブローカー設定不要で迅速に開始可能。
2.3 MSK Connect
Apache Kafka Connectをマネージドで実行するサービス。S3・DynamoDB・Redshift・OpenSearch等へのデータ統合をコネクター(Source/Sink)で簡単に構築。
2.4 MSK Replicator
クロスリージョン・クロスクラスターのKafkaトピックレプリケーションをマネージドで提供。ディザスタリカバリやマルチリージョンアーキテクチャに活用。
2.5 ブローカー構成
- 複数AZにKafkaブローカーを分散配置(推奨: 3AZ構成)。
- ブローカー数・インスタンスタイプ・EBSストレージを設定。
- EBS自動スケーリングでディスク使用量に応じてストレージを自動拡張可能。
2.6 Kafka概念
- Topic: メッセージを分類する論理チャネル。
- Partition: トピックを並列処理するための分割単位。パーティション数がスループットと並列度を決定。
- レプリケーションファクター: メッセージの複製数。高可用性のため3以上推奨。
- Consumer Group: 複数コンシューマーが協調してトピックを分散処理。
3. アーキテクチャおよび技術要素
- MSKクラスター(またはMSK Serverless)を作成→ VPC内の各AZにブローカーを配置。
- プロデューサーがKafkaトピックにメッセージをパブリッシュ。
- コンシューマー(Lambda・ECS・EC2・Kinesis Data Streams等)がトピックからメッセージを消費。
- MSK ConnectでS3・OpenSearch等へのデータ統合を実現。
Lambda統合: MSKをLambdaのイベントソースとして設定→ Kafkaメッセージが自動的にLambdaをトリガー(Event Source Mapping)。
4. セキュリティと認証・認可
- IAM認証(IAM Access Control): IAMポリシーでKafkaトピックへのアクセスを制御(推奨)。
- mTLS(相互TLS): クライアント証明書による認証。ACM Private CA連携。
- SASL/SCRAM: Secrets Managerに保存した認証情報によるKafka認証。
- 保存時の暗号化: KMSによるブローカーストレージの暗号化。
- 転送時の暗号化: TLSによるクライアント-ブローカー間の通信暗号化。
5. 料金形態
- ブローカーインスタンス: インスタンスタイプ × 稼働時間で課金。
- EBSストレージ: GB/月で課金。
- MSK Serverless: パーティション時間・データ転送量で課金。
- MSK Connect: Worker(コネクター実行単位)の稼働時間で課金。
6. よくあるアーキテクチャ・設計パターン
- リアルタイムデータパイプライン: アプリ → MSK → Lambda/Flink/Spark Streaming でリアルタイム処理 → S3/Redshift/OpenSearch に格納。
- ログ集約: 複数サービスのログをMSKに集約→ MSK ConnectでS3/OpenSearchに転送して分析。
- イベント駆動マイクロサービス: サービス間の非同期通信にKafkaトピックを使用→ Consumer Groupで複数サービスが同一イベントを独立して処理。
7. 設定・デプロイ手順(ハンズオン例)
- MSKコンソール→「クラスターを作成」→ブローカー数・インスタンスタイプ・VPC/サブネット(3AZ推奨)を設定。
- 認証方式(IAM/SASL-SCRAM/mTLS)を選択。
- クラスター作成後、ブートストラップサーバーを確認。
- Kafkaプロデューサー(EC2/Lambda等)からトピックにメッセージを送信。
- コンシューマーグループでトピックからメッセージを消費して動作確認。
8. 試験で問われやすいポイント
8.1 MSKの役割
- Q: Apache KafkaをAWSでマネージドに利用するサービスは?
A: Amazon MSK(Managed Streaming for Apache Kafka)。Kafkaブローカーの管理をAWSに委任し、Kafka APIと完全互換。
8.2 KinesisとMSKの使い分け
- Q: Amazon KinesisとAmazon MSKの使い分けは?
A: Kinesis Data Streams = AWSネイティブ・サーバーレス・管理不要(新規開発向け)。MSK = Apache Kafka互換・既存Kafkaワークロード移行・Kafkaエコシステム(Kafka Connect/Streams等)が必要な場合。
8.3 MSK Serverless
- Q: Kafkaブローカーのキャパシティ管理を自動化するには?
A: MSK Serverlessを使用(スループットに応じて自動スケール・ブローカー設定不要)。
8.4 Lambda統合
- Q: MSKのKafkaメッセージでLambdaを自動トリガーするには?
A: MSKをLambdaのEvent Source Mappingに設定→ Kafkaトピックにメッセージが届くとLambdaが自動起動。