はじめに
AWS Certified Data Engineer - Associate(DEA)に合格したので、学習方法や受験までの流れをまとめます。
本番は799点でした(800超えたかった、、、)
受験前のAWS経験
受験前には、AWSのインフラ運用・保守を中心に2年ほど経験がありました。
保有資格は以下です。
- AWS CLF
- AWS AIF
- AWS SAA
- AWS SOA
- AWS MLA
- AWS SAP
主に触れていたサービスは以下です。
- Amazon EC2
- Amazon S3
- Amazon RDS
- Amazon CloudWatch
- Amazon CloudFront
- Elastic Load Balancing
- AWS WAF
- Amazon VPC
- AWS IAM
- AWS Systems Manager
- Amazon Route 53
DEAで中心となるデータ分析系サービスについては、実務経験が多いわけではありませんでした。
特に以下は試験勉強を通して理解を深めました。
- AWS Glue
- Amazon Athena
- Amazon Redshift
- Amazon Kinesis Data Streams
- Amazon Data Firehose
- Amazon Managed Service for Apache Flink
- AWS Lake Formation
- Amazon QuickSight
- AWS DMS
学習期間
約2~3週間でした。
毎日3時間程度は時間を使いました。
使用教材
CloudTechのみを使用しました。
問題の密度などもこれ一本で十分でした。
#PR
特に重要だと感じたサービス
AWS Glue
個人的にはDEA対策で最重要クラスのサービスでした。
特に以下を整理しました。
- Glue Crawler
- Glue Data Catalog
- Glue Spark Job
- Job Bookmark
- Workflow
- Schema Registry
- DynamicFrame
- Apache Hudi / Icebergとの連携
最初は、
CrawlerとData CatalogとGlue Jobの違い
が曖昧でした。
最終的には以下のように整理しました。
S3
↓
Glue Crawler
「どんなデータ構造か調べる」
↓
Glue Data Catalog
「スキーマ・テーブル情報を管理する」
↓
Glue Spark Job
「実際にETL処理する」
この役割分担を理解すると、Glue関連の問題がかなり解きやすくなりました。
Amazon Athena
Athenaについては、
「S3にSQLを実行するサービス」
だけで覚えるのでは不十分でした。
以下を重点的に勉強しました。
- Glue Data Catalogとの関係
- パーティション
- Partition Projection
- Glue Partition Index
- Federated Query
- CTAS
- Iceberg
- Parquet / ORCによるスキャン量削減
Athenaでの探索効率化は抑えておくべきポイントです。
Athena
↓
Glue Data Catalog
「このテーブルはどこにある?」
↓
Amazon S3
Amazon Redshift
Redshiftは覚える範囲がかなり広い印象でした。
以下を重点的に確認しました。
- Distribution Key
- Sort Key
- Data Skew
- VACUUM
- ANALYZE
- COPY
- UNLOAD
- Spectrum
- SUPER型
- PartiQL
- Materialized View
- Stored Procedure
特に、
DISTKEY
→ どこにデータを配置するか
SORTKEY
→ どの順序でデータを保持するか
を区別できるようにしました。
Kinesis関連
最初はかなり混乱しました。
整理すると以下のようなイメージです。
Kinesis Data Streams
リアルタイムストリームを保持し、複数Consumerから処理する用途。
リアルタイムに適している。
Amazon Data Firehose
ストリーミングデータを、
- S3
- Redshift
- OpenSearch
などへ比較的簡単に配信する用途。
リアルタイムには適さない。
Managed Service for Apache Flink
ストリームデータに対してリアルタイムで、
- 集計
- JOIN
- ウィンドウ処理
- ステートフル処理
などを行う用途。
Apache Iceberg / Apache Hudi
DEAを勉強するまで、個人的には馴染みが薄い分野でした。
従来のS3上のParquetファイルは、基本的にファイル単位で管理します。
一方でIcebergやHudiを利用すると、
- UPDATE
- DELETE
- UPSERT
- MERGE
- スキーマ進化
といった、データベースに近い操作がデータレイクでも可能になります。
QuickSight
QuickSightではSPICEの理解が重要でした。
SPICEは、
QuickSight用の高速なインメモリ分析エンジン
という理解から入りました。
Redshift
↓
SPICEへ取り込み
↓
QuickSight Dashboard
とすることで、ダッシュボード表示のたびにRedshiftへ直接クエリする必要を減らせます。
学習で特に意識したこと
1. 「最も運用効率が高い」を重視する
AWS試験では、技術的に実現可能な選択肢が複数存在することがあります。
そのため、
- サーバーレス
- マネージドサービス
- 不要なLambdaを追加しない
- 不要なETLを追加しない
- 既存AWS機能を利用する
という観点を意識しました。
例えば、
S3イベント
↓
Lambda
↓
独自処理
で実装できたとしても、AWS側にそのためのマネージド機能があるなら、そちらが正解になるケースがあります。
2. 問題文のキーワードから候補を絞る
例えば、
全文検索
→ OpenSearch
S3をSQL分析
→ Athena
RedshiftからS3を直接参照
→ Redshift Spectrum
スキーマ自動検出
→ Glue Crawler
メタデータ管理
→ Glue Data Catalog
CDC
→ DMS / Hudi / Iceberg
リアルタイムストリーム
→ Kinesis
といった対応関係を整理しました。
ただし、キーワードだけで即決せず、問題文の制約まで読むようにしました。
試験本番について
NDAのため、具体的な問題内容については記載しません。
全体としては、単純なサービス名の暗記というより、
要件を読んで、複数のAWSサービスから最も合理的な構成を選択する
ことが重要だと感じました。
特に、
- コスト
- 運用負荷
- スケーラビリティ
- レイテンシー
- スキーマ変更
- データ量
- リアルタイム性
- セキュリティ
といった条件を読み落とさないことが重要でした。
これから受験する人へ
DEAでは、サービス名の暗記だけではかなり厳しいと思います。
おすすめなのは、
- 各サービスの役割を理解する
- 似たサービスとの違いを整理する
- 問題演習をする
- 正解・不正解の理由を両方確認する
- 分からない概念を図にして整理する
という流れです。
特に、
「このサービスは何ができるか」
だけではなく、
「このサービスを使わない方がいいのはどんな場合か」
まで理解すると、選択肢をかなり絞りやすくなります。
まとめ
AWS Certified Data Engineer - Associateの学習では、以下の分野を重点的に勉強しました。
- AWS Glue
- Amazon Athena
- Amazon Redshift
- Kinesis
- Amazon Data Firehose
- Managed Service for Apache Flink
- AWS DMS
- Lake Formation
- QuickSight
- Iceberg / Hudi
特に重要だったのは、
「サービス名を覚える」のではなく、「データ基盤の中でそのサービスが何を担当するのか」を理解すること
でした。