ある企業のデータエンジニアは、Amazon Redshift にホットデータ(直近3ヶ月分)を保存し、コールドデータ(3ヶ月以上前)を Amazon S3 に Parquet 形式で保存するコスト最適化アーキテクチャを設計しています。ビジネスアナリストが Redshift から SQL を使って両方のデータをシームレスにクエリできるようにしたいと考えています。データを移動・コピーすることなく最もコスト効率よく実現する方法はどれですか?
Amazon Redshift Spectrum は、Redshift クラスターにデータをロードすることなく、S3 上のデータに対して直接 SQL クエリを実行できる機能です。外部テーブルを AWS Glue Data Catalog または Hive Metastore に定義することで、Redshift のネイティブテーブルと S3 データを JOIN して利用できます。ホット/コールドの階層化アーキテクチャとの親和性が高く、データの重複を避けながら統合クエリが可能です。 選択肢A(AWS Glue ETL でロード)は、コールドデータが Redshift にも存在することになり、ストレージコストが二重に発生。 選択肢C(Athena + INSERT)は、毎回データを Redshift に移動する必要があり、リアルタイム性がなく、Spectrum に比べて効率が大幅に劣る。 選択肢D(AWS DMS)は、RDS や Oracle 等のリレーショナルデータベースから別のデータストアへの移行・レプリケーション向けであり、S3 ファイルからの継続的なレプリケーション維持には適さない。