🥚

AWS DEA-C01 学習メモ

2024/08/07に公開

Amazon SageMaker Data Wrangler

  • データ準備と統合を簡素化。SageMaker ML Lineage Trackingと組み合わせて、データの系統を追跡し、モデル構築プロセスの各段階でデータがどのように使用されているかを可視化できる。これにより、データ変換とモデル開発の追跡可能性と理解をサポートする。

AWS Glue

  • AWS Glueクローラー: 新しいパーティションを自動的に認識し、データカタログに追加する。更新時間にクローラーをスケジュールすることで、新しいデータを効率的にクエリに使用できる。
  • AWS Glueジョブ: 複数のソースからデータを取得、処理、変換する。ジョブとクローラーのログ記録を有効にすることで、データの変換とロードの監査証跡を保持できる。金融サービスなどの規制された環境では、データ系統を維持し、データの正確性と信頼性を確保するためには不可欠。
  • Glueスキーマレジストリ: ストリーミングデータのスキーマを保存し、さまざまなバージョンを管理。これにより、データ形式の一貫性が確保され、時間の経過に伴うデータ構造の変化による問題を防止ができる。
  • AWS Glue DataBrew: データのプロファイリング、クレンジング、正規化を視覚的に行い、データセット内の不整合や異常を自動的に検出。高品質の機械学習モデル用のデータ準備に不可欠。
  • AWS Glueのジョブブックマーク機能: ETLジョブの進行状況を追跡し、新しいデータまたは変更されたデータのみを処理することで、処理時間とコストを削減。DPU設定を調整してコストを最適化。

Amazon Redshift

  • データウェアハウス: 大規模なデータウェアハウスと分析向けに設計されている。特に大規模な履歴時系列データに対するクエリパフォーマンスを向上させるのに適している。Redshiftのマテリアライズドビューを利用することで、事前に計算された結果を保存し、月次レポートなどの繰り返しの予測可能なクエリのパフォーマンスを大幅に向上させることができる。
  • Redshiftフェデレーテッドクエリ: Amazon RDS上のPostgreSQLなどのリモートデータベースへ直接クエリできる。データを移動または複製することなく、RedshiftとPostgreSQLのデータに対してクエリを自実行できる。
  • STL_ALERT_EVENT_LOG: クエリオプティマイザーが潜在的なパフォーマンス問題を検出したクエリを識別し、クエリパフォーマンス向上の推奨事項を提供する。
  • Amazon Redshift Data API: Amazon Redshiftのテーブルに対してクエリを実行するためのAPI。SQLクエリを簡単かつプログラム的に実行でき、大規模な結果セットの管理を簡素化。
  • COPYコマンド: S3からRedshiftへの一括データロードに最適。RedshiftのMPP(パッシング並列処理)アーキテクチャを活用して高速並列ロードを実行。
  • UNLOADコマンド: RedshiftからS3へのデータエクスポート用に設計されており、並列アンロードを実行し、データ転送中の暗号化をサポート。
  • Redshift Serverless: クエリ量に応じて自動スケーリングされるため、アクティブなリソース管理が不要。
  • Redshift Spectrum: Redshiftを介してS3データをクエリできる。

Amazon RDSとPostGIS

  • Amazon RDSはPostgreSQLをサポートしており、PostGIS拡張機能を使用して空間オブジェクトと地理オブジェクトを追加できる。これにより、複雑な空間クエリを効率的に実行でき、大量の地理空間データを処理する企業に適している。

Amazon S3

  • S3のパーティション分割とParquet形式: データを一般的なクエリディメンション(例:日付、ソース)でパーティション分割し、Apache Parquetなどの効率的な列形式に変換。これにより、クエリパフォーマンスが向上し、Amazon Athenaでのクエリコストが削減。
  • Amazon S3オブジェクトLambda: Lambda関数を使用してS3オブジェクトのデータにカスタム処理を追加できる。動的なデータ変換を実行し、複数のデータコピーを維持する必要がない。

Amazon Athena

  • Athena Workgroups: 部門ごとのクエリコストを管理・監視するのに最適なアプローチ。各ワークグループは、部門ごとに予算制約に合わせたコスト制御とクエリ使用制限の設定が可能。
  • AthenaのCTAS: Create Table As Select機能を使用して、Athena内でデータ形式をオンザフライで変換。これにより、CSVをParquetに効率的に変換し、迅速な分析を実行できる。
  • MSCK REPAIR TABLEコマンド: AWS AthenaでMSCK REPAIR TABLEコマンドを使用し、新しいパーティションを検出してAthenaテーブルメタデータに追加する。これは、新しいパーティションをAthenaでクエリ可能にするために使用する。
  • Athenaのクエリ結果再利用機能: データスキャンの冗長を削減し、クエリに関連するコストを節約。
  • AthenaでのApache Spark: Spark対応のワークグループを作成し、ノートブックを使用して高度なデータ分析を実行。

