type
status
date
slug
summary
tags
category
icon
password
理論
データ処理と変換の本質的知識:AWSを活用するための基本原理
比較: EMR vs Glue
特徴 | Amazon EMR | AWS Glue |
主な用途 | ビッグデータ処理、カスタム分析 | ETL、データ統合と変換 |
運用負荷 | 高い(クラスター管理が必要) | 低い(完全にマネージド) |
スケーリング | 手動または自動でノードをスケール可能 | 自動スケーリング |
適応データ量 | 超大規模データ | 小規模から中規模データ |
コスト効率 | 長時間処理が必要な場合に適している | 短時間処理に適している |
柔軟性 | カスタム処理や特殊フレームワークに最適 | コードレスで簡単なETL処理に最適 |
2. AWSサービス選定の基本
AWSは複数のサービスを提供していますが、それぞれの目的と特徴に応じて適材適所で選択する必要があります。
- 小規模・リアルタイム処理:
- AWS Lambda: 短時間で軽量なタスクに最適。トリガーベースで自動実行。
- 大規模・バッチ処理:
- AWS Glue: ETL(抽出、変換、ロード)に特化し、大量データに対応。
- Amazon EMR: 分散処理(Hadoop、Spark)を使用して高度なデータ変換。
- 非同期メッセージ処理:
- Amazon SQS: データを一時保管して非同期処理を実現。
- Amazon SNS: 通知を複数のターゲットに配信可能(リアルタイム性が求められる場合に使用)。
- データストレージと変換:
- Amazon S3: データの保存とトリガーイベントの発生源。
- Athena: データクエリとオンデマンド分析。
3. データ処理で重要な概念
- データ脱敏化(マスキング):
- セキュリティとプライバシーを保護するため、機密情報を隠蔽する技術。
- 例: クレジットカード番号の一部を「****-1234」とする。
- データ変換:
- 形式変換(例: CSV → JSON)。
- 不要フィールドの削除や、必要なフィールドの統合。
- 拡張性:
- データ量が増加しても、システムが適切に対応できる設計。
4. この知識が問題にどう応用されるか
- 要件の分解:
- データを受け取る、処理する、保存する各ステップを明確に定義。
- 処理の柔軟性(新しいデータ形式への対応)を確保。
- 最小限の運用負荷:
- AWSのマネージドサービス(Glue、Lambda、S3)を活用し、自動化と運用負担の軽減を目指す。
- 安全性と規制遵守:
- PANデータをマスキングし、適切な保存形式(JSON)に変換。
AWSサービスの選択と活用方法を理解することで、柔軟かつスケーラブルなデータ処理パイプラインを構築できます。この知識が、問題解決の鍵となります。
実践
略
一問道場
質問 #147
ある金融サービス会社は、クレジットカードサービス提供パートナーから定期的にデータフィードを受け取っています。約5,000件のレコードが15分ごとに平文で送信され、HTTPSを介して直接Amazon S3バケットに格納され、サーバーサイド暗号化が施されています。このフィードには、センシティブなクレジットカードの主アカウント番号(PAN)データが含まれています。同社は、別のS3バケットにデータを送信する前に、自動的にPANをマスクする必要があります。また、特定のフィールドを削除し、マージした後、レコードをJSON形式に変換する必要があります。さらに、将来的に追加のフィードが加わる可能性があるため、設計は容易に拡張できる必要があります。
どのソリューションがこれらの要件を満たすか?
A. ファイル配信時にAWS Lambda関数を呼び出して各レコードを抽出し、それをAmazon SQSキューに書き込む。新しいメッセージがSQSキューに到着すると、別のLambda関数を呼び出してレコードを処理し、その結果をAmazon S3の一時的な場所に書き込む。SQSキューが空になったら、最終的なLambda関数を呼び出してレコードをJSON形式に変換し、結果を別のS3バケットに送信して内部処理を行う。
B. ファイル配信時にAWS Lambda関数を呼び出して各レコードを抽出し、それをAmazon SQSキューに書き込む。AWS Fargateコンテナアプリケーションを設定し、SQSキューにメッセージが含まれているときに自動的に単一インスタンスにスケールアップする。アプリケーションは各レコードを処理し、JSON形式に変換する。キューが空になったら、結果を別のS3バケットに送信して内部処理を行い、AWS Fargateインスタンスをスケールダウンする。
C. AWS Glueクロウラーを作成し、データフィード形式に基づくカスタム分類器を作成して、データ定義を一致させる。ファイル配信時にAWS Lambda関数を呼び出して、AWS Glue ETLジョブを開始し、全レコードを処理および変換して必要な処理を行う。出力形式をJSONとして定義する。完了後、ETLジョブは結果を別のS3バケットに送信して内部処理を行う。
D. AWS Glueクロウラーを作成し、データフィード形式に基づくカスタム分類器を作成して、データ定義を一致させる。ファイル配信時にAmazon Athenaクエリを実行して、Amazon EMR ETLジョブを開始し、全レコードを処理および変換して必要な処理を行う。出力形式をJSONとして定義する。完了後、結果を別のS3バケットに送信して内部処理を行い、EMRクラスターをスケールダウンする。
解説
問題の解説:AWSを使ったデータ処理システムの設計
問題の背景
- シナリオ: 金融サービス会社が定期的に受け取るクレジットカードデータ(PAN情報を含む)を、適切にマスキング・変換し、内部処理のために別のS3バケットに保存したい。
- 要件:
- PANデータをマスキングしてプライバシーを保護。
- 不要なフィールドを削除し、必要なフィールドを統合。
- データ形式をJSONに変換。
- 将来、新しいデータフィードにも対応できる柔軟性。
各選択肢の分析
- 選択肢A: Lambda + SQS を使った段階的なデータ処理
- Lambda を使用して処理のトリガーを管理し、SQS で非同期メッセージ処理を実現。
- メッセージがキューに格納されるたびにデータを処理し、最終的な結果をS3に保存。
- メリット:
- 非同期処理でスケーラブル。
- 各段階を独立して管理可能。
- デメリット:
- 処理ステップが複雑化。
- 運用管理が煩雑になる可能性。
- 選択肢B: Lambda + Fargate を利用したスケール可能な処理
- Fargate を活用してスケール可能なコンテナベースのデータ処理を実現。
- Lambda がトリガーとなり、Fargate インスタンスが必要に応じてスケール。
- メリット:
- スケールに優れ、大量データにも対応可能。
- デメリット:
- Fargate のセットアップやコストが発生。
- 選択肢C: Glueを利用したETL処理
- Glue を使ってデータをETL処理(抽出・変換・保存)し、JSON形式でS3に保存。
- メリット:
- Glue はフルマネージドで運用負担が少ない。
- 将来的なデータフォーマットの変更にも柔軟に対応可能。
- ETLジョブで複雑な処理を一括管理。
- デメリット:
- Glue のセットアップがやや複雑。
- 選択肢D: Glue + EMRを利用したETL処理
- Glue を使ってデータを定義し、EMRで変換処理を実行。
- メリット:
- 大量データを効率的に処理可能。
- デメリット:
- EMR クラスターのセットアップとスケーリングが必要。
- 運用負担が増加。
最適な選択肢
- 選択肢C: AWS Glueを利用したETL処理
- 理由:
- 運用負荷が最小限: フルマネージドサービスで手動作業を削減。
- 柔軟性が高い: データフォーマットの変更や新しいフィードにも対応可能。
- 要件に最適: 複雑な変換処理をGlueジョブで一括実行し、データをJSON形式でS3に保存。
補足知識
- Glue ETLとは:
- AWS GlueはETL(抽出・変換・ロード)作業を簡素化するためのマネージドサービス。
- 複数のデータソースからデータを取り込み、統合、変換、保存が可能。
- ETLの利点:
- データ処理を自動化。
- コードレスで柔軟な変換ルールを定義可能。
- 将来対応:
- Glueのスクリプトを更新することで、新しいデータフィードや要件にも柔軟に対応可能。
この選択肢は、規模の拡大や新しい要件への適応を考慮した最も効果的な解決策です。
- 作者:みなみ
- 链接:https://tangly1024.com/資格勉強/16fd7ae8-88e2-804e-969a-e7bf6b171e69
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章