AWS認定資格 WEB問題集&徹底解説

データエンジニア-アソシエイト

正解 A問題
分野2:データストアの管理 タスクステートメント2.1:データストアの選択
合格に向けて、もっと深く学習する
豊富な問題と詳細なAWSサービス解説を、24時間無料でお試しいただけます
プレミアム会員機能を無料で試す ❯
問題文と選択肢
ある通信キャリアは、5年分の通話明細記録(CDR)を Amazon Redshift クラスターに保持しています。直近3か月分のデータは日次のダッシュボードで頻繁に参照される一方、それより古いデータはコンプライアンス上保持が必須なものの、参照されるのは監査時のみです。データエンジニアは、クエリパフォーマンスとストレージコストのバランスを取れる構成を検討しています。

この要件を最も効果的に満たす方法はどれですか。
  • RA3 ノードタイプのマネージドストレージを採用し、古いパーティションは Redshift Spectrum 経由で S3 上のデータとして参照しつつ、直近3か月分のみをクラスタ内に保持する
  • すべてのデータを DC2 ノードのクラスタ内に保持したまま、VACUUM DELETE ONLY と ANALYZE を頻繁に実行してスキャン性能を維持する
  • 古いデータを Amazon S3 Glacier Flexible Retrieval に移し、直近3か月分は DS2 ノードのクラスタに保持する
  • 古いデータを Amazon RDS for PostgreSQL にエクスポートしてアーカイブし、直近3か月分のみ Redshift に保持する
解説 頻出度★★★★
この問題は、「ホットデータは高速に × コールドデータは保持だけ × ストレージコストを抑える」というアクセス頻度の二極化に対し、RA3 のマネージドストレージ+Redshift Spectrum によるホット/コールド分離を選べるかがポイント
正解

A. RA3 ノードタイプのマネージドストレージを採用し、古いパーティションは Redshift Spectrum 経由で S3 上のデータとして参照しつつ、直近3か月分のみをクラスタ内に保持する

RA3 ノードタイプはコンピューティングとストレージを分離し、実際に使った分だけ課金される Redshift マネージドストレージ (RMS) を利用します。頻繁に使うデータはローカルの SSD にキャッシュされるため、直近 3 か月分のダッシュボードクエリは高速に処理できます。

参照が監査時のみの古いデータは S3 にアンロードし、Redshift Spectrum の外部テーブルとして参照します。S3 の安価なストレージ料金で保持でき、必要になったときはクラスターと同じ SQL で問い合わせられるため、コンプライアンス上の保持義務も満たせます。

クラスター内に置くデータ量を直近分だけに絞ることでノード数(=コンピューティングコスト)も抑えられ、パフォーマンスとコストのバランスという要件に最も合致します。

B. すべてのデータを DC2 ノードのクラスタ内に保持したまま、VACUUM DELETE ONLY と ANALYZE を頻繁に実行してスキャン性能を維持する

DC2 ノードはローカル SSD の容量とコンピューティングが一体で、容量を増やすにはノードを追加するしかありません。5 年分の CDR をすべてクラスター内に保持し続ける構成は、ほとんど参照されないデータのために高価な DWH ストレージを買い続けることになります。

VACUUM や ANALYZE はテーブルの再ソートと統計情報の更新でクエリ性能を保つ運用作業であり、ストレージコストは 1 円も下がりません。要件の半分(コスト)に答えていません。

C. 古いデータを Amazon S3 Glacier Flexible Retrieval に移し、直近3か月分は DS2 ノードのクラスタに保持する

Amazon S3 Glacier Flexible Retrieval は最安クラスのアーカイブですが、取り出しに数分〜数時間かかり、その場でクエリすることができません。監査時に SQL で参照したいという用途では、復元手順を挟む分だけ運用が重くなります。

さらに DS2 は旧世代の HDD ベースのノードタイプで、現在は RA3 への移行が推奨されています。新規構成の答えとしては選べません。

D. 古いデータを Amazon RDS for PostgreSQL にエクスポートしてアーカイブし、直近3か月分のみ Redshift に保持する

Amazon RDS for PostgreSQL は OLTP 向けの行指向データベースで、大量の履歴データのアーカイブ先としては割高です。しかも常時稼働するインスタンス料金とストレージ料金が発生し続けます。

アーカイブ目的なら S3 が圧倒的に安価で、Redshift Spectrum や Amazon Athena からそのまま分析できます。データを別の DB エンジンに移すことで、監査時のクエリも Redshift 側と分断されてしまいます。

