AWS DEA に合格したので振り返り

# はじめに
記事タイトルの通り、先日 [AWS Certified Data Engineer - Associate](https://aws.amazon.com/jp/certification/certified-data-engineer-associate/) を受験し合格しましたので、本試験のポイントをお伝えできればと思います。


# 私のバックグラウンド
AWS 認定全冠を達成し、[2024 Japan AWS All Certifications Engineers](https://aws.amazon.com/jp/blogs/psa/2024-japan-aws-all-certifications-engineers/) に選出されています。


# 受験結果と感想
2024/07/22 午前中に受験し、その日の夜 21 時頃に合格メールが届きました。
[昨年まであった DAS の試験](https://aws.amazon.com/jp/blogs/news/aws-certification-retirements-and-launches/) を突破済みの方であれば問題なく突破できると思います。
試験時間は十分ありますので、焦らずじっくり解けば良いかと思います。

![DEA受験結果.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3516261/5ca15b43-3b27-2929-2e65-5832fe9f13b3.png)


# 学習メモ
AWS サービス別に学習ポイントをメモしておきます。

### S3
- S3 イベント通知
S3 オブジェクトのアップロードなど S3 イベント発生時に、次の宛先にイベントの通知メッセージを送信可能 (宛先：SNS トピック、SQS キュー、Lambda 関数、EventBridge)
- S3 Object Lambda
S3 GET、HEAD および LIST リクエストに独自のコードを追加して、返されるデータを処理できる機能
例えば、カスタムコードを使用して、S3 GET リクエスト時 (S3 からオブジェクト取得時) にオブジェクトのデータを変更し、行のフィルタリング、画像の動的なサイズ変更、機密データの編集などを行うことができる
- S3 Select / S3 Glacier Select
S3 や S3 Glacier に保存されているデータに対して、SQL クエリを直接実行可能
- S3 ライフサイクル
標準、標準-IA、Intelligent-Tiering、１ゾーン-IA、Glacier Instant Retrieval、Glacier Flexible Retrieval、Glacier Deep Archive
- S3 Intelligent-Tiering アクセス階層
デフォルトのアクセス階層は、高頻度アクセス階層、低頻度アクセス階層、アーカイブインスタントアクセス階層であり、ミリ秒単位でデータ取り出し可能
オプションのアーカイブアクセス階層とディープアーカイブアクセス階層はデータ取り出しに数時間かかるため、レイテンシ要件に注意

### Lake Formation
- データフィルタ
行、列、セルレベルのきめ細やかなアクセスコントロールが可能
- データレイクロケーション
S3 パスをデータレイクロケーションに登録することで、アクセス管理を効率化

### Athena
- パフォーマンスチューニング
パーティショニング、ファイル圧縮 (Gzip や Snappy)、列志向フォーマット (Apache Parquet や Apache ORC)、クエリチューニング、クエリ結果の再利用
[参考：Amazon Athena のパフォーマンスチューニング Tips トップ 10](https://aws.amazon.com/jp/blogs/news/top-10-performance-tuning-tips-for-amazon-athena/)
- ワークグループ
クエリのワークロードを分離することで、アクセス制御や管理を効率化
- Federated Query
S3 だけでなく、RDS、DynamoDB、Redshift など複数データソースを統合してクエリ実行可能

### Glue
- Glue ジョブ
Python や Spark ジョブを作成可能
- Glue データカタログ
メタデータリポジトリとして利用
- Glue トリガー
ジョブのスケジュール実行に利用
- Glue 接続
データストア間の接続に利用
- Glue ワークフロー
Glue ジョブやクローラの実行を視覚的に管理
- Glue DataBrew
データの前処理をノーコードで可能
- 機械学習機能
例えば FindMatches 変換を使用すると、データセット内の重複レコードを識別し、重複排除に利用可能

### EMR
- ビッグデータ処理
Apache Spark、Apache HBase、Apache Hive などのオープンソースフレームワークと互換性があり、ペタバイト単位の大規模データセットを処理できる

### Redshit
- Redshift Serverless
データウェアハウスのインフラ管理不要
- Redshift Data API
SageMaker や Lambda などのウェブサービスベースのアプリケーションで Redshift Data API を利用することで、運用上のオーバーヘッドを抑えて Amazon Redshift データにアクセス可能
- Redshift Spectrum
S3 上のファイルに直接クエリ実行可能であり、S3 上のファイルと Redshift テーブルの JOIN も可能
- クエリエディタv2
SQLクエリ実行、クエリの保存と共有、クエリ結果の簡易的な可視化、クエリのスケジュール実行等が可能
- 分散スタイル
小さなテーブルは ALL、テーブルが大きくなってきたら KEY、さらに大きくなり適切なキーがない場合は EVEN、AUTO はこれをテーブルサイズに応じて自動割当
- WLM (Work Load Management / ワークロード管理) 
WLM のキューで同時実行スケーリングを有効にすると、需要に合わせて読み書きキャパシティを自動でスケーリング可能
- ストリーミング取り込み
Amazon Kinesis Data Streams および Amazon Managed Streaming for Apache Kafka から Amazon Redshift Serverless でプロビジョニングされたビューまたは Amazon Redshift マテリアライズドビューにストリームデータを低レイテンシーかつ高速で取り込むことができる

### Kinesis
- Kinesis Data Streams
- Kinesis Data Firehose
- Managed Service for Apache Flink (旧 Kinesis Data Analytics)

### Step Functions
- ワークフロー
Lambda 関数や Glue ジョブなど複数の AWS サービスが関わるデータパイプラインを統合管理

### DataSync
- オンプレから S3 へのデータ転送を自動化

### Data Exchange
- AWS 上でサードパーティーのデータセットを利用するためのサービス

### AppFlow
- SaaS アプリと AWS 間のデータ転送

### Database Migration Service (DMS)
- オンプレのデータベースを AWS に移行

### QuickSight
- ダッシュボード

# おわりに
最後までご覧いただきありがとうございました！