1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

手を動かして学ぶ!KafkaとPythonによるAWSストリーミングデータ分析入門【30日チャレンジ】 - 10日目: Amazon MSKクラスターを実際に作成してみよう

Last updated at Posted at 2025-08-14

はじめに

「手を動かして学ぶ!KafkaとPythonによるAWSストリーミングデータ分析入門【30日チャレンジ】」10日目です。昨日は、AWSリソースへのアクセスを安全に管理するためのIAMロールを作成しました。

今日は、いよいよAWS上でAmazon MSKクラスターを実際に作成していきます。これにより、ローカル環境で動かしていたKafkaをAWSのマネージドサービスに置き換え、本番運用に耐えうるデータ基盤の第一歩を踏み出します。


1. MSKクラスター作成の前に

MSKクラスターを作成するには、いくつかの前提条件があります。

  1. VPC (Virtual Private Cloud): MSKクラスターは特定のVPC内に作成されます。今回はデフォルトのVPCを使用しても構いませんが、本番環境では専用のVPCを作成することが推奨されます。
  2. IAMロール: 昨日の記事で作成したEC2がMSKにアクセスするためのIAMロール(KafkaClientEC2Roleなど)が必要です。

今回は、これらの設定が完了していることを前提として進めます。


2. Amazon MSKクラスターを作成する

AWSマネジメントコンソールにログインし、「MSK」と検索してサービスを開きます。

ステップ1:クラスターの作成開始

MSKダッシュボードで「クラスターを作成」をクリックします。

ステップ2:作成方法の選択

「クラスター作成方法」で「クイック作成」を選択します。これは、最低限の設定で手軽にクラスターを作成できるモードです。本番環境では「カスタム作成」で詳細な設定を行いますが、今回は学習のためクイック作成を選びます。

ステップ3:クラスター設定

以下の項目を設定します。

  • クラスター名: kafka-challenge-clusterなど、わかりやすい名前を付けます。
  • クラスターバージョン: 「Apache Kafka version 3.6.1」 を選択します。これは、最新のKRaftモードをサポートしているバージョンです。
  • ブローカータイプ: kafka.t3.smallを選択します。これは開発・テスト用の最も小さなインスタンスタイプです。
  • ブローカー数: 「2」を選択します。これにより、2つの異なるアベイラビリティゾーンにブローカーが配置され、高い可用性が確保されます。
  • VPC: デフォルトのVPCを選択します。
  • サブネット: デフォルトVPC内の異なる2つのサブネット(例:ap-northeast-1aap-northeast-1c)を選択します。

設定を終えたら、「クラスターを作成」をクリックします。

ステップ4:クラスターの起動

クラスターの作成には15〜20分程度かかります。ステータスが「Creating」から「Active」に変わるまで待ちましょう。


3. ブローカーエンドポイントの確認

クラスターがアクティブになったら、Pythonクライアントから接続するためにブローカーエンドポイントを確認する必要があります。

  1. 作成したクラスター名(kafka-challenge-cluster)をクリックします。
  2. 「クラスター概要」の「ブローカーのプロパティ」セクションに、「ブートストラップブローカー」という項目があります。ここに表示されている文字列が、Kafkaクライアントが接続するためのエンドポイントです。
b-1.kafka-challenge-cluster.<some_id>.c1.kafka.ap-northeast-1.amazonaws.com:9092,b-2.kafka-challenge-cluster.<some_id>.c1.kafka.ap-northeast-1.amazonaws.com:9092

このエンドポイントをコピーしておきましょう。今後の記事で、このエンドポイントを使ってEC2インスタンスからMSKに接続します。


4. セキュリティグループの設定

最後に、MSKクラスターへのアクセスを許可するセキュリティグループを設定します。デフォルトでは、同じVPC内であっても外部からのアクセスは許可されていません。

  1. MSKクラスターの画面で「ネットワーク」タブに移動します。
  2. 「セキュリティグループ」のリンクをクリックして、クラスターに紐づいたセキュリティグループの設定画面を開きます。
  3. 「インバウンドのルール」タブを選択し、「インバウンドのルールを編集」をクリックします。
  4. 「ルールを追加」をクリックし、以下の設定を追加します。
    • タイプ: 「カスタムTCP」
    • ポート範囲: 9092
    • ソース: 今回はEC2インスタンスからアクセスするため、EC2インスタンスにアタッチする予定のセキュリティグループIDを指定します。これにより、特定のEC2インスタンスからの通信のみを許可します。学習のためであれば、「0.0.0.0/0」を指定してすべてのIPアドレスからのアクセスを許可しても良いですが、本番環境では絶対に行わないでください。
  5. 「ルールを保存」をクリックします。

これで、EC2インスタンスがMSKクラスターに安全に接続するためのネットワーク設定が完了しました。


まとめと次回予告

今日は、AWS上でAmazon MSKクラスターを実際に作成しました。これにより、ローカル環境での学習から一歩進み、本番環境を見据えたデータ基盤を構築する準備が整いました。

明日は、このMSKクラスターに接続するためのEC2インスタンスを準備し、Pythonアプリケーションをデプロイします。

11日目: VPCとセキュリティグループを設計してMSKへの接続を許可

お楽しみに!

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?