大規模な並列分析ワークロードに適したデータストア
全国 800 店舗の POS データを集約する小売チェーンが、新しい分析基盤を検討しています。初期データ量は 20 TB で、1 日あたり約 25 GB 増加する見込みです。BI ツールから標準的な SQL で数十億行に対する集計クエリを実行し、複数ノードでの並列処理によってレスポンスタイムを短縮したいと考えています。加えて、ノード障害やアベイラビリティーゾーン障害に備えた可用性の高い構成が求められています。要件を満たす最適なサービスはどれですか。
解説を読む(正解: C)
Amazon Redshift は、ペタバイト級のデータに対する集計・分析クエリを目的として設計された、列指向ストレージと MPP (Massively Parallel Processing) アーキテクチャを備えたリレーショナルなデータウェアハウスです。リーダーノードが受け取ったクエリを実行計画に分解し、複数のコンピューティングノードとその内部のスライスに分散して並列実行するため、数十億行のスキャンや集約でも短時間で応答できます。列指向であるため集計に必要な列だけを読み込め、圧縮効率も高く、20 TB 規模のデータと日々の増分を効率良く扱えます。RA3 ノードタイプは Amazon S3 を基盤とするマネージドストレージを採用しコンピューティングとストレージを個別にスケールでき、Multi-AZ 構成による可用性向上にも対応しているため、C が要件に最も適合します。A の DynamoDB はキーを指定した低レイテンシーなアクセスに最適化された NoSQL であり、グローバルセカンダリインデックスを追加しても任意軸での大規模な集計クエリには適さず、全件スキャンは高コストになります。B の RDS for PostgreSQL は行指向の OLTP エンジンで、単一インスタンス内での処理が中心となり、1 本の巨大な集計クエリを複数ノードへ分散できません。リードレプリカは同時実行できるクエリ数を増やすだけで、個々のクエリを高速化する仕組みではありません。D の Aurora Serverless v2 はトランザクション処理向けに容量を自動調整する構成であり、垂直方向のスケールは行えるものの、分析クエリを複数ノードで並列実行する MPP エンジンではありません。
Redshift のクエリ実行順序とリソース配分の制御
大手小売チェーンの BI 部門が、店舗別の売上分析を行うオンライン分析処理(OLAP)基盤として Amazon Redshift クラスターを運用しています。夜間に走る長時間のバッチ集計クエリと、営業時間中に経営層が実行する短時間のダッシュボードクエリが同じクラスターに混在しており、バッチが走っている間はダッシュボードの応答が極端に遅くなるという苦情が出ています。クエリを種類ごとに分類し、実行順序と同時実行数、メモリ配分を明確に定義したいと考えています。この場合に利用すべきものはどれですか。
解説を読む(正解: D)
Amazon Redshift のワークロード管理(WLM)は、クラスターに届いたクエリをユーザーグループやクエリグループの条件で複数のキューへ振り分け、キューごとに同時実行数、メモリの割り当て比率、タイムアウトを定義できる仕組みです。これにより、長時間かかるバッチ集計が短時間のダッシュボードクエリを待たせてしまう事態を避け、業務上の優先度に沿った実行順序とリソース配分を明示的に制御できます。自動 WLM を利用すれば、Redshift がワークロードに応じて同時実行数とメモリを動的に調整し、クエリ優先度の指定に基づいて処理を制御することも可能です。
本シナリオの要件は、クラスター上で実行される複数種類のクエリについて実行順序とリソース配分を明確に定義することなので、Redshift 自身が備える WLM を構成する D が正解です。
A については、Amazon RDS は OLTP 向けの行指向データベースであり、大規模データセットに対する複雑な分析クエリを高速に処理する用途には適していません。加えて RDS にはキュー単位でクエリのリソースを割り当てる機能もありません。B の AWS Lambda で発行順を自前で直列化する方式は、最大実行時間の制約や再試行制御、状態管理をすべて自作する必要があるうえ、Redshift 内部のメモリ割り当てには関与できないため要件を満たせません。C の Amazon SQS はコンポーネント間の疎結合化には有効ですが、キューはメッセージの受け渡しを担うだけで、Redshift 内部での同時実行数やメモリ配分を制御することはできません。
Redshift の保管中データ暗号化と HSM による鍵管理
ある損害保険会社は、契約データの分析基盤として Amazon Redshift クラスターを運用しています。社内セキュリティ部門から、クラスターに格納される保管中データを確実に暗号化し、暗号化キーは業界標準の要件を満たすハードウェアセキュリティモジュール (HSM) で保護・管理するよう指示がありました。この要件を満たす Redshift の暗号化構成として適切なものはどれですか。2 つ選択してください。
複数選択問題です (正解 2 つ)。選んでから判定してください。
解説を読む(正解: A、B)
Amazon Redshift の保管中データ暗号化は、データ暗号化キー、データベースキー、クラスターキー、マスターキーという4段のキー階層で構成されており、最上位のマスターキーをどこで管理するかとして AWS KMS と AWS CloudHSM の2通りが選択できます。KMS を使う場合はクラスター作成時または変更時にカスタマー管理キーを指定するだけでクラスター全体が暗号化され、KMS 自体が FIPS 140-2 の認証を受けたハードウェアセキュリティモジュールで鍵素材を保護するため、業界標準の鍵管理要件を満たせます。より厳格に専有型の HSM で鍵を管理したい場合は、CloudHSM クラスターと Redshift の間に信頼された接続を構成し、CloudHSM 上のマスターキーでクラスターキーを暗号化します。したがって A と B が正解です。C の SSL/TLS はクライアントとクラスターの間を流れる転送中データを保護する仕組みであり、ディスク上に保管されたデータの暗号化や鍵管理という要件とは目的が異なります。D の AWS Secrets Manager はデータベースの認証情報を安全に保管しローテーションするためのサービスであって、テーブルデータそのものを暗号化するものではありません。E の SSE-C は Amazon S3 上に置かれたロードファイルを暗号化する方式であり、S3 から読み込んだ後に Redshift クラスター内へ格納されるデータの暗号化要件を満たすことはできません。