AWS Batch

  • バッチコンピューティングのワークロードを簡素化。適切な量と種類のコンピューティングリソースを自動的にプロビジョニングし、複雑なワークフローを調整するためにAWS Step Functionsと統合できる。Amazon S3は、入力データ用の信頼性の高いストレージソリューションとして機能する。

AWS Lake Formation

  • 複数のAWS分析サービスにわたる権限を一元管理し、データアクセスポリシーを定義・適用する。これにより、セキュリティが簡素化され、きめ細かいアクセス制御が可能。
  • Lake Formationのデータフィルター: 行レベルのアクセス制御を提供し、ユーザーに表示されるデータ行を条件で指定が可能。これにより、機密性の高いデータへのアクセスを制限し、必要なデータのみにアクセスできる。
  • Lake Formationのデータ共有機能: データレイク内のデータセキュリティとアクセス管理を提供し、きめ細かいアクセス制御を設定できる。異なるAWSアカウント間や外部組織とのデータ共有を簡素化し、安全に実行できる。

AWS Key Management Service (KMS)

  • データ暗号化: データ暗号化キーを簡単に作成・制御するマネージドサービスで、S3やRedshiftなどと統合され、HIPAAの要件に準拠している。

AWS OrganizationsとService Control Policies (SCP)

  • 組織全体の権限管理: SCPは、アカウント間アクセスの方法ではなく、組織内のすべてのアカウントで利用可能な最大の権限を集中的に制御する。

Amazon Macie

  • 機械学習とパターンマッチングを使用してAWS内のPIIなどの機密データを検出・保護。MacieとLake Formationの統合により、PIIデータへのアクセス管理とガバナンスが強化される。

その他のサービス

  • クロスアカウントIAMロール: 複数アカウント間のリソースアクセスを許可するための一般的かつ安全な方法。
  • AWS Resource Access Manager (RAM): アカウント間でリソースを共有するために使用する。
  • AWS Certificate Manager: SSL/TLS証明書の管理に使用され、S3やRedshiftの暗号化キー管理には使用されない。
  • AWS CloudHSM: クラウド内でキーの生成と保存を行うハードウェアセキュリティモジュールを提供する。高セキュリティですが、KMSよりも複雑でコストがかかる。
  • AWS Systems Managerパラメータストア: 機密性のない構成データと機密情報を一元管理。使いやすさと統合機能が優れており、コスト効率が高い。

データの取り込みと変換

  • AWS CodePipeline: ビルド、テスト、デプロイメントなどの複数ステージを含むワークフローのオーケストレーションに最適。GitHubと統合し、AWS CodeBuildを利用してビルドとテストを行える。条件ベースのデプロイメントもサポート。
  • Lambda関数のDynamoDBストリームトリガー: バッチサイズ設定を調整して、呼び出しごとに処理されるレコード数を最適化。これにより、データバースト処理が効率化され、ピーク時のデータフロー管理が改善。
  • Amazon Managed Service for Apache Flink: 高スループットでステートフルなストリーム処理を必要とする複雑なアプリケーション向けに設計され、継続的なSQLクエリやリアルタイムの複雑なイベント処理に適している。
  • Amazon AppFlow: AWSサービスとSaaSアプリケーション間のデータ転送を簡素化するが、大量のRDSデータベースデータの転送には通常使用されない。
  • DynamoDBグローバルテーブル: 低レイテンシー、高可用性、リージョン間レプリケーションを提供し、ショッピングカートデータなどのステートフルトランザクションに最適。
  • AWS LambdaとAmazon Kinesis Data Firehoseの組み合わせ: Lambdaのサーバーレス実行モデルとKinesis Data Firehoseのストリーミングデータキャプチャ、変換、ロード機能を利用して、イベントログなどの大量のステートレストランザクションを処理する。
  • VPN接続: オンプレミス環境とAWSクラウド間の安全なトンネルを提供し、SSL暗号化によるJDBCを使用してSQL Serverとのデータ転送をさらに安全にする。
  • Lambda関数とAmazon EFS: Lambda関数をEFSにアクセスするように設定し、永続的なストレージを提供して中間データや状態データを保持。
  • Sparkのブロードキャスト結合: 小さなDataFrameをすべてのワーカーノードにブロードキャストしてメモリ内で使用し、シャッフル操作を削減してプロセスを高速化。
  • Amazon EKS: GPUベースのEC2インスタンスなどのカスタマイズ可能なコンピューティングリソースを提供し、Horizontal Pod Autoscalingを備えたEKSでパフォーマンス最適化と応答性の高いスケーリングを実現。
  • AWS CloudWatchによるAWS Glueジョブメトリクスの監視: 変換の問題をトラブルシューティングし、非効率的な処理やデータ流出の問題を特定。
  • Amazon S3に保存されたAWS Glueジョブログの分析: スクリプトエラーやデータ不整合を特定するためにエラーメッセージや警告を探し、変換エラーを検出。
  • ETLスクリプトのリファクタリング: シャッフル操作を最小限に抑え、データパーティション分割戦略を強化することでパフォーマンス低下の根本原因に対処。

Discussion