Amazon Web Services ブログ

持続可能性の為のモダンデータアーキテクチャ最適化 : 第一部 – データ取り込みとデータレイク

このブログは Sam Mokhtari, Dr. Ali Khoshkbar, Sandipan Bhaumik によって執筆された内容を翻訳したものです。原文はこちらを参照して下さい。

AWS のモダンデータアーキテクチャは、データレイクと専用のデータサービスを統合して、分析ワークロードを効率的に構築することに重点を置いています。これにより、大規模でもスピードと俊敏性が得られます。適切なサービスを適切な目的に使用すると、パフォーマンスが向上するだけでなく、リソースの適切な利用が容易になります。AWS のモダンデータ分析リファレンスアーキテクチャおよび図 1 を参照してください。

この 2 つのブログシリーズでは、AWS Well-Architected Framework持続可能性の柱による、モダンデータアーキテクチャを持続可能性の観点で最適化するガイダンスを取り上げます。クラウドにおける持続可能性は、主にワークロードのすべてのコンポーネントにわたるエネルギー削減と効率化に焦点を当てた継続的な取り組みです。これにより、プロビジョニングされたリソースを最大限に活用し、必要なリソースの総量を最小限に抑えることができます。

モダンデータアーキテクチャには、1) データ取り込み、2) データレイク、3) 統合データガバナンス、4) データ移動、5) 目的別分析という 5 つの柱または機能が含まれています。このブログシリーズの第一部では、モダンデータアーキテクチャにおけるデータ取り込みとデータレイクの柱に焦点を当てます。リソースを最小限に抑え、使用率を向上させるのに役立つヒントとベストプラクティスについて説明します。


図 1. AWS のモダンデータ分析リファレンスアーキテクチャ

1. データの取り込み

モダンデータアーキテクチャにおけるデータ取り込みプロセスは、大きくバッチ取り込みモードとリアルタイム取り込みモードの 2 つのカテゴリに分類できます。

データ取り込みプロセスを改善するには、以下のベストプラクティスをご覧ください。

不要なデータ取り込みを回避する

ビジネスニーズから逆算し、必要かつ適切なデータセットを確定します。AWS Data Exchange または Open Data on AWS で公開されている既存のデータセットを使用して、ソースシステムからデータを取り込む必要がないかどうかを評価します。クリーンアップされキュレーションされたこれらのデータセットを使用すると、このデータを取り込むために必要なコンピューティングリソースとストレージリソースが重複することを避けることができます。

取り込む前にデータサイズを削減する

データ取り込みパイプラインを設計するときは、圧縮、フィルタリング、集計などの戦略にて、取り込むデータのサイズを小さくします。これにより、小さいサイズのデータをネットワーク経由で転送し、データレイクに保存できるようになります。

データベースなどのデータソースからデータを抽出して取り込むには、完全抽出の代わりにチェンジデータキャプチャ (CDC) または日付範囲の戦略を使用します。AWS Database Migration Service (DMS) 変換ルールを使用して、(スキーマから) テーブルと (ワイドテーブルなどから) 列を選択して取り込み対象に含めたり除外したりします。

イベント駆動型のサーバーレスデータ取り込みを検討する

データ取り込みにはイベント駆動型のサーバーレスアーキテクチャを採用し、作業が必要なときにのみリソースをプロビジョニングします。たとえば、データの取り込みと前処理に AWS Glue jobs AWS Step Functions を使用する場合、インフラストラクチャ最適化の責任と作業は AWS に引き継がれます。

2. データレイク

Amazon Simple Storage Service (S3) は、お客様がデータレイクの基盤として、さまざまなユースケースのあらゆるタイプのデータを保存するために使用するオブジェクトストレージサービスです。Amazon S3 のデータレイクを最適化するには、以下のベストプラクティスに従ってください。

データ特性を理解する

ワークロードデータの特性、要件、アクセスパターンを理解して、適切なストレージ階層を最適に選択してください。主な特性に基づいて、データを図 2 に示すカテゴリに分類できます。


図 2. データ特性

持続可能なストレージオプションを採用する

ワークロードデータの特性に基づいて、適切なストレージ階層を使用して、ワークロードによる環境への影響を軽減します (図 3 を参照)。


