DEA / ドメイン1 データの取り込みと変換

Amazon MSK

(Managed Streaming for ) は、オープンソースの Apache Kafka をマネージドで動かすサービスです。Kafka の とそのまま互換なので、既存の Kafka のプロデューサー、コンシューマー、Kafka Connect のコネクタを書き換えずに AWS へ移せます。DEA では、ストリーミングソースからの読み取りと、 との選び分けが出題の中心です。

Point
  • MSK = Managed Streaming for Apache Kafka の略です。
  • Kafka の用語: トピック (データの種類ごとの流れ)、パーティション (トピックを分割した並列と順序の単位)、ブローカー (データを保持するサーバー)、オフセット (パーティション内の位置)。
  • 和訳

概要

概要の図 プロデューサー トピック パーティション0 パーティション1 パーティション2 コンシューマーグループAFlink コンシューマーグループBLambda・Firehose

プロデューサーはトピックへ書き込み、メッセージはキーに応じてパーティションに振り分けられます。パーティション内では順序が保たれます。コンシューマーはコンシューマーグループ単位で読み、グループごとに独立したオフセット (どこまで読んだか) を持つため、同じトピックを複数の処理系が別々に読めます。

の用語 () の用語
ストリームトピック
パーティション
メッセージのキー
シーケンス番号オフセット
のアプリケーションコンシューマーグループ

主要技術

①クラスターの種類: プロビジョンドとサーバーレス ⚠️ 頻出

種類特徴向くケース
プロビジョンドブローカーの台数とを選ぶ。 の設定を細かく調整できる流量が大きく安定、Kafka の設定を細かく管理したい
MSK Serverless容量の見積もりと拡張をサービスが行い、に応じて課金流量が変わる、容量管理をしたくない

プロビジョンドのブローカーには、ストレージを自分で用意する Standard ブローカーと、ストレージをサービスが管理し拡張を速くした Express ブローカーがあります。Standard ブローカーでは、古いデータを安価な層へ移す階層型ストレージ (tiered storage) を使って長期の保持を安くできます。

MSK Serverless は、認証と認可に アクセス制御が必須で、Kafka の は使えません。


②可用性と保持

項目内容
ブローカーの配置複数の に分散して配置する
パーティションを複数のブローカーへ複製する (レプリケーション係数)。本番では3つの AZ と係数3が一般的
保持期間トピックごとの設定 (時間やサイズ) で決める。保持期間内ならオフセットを戻して読み直せる

コンシューマーグループのオフセットを過去に戻すと、保持期間内のデータを再処理できます (パイプラインの再現性)。


③MSK Connect

Connect は、 Connect をマネージドで動かす機能です。コネクタのワーカーの台数管理をサービスに任せられます。

コネクタの種類例
ソースコネクタDebezium で / の変更 () をトピックへ流す
シンクコネクタトピックのデータを 、 などへ書き出す

既存の Kafka Connect のコネクタ (JAR) をプラグインとして登録して使えます。


④読み取り側の AWS サービス連携

連携先使い方
イベントソースマッピングでトピックを読み、バッチで関数を呼ぶ
をソースにして などへ配信する
トピックをソースにした処理
ストリーミング取り込みでトピックをへ取り込む
ストリーミング ジョブで読み、変換して書き込む
などのスキーマを登録し、互換性を検証する

⑤認証とネットワーク

方式内容
アクセス制御IAM ポリシーでトピック単位の操作を許可。Serverless では必須
SASL/SCRAMユーザー名とパスワード。認証情報は に保管
相互 (mTLS)クライアント証明書で認証。AWS Private CA を使う
暗号化保管時は 、転送中は TLS

クラスターは 内に作ります。他の VPC や他アカウントのクライアントからは、マルチ VPC プライベート接続 () で接続できます。


⑥Kinesis Data Streams との選び分け ⚠️ 頻出

観点
AWS 独自 (、KPL、) 互換
既存資産新規に AWS ネイティブで作る既存の Kafka アプリ・コネクタを移行
容量の単位 (または自動の)ブローカーとパーティション (または Serverless)
保持期間既定 24 時間、最大 365 日トピックの設定で決める。階層型ストレージで長期保持
設定の自由度少ない (その分運用が楽)Kafka の設定を細かく調整できる
1件のサイズ最大 10 MiBKafka の設定 (既定 1 MB) で調整できる
エコシステムAWS サービスとの連携が簡単Kafka Connect、Kafka Streams などオープンソースの道具

⚠️ 頻出: 「の Kafka を、アプリケーションの変更を最小にして AWS へ移したい」は MSK です。「AWS ネイティブで、運用を最小にストリームを作りたい」は Kinesis Data Streams (オンデマンド) です。


試験対策

①判断マトリクス

問題文のキーワード選ぶ機能・サービス
既存の アプリ・コネクタをそのまま使う
Kafka を容量管理なしで使いたいMSK Serverless
Kafka の設定を細かく調整したいMSK プロビジョンド
Kafka のデータを長期間安く保持階層型ストレージ
DB の変更を Kafka のトピックへ (Debezium)MSK Connect のソースコネクタ
トピックのデータを へ、コード不要 (MSK ソース) または MSK Connect のシンクコネクタ
トピックを で低遅延に分析Redshift のストリーミング取り込み
スキーマの互換性を管理
AWS ネイティブ、運用最小

②よくある誤答

  • 互換の要件に を選ぶこと。 が違うため、アプリケーションの書き換えが必要です。
  • Serverless で Kafka の や SASL/SCRAM を使おうとすること。 アクセス制御が必須です。
  • 別のコンシューマーグループを作ると既存のグループの位置が変わると考えること。グループごとにオフセットは独立です。

参考文献

  1. ※1出題比率: AWS 公式の試験ガイドに記載された、採点対象の設問のうちその分野が占める割合です。

検索

キーワードを入力してください