これだけ覚える(記憶フック)
Redshift の容量とコンピューティングを切り離すなら RA3、古いデータは S3 に置いて Spectrum で読む。
正解への思考ルート 問題文から要件を抽出し、選択肢の適否を判断するのがポイントです。
要件 判断ポイント
直近 3 か月分は日次ダッシュボードで頻繁に参照 ホットデータはクラスター内(RA3 のローカル SSD キャッシュ)に置いて高速に応答させる
→選択肢(A)が正解
それより古いデータは保持必須だが参照は監査時のみ コールドデータは S3 に置いて Redshift Spectrum の外部テーブルで参照。ストレージ単価が桁違いに安く、必要時は同じ SQL で読める
→選択肢(A)が正解
ストレージコストを下げたい 全件をクラスター内に持ち続ける構成では下がらない。VACUUM / ANALYZE は性能維持の作業でコスト削減策ではない
→選択肢(B)を消す
監査時にはクエリできる必要がある Glacier Flexible Retrieval は復元に数分〜数時間かかり、直接クエリできない。DS2 も旧世代で RA3 への移行が推奨
→選択肢(C)を消す
アーカイブ先として妥当なストレージはどれか RDS for PostgreSQL は常時稼働の OLTP DBで、履歴データの保管先としてコスト・分析性ともに不利
→選択肢(D)を消す
ひっかけポイント
  • Redshift のノードタイプの世代を押さえておく。DC2 / DS2 は旧世代で、ストレージとコンピューティングを分離できるのは RA3(さらにサーバーレスという選択肢もある)。選択肢に DS2 や DC2 が出たら疑ってかかる
  • 「VACUUM と ANALYZE を頻繁に実行」はRedshift の正しい運用作業なので正解に見えるが、本問が求めるストレージコスト削減にはまったく効かない
  • 「安いストレージ= Glacier」と短絡しがち。だがその場でクエリしたいなら S3 標準(または S3 Glacier Instant Retrieval)+ Spectrum / Athena。取り出し時間の要件を必ず確認する
  • アーカイブ先に別の DB(RDS)を選ぶ案は、データが 2 つのエンジンに分断され、監査時に横断クエリができなくなる点でも不利
出題バリエーション 同じ知識が本番では条件を変えて出題されます。
問題文がこう変わったら 正解はこう変わる
「クラスターの利用が断続的で、アイドル時間の課金をなくしたい Amazon Redshift Serverless が正解軸に(使用したキャパシティ分だけ課金)。
「S3 上のデータをRedshift クラスターを持たずにアドホック分析したい」 Amazon Athena が正解に(サーバーレスのクエリサービス)。
「S3 に置いた古いデータのスキャンコストとクエリ時間をさらに減らしたい Parquet などの列指向フォーマット+日付でのパーティション化が論点になる。
「アーカイブは数年間まったく参照されず、復元に時間がかかってもよい S3 Glacier Flexible Retrieval / Deep Archive とライフサイクルポリシーが正解軸に。
「古いデータを別チームのクラスターからも参照させたい Redshift データ共有(データシェアリング)が正解軸に変わる。
関連サービスの解説 Amazon Redshift
Amazon Simple Storage Service (Amazon S3)
+ 質問 / コメント
解答・解説に疑問がある場合や、よりよい解説がある場合など、お気軽にコメントください。ただし、短文コメントは表示されません。また、中傷などコメントの内容によっては、会員機能を停止させて頂きます。教え学び合える場になれば嬉しいです。(コメント投稿にはログインが必要です)
正答率 0%
No.15 解説
ある通信キャリアは、5年分の通話明細記録(CDR)を Amazon Redshift クラスターに保持しています。直近3か月分のデータは日次のダッシュボードで頻繁に参照される一方、それより古いデータはコンプライアンス上保持が必須なものの、参照されるのは監査時のみです。データエンジニアは、クエリパフォーマンスとストレージコストのバランスを取れる構成を検討しています。

この要件を最も効果的に満たす方法はどれですか。
  • RA3 ノードタイプのマネージドストレージを採用し、古いパーティションは Redshift Spectrum 経由で S3 上のデータとして参照しつつ、直近3か月分のみをクラスタ内に保持する
  • すべてのデータを DC2 ノードのクラスタ内に保持したまま、VACUUM DELETE ONLY と ANALYZE を頻繁に実行してスキャン性能を維持する
  • 古いデータを Amazon S3 Glacier Flexible Retrieval に移し、直近3か月分は DS2 ノードのクラスタに保持する
  • 古いデータを Amazon RDS for PostgreSQL にエクスポートしてアーカイブし、直近3か月分のみ Redshift に保持する

(会員限定)当問題の評価をお願いします。改善に活用します。