図 3. Amazon S3 でのストレージ階層化

持続可能性の目標に合わせたデータライフサイクルポリシーを導入する

データ分類情報に基づいて、データをよりエネルギー効率の高いストレージに移動したり、安全に削除する事ができます。Amazon S3 ライフサイクルポリシーを使用して、すべてのデータのライフサイクルを自動的に管理します。

Amazon S3 Storage Lens は、ストレージの使用状況やアクティビティの傾向を可視化し、改善のための推奨事項も提示します。この情報を使用して、S3 に情報を保存することによる環境への影響を軽減できます。

効率的なファイル形式と圧縮アルゴリズムを選択する

Parquet などの効率的なファイル形式を使用します。Parquet は、列指向のフォーマットにより柔軟な圧縮オプションとエンコードスキームを提供します。Parquet では、関連性のないデータをスキップできるため、より効率的な集計クエリも可能になります。効率的な方法でデータを保存し、データにアクセスすることで、より少ないリソースでより高いパフォーマンスを実現できます。

データを圧縮してストレージサイズを小さくします。圧縮レベル (ディスクに保存されるストレージ) と、圧縮および解凍に必要な計算負荷をトレードオフする必要があることに注意してください。適切な圧縮アルゴリズムを選択することも有益です。たとえば、ZStandard (zstd)LZ4GZip よりも圧縮率が優れています。

データパーティショニングとバケット化を使用する

パーティショニングとバケット化によってデータが分割され、関連するデータがまとめられます。これにより、クエリごとにスキャンされるデータ量を減らすことができます。つまり、ワークロードの処理に必要なコンピューティングリソースも少なくて済みます。

環境の持続可能性の為の改善追跡と評価

持続可能性に向けたワークロードの最適化の成功を顧客が評価する最良の方法は、プロキシメトリクスと作業単位の KPI を使用することです。ストレージの場合は 1 トランザクションあたり GB 、コンピューティングの場合は 1 トランザクションあたり vCPU 分です。プロキシメトリクスにてワークロードを最適化してエネルギー効率を高めるには、Sustainability Well-Architected Lab の Turning Cost & Usage Reports into Efficiency Reports をお読みください。

テーブル 1 には、具体的な改善点を測定するためのプロキシメトリクスとして使用する特定のメトリクスをリストしています。これらは、この記事で取り上げたモダンデータアーキテクチャの各柱に該当します。これはすべてを網羅したリストではなく、他にもさまざまなメトリクスを使用して非効率な点を見つけることができます。1 つのメトリクスを追跡するだけでは、持続可能性への影響を説明できない場合があることに注意してください。メトリクスをデータ、属性のタイプ、ワークロードのタイプ、その他の特性と組み合わせて分析してみましょう。

メトリクス
データの取り込み
データレイク

テーブル 1. モダンデータアーキテクチャの柱となるメトリクス

まとめ

この投稿では、モダンデータアーキテクチャにおけるデータ取り込みとデータレイクの柱が環境へ与える影響を軽減するのに役立つガイダンスとベストプラクティスを提供しました。

第二部では、統合ガバナンス、データ移動、目的に応じた分析とインサイトの柱となる持続可能性のベストプラクティスについて説明します。

参考資料:

Sam Mokhtari

Sam Mokhtari

Sam Mokhtari 博士は、AWS Well-Architected Framework の持続可能性の柱を主導しています。彼の主な専門分野はデータと分析であり、この分野で 30 以上の影響力のある記事を発表しています。

Dr. Ali Khoshkbar

Dr. Ali Khoshkbar

Ali Khoshkbar 博士は、アマゾンウェブサービス (AWS) プロフェッショナルサービスのシニアクラウドアーキテクトです。彼は、顧客がクラウド上でスケーラブルで高性能なデータ分析ソリューションを構築できるよう支援することに情熱を注いでいます。

Sandipan Bhaumik

Sandipan Bhaumik

Sandipan Bhaumik は、ロンドンを拠点とするシニア分析スペシャリストソリューションアーキテクトです。彼は、クラウド内に最新のデータアーキテクチャを構築して大規模な分析を実行することで、顧客が従来のデータプラットフォームを最新化できるよう支援しています。

このブログは、ソリューションアーキテクトの福田哲也が翻訳しました。