AWS認定資格 WEB問題集&徹底解説

ソリューションアーキテクト – アソシエイト

Amazon Managed Streaming for Apache Kafka (Amazon MSK) の概要と試験出題ポイントは?

AWSサービスの一つであるAmazon Managed Streaming for Apache Kafka (Amazon MSK)はどんな内容なのでしょうか?また、AWS認定資格のソリューションアーキテクト-アソシエイト(SAA)に合格するためには、サービスのどんなポイントを押さえておけばよいのでしょうか?
ここでは、そんなあなたの疑問に回答していきたいと思います

Amazon MSK 徹底解説 | AWS認定試験の頻出ポイントまとめ

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. アーキテクチャおよび技術要素

  1. MSKクラスター(またはMSK Serverless)を作成→ VPC内の各AZにブローカーを配置。
  2. プロデューサーがKafkaトピックにメッセージをパブリッシュ。
  3. コンシューマー(Lambda・ECS・EC2・Kinesis Data Streams等)がトピックからメッセージを消費。
  4. 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. 設定・デプロイ手順(ハンズオン例)

  1. MSKコンソール→「クラスターを作成」→ブローカー数・インスタンスタイプ・VPC/サブネット(3AZ推奨)を設定。
  2. 認証方式(IAM/SASL-SCRAM/mTLS)を選択。
  3. クラスター作成後、ブートストラップサーバーを確認。
  4. Kafkaプロデューサー(EC2/Lambda等)からトピックにメッセージを送信。
  5. コンシューマーグループでトピックからメッセージを消費して動作確認。

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が自動起動。