0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS Certified Data Engineer - Associate受験時の記録

Last updated at Posted at 2024-12-22

この記事の概要

2024/12/22 に「AWS Certified Data Engineer - Associate(DEA-C01)」を受験しました。
その時の記録です。

試験の概要

スクリーンショット 2024-11-25 20.08.47.png

世の中のデータ活用やAIの専門知識に対する需要に合わせ、今年度は3つのAWS認定資格が追加されました。
そのうち一番最初に正式版になった資格です。

AWSの公式ガイドには

  • 「受験者がデータパイプラインを実装し、ベストプラクティスに従ってコストとパフォーマンスの問題をモニタリング、トラブルシューティング、最適化する能力を検証します。」

とあります。※AWS公式より引用:引用元

以前あった「AWS Certified Data Analytics – Specialty (DAS)」と「AWS Certified Database – Specialty (DBS)」をあわせて難易度をアソシエイトに合わせた感じでしょうか?

◼︎ 試験要項

項目
問題数 65問 (うち15問は採点対象外)
試験時間 130分
受験料 ¥20,000 (税別)
合格ライン 100~1000点中720点
受験資格 なし
有効期限 3年

※料金は為替レートに合わせて毎年4月に見直されます。アソシエイト試験は2024年度¥5,000値上がりしました。
https://aws.amazon.com/jp/certification/policies/before-testing/#Exam_pricing

その他アソシエイト資格と違いDEAは現時点では上位資格、下位資格なしです。(今後プロフェッショナルやファンデーショナルが追加されるのかも知れません。)

◼︎ 出題範囲

分野 出題割合
第 1 分野: データの取り込みと変換 34%
第 2 分野: データストア管理 26%
第 3 分野: データ運用とサポート 22%
第 4 分野: データセキュリティとガバナンス 18%

2024/12時点の最新バージョン(Ver.1.1)のものです。
バージョンアップで範囲等は変更されるので、こちらも受験時は公式サイトをご確認ください。
AWS Certified Data Engineer - Associate 認定

勉強開始前の状態

AWSで動いているアプリの開発/運用の業務を7年程度、現在も継続中。
AWS認定は昨年までに12個取得済み。

※CLFはあとから取得したので特に書くこともなく記事にしていません。

勉強に使ったもの

1. WEB問題集(非公式)

個人的に

  • 1問ごとに答え合わせできる ※65問解いてから答え合わせだと解いたときの記憶が薄まる上に問題文を読み直さないといけない、途中で終了できないと隙間時間で使いづらい。
  • 十分な問題数がある(本番試験3回分程度はほしい)

という条件に一致するもので探してみましたが、現時点(2024/11)ではWhizlabsぐらいしかありませんでした。

2. AWS公式模擬試験

AWS Skill Builder無料で提供されている20問の模擬試験。実試験に近い内容が出題されるので今回も実施しておきます。

今回はすでにある程度試験範囲について理解しているので利用しませんでしたが、これから学習される方は公式E-Learningもおすすめです。

3. AWSアカウント

学習の中で気になったところは実際にマネコンやCLIで触って確認します。

勉強(試験準備)の流れ

だいたいいつもの流れですが今回はAssociateレベルということで、ある程度の知識はすでにあるはずなので問題集を中心に進めていきます。

1. 試験ガイドを読む

今回もはじめに、公式サイトの試験ガイドを読みます。
データ分析やBIなどに使われるサービスを中心に出題されるようです。

2. サンプル問題と模試を実施する

次に模擬試験をやってみます。
無料なので気軽に実施できます。

※公式のサンプル問題はなくなったようです。

3. 問題集を解く

あとは問題をどんどん解いて

  • 解答/解説でわからなかった部分を調べる
  • 覚えたほうが良さそうな部分はノート(デジタルのほうが速いのでデジタルで)に書き出す

を繰り返します。

今回は問題集395問を1周実施しました。

出題範囲のサービスの中で利用経験の少ないRedshiftとGlueが正答率が低かったので、間違えたところを調べながら書き出して理解を深めました。

4. 復習

最後に間違えた問題や気になったところについて公式ドキュメント等の再確認をしました。

勉強時間

およそ20時間程度

受験後

結果はスコア765で合格。

スクリーンショット 2024-12-23 0.04.26.png

スクリーンショット 2024-12-23 0.05.50.png

第3分野の「データ運用とサポート」があまり特典できなかったようです。

スクリーンショット 2024-12-23 0.07.04.png

データ分析の経験があまりなく「データの検証」や「パフォーマンスチューニング」などの理解が浅かったので、そのあたりかもしれません。

やはりRedshiftやGlue、Athena、Lake Formation、S3などを中心とした出題で、廃止された「AWS Certified Data Analytics - Specialty(DAS)」とから最近のトレンドに合わせてGlueなどのサーバレスを増やし、EMRやKinesisなどを減らした出題範囲でAssociateレベルに合わせて難易度が下げられた(深い知識を求める問いが減った)ような印象でした。

今年度は残るAIFとMLAも取得してALL Certificate継続を目指します。

勉強になったことメモ

試験のために勉強しながらまとめたノート
※ここに書いてあることは、あくまで私が理解が足りないと感じ、覚えたかったことだけです。試験範囲を網羅はしていません。

アクセスコントロール

RBACとABAC

アクセス制御のタイプは大きく2つに分けられる

タイプ 特徴
ロールベースアクセスコントロール(RBAC) 「マーケティング」や「運用」などのロールに基づいたアクセス許可を定義する、比較的シンプルなアクセス制御にできる
属性ベースアクセスコントロール(ABAC) 「ユーザー」「リソース」「環境」「アプリケーションの状態」などの属性に基づいたアクセス許可を定義する、柔軟で動的なアクセス制御ができる

これら2つを組み合わせたハイブリッドアプローチも可能
※例:運用者は深夜の時間帯かつ調査用のログにのみアクセスできる、など

BIとDWH

ルックアップテーブル(LUT)

入力値に対する出力値の割当を単純なテーブル構造にしたもの
キーが入力値、バリューが出力値となる連想配列をイメージすればいい

ファクトテーブルとディメンションテーブル

DWHのテーブル構成はスタースキーマで定義される
スタースキーマのテーブル構成の中で集計対象となる値を保持するテーブルが「ファクトテーブル」
ファクトテーブルで保持される外部キーの参照先となるマスタテーブルが「ディメンションテーブル」
データ分析の観点にあわせて結合先のディメンションテーブルを選択する

Amazon Redshift

分散スタイル

スタイル 特徴
AUTO分散 テーブルのデータサイズに基づいて最適な分散スタイルを割り当てる
EVEN分散 ラウンドロビン方式で均等分散する、結合しない場合に最適
キー分散 特定の列の値が一致するデータを同じノードスライスに保存する、頻繁に使われる結合のキーとなる列がある場合に適している
ALL分散 テーブル全体のコピーがすべてのノードに分散される、更新頻度が低く小さいテーブルに適している

マテリアライズド・ビュー

マテリアライズド・ビューを利用するとクエリ結果を事前に保存することで繰り返されるクエリを高速化できる。

フェデレーテッドクエリ

Redshiftではフェデレーテッドクエリを利用することでRDSまたはS3へクエリできる

ゼロETL統合

ゼロETL統合を利用するとAmazon RedshiftからAmazon Auroraのデータを追加のインフラ構築なしでリアルタイム分析できる。

データ共有

Redshiftのデータ共有を使用すると追加コストなしで、複数のRedshiftクラスター間でデータを共有できる。

自動テーブル最適化

テーブルを継続的に監視し、ソートキーとディストリビューションキーを適用することでパフォーマンスを自動的に最適化してくれる。

ワークロード管理(WLM)

ワークロード内のクエリの優先順位を管理することで、クエリを効率化する。
自動WLMと手動WLMがある。

列圧縮

列圧縮を有効にすると、各列のデータが圧縮されストレージコストの削減とクエリパフォーマンス向上につながる。
RedshiftではデフォルトでENCODE AUTOが設定されており、すべての列の圧縮エンコードが自動的に管理される。
テーブル作成時に圧縮タイプまたは圧縮エンコードを指定することもできる。

自動バキューム削除

Redshiftでは削除時に対象行が削除対象としてマークされるだけで、物理削除はされない。
VACUUMクエリを実行するとこういった削除対象行が開放され再ソートされる。
Redshiftは一定期間で自動的に削除対象行の開放を行ってくれる。

Redshift Spectrum

Redshift Spectrumを利用するとテーブルにデータをロードすることなく、S3のファイルから構造化および半構造化されたデータを取得できる。

ユーザ定義関数(UDF)

SELECT文またはPythonのスクリプトを事前に関数として保存しておき、繰り返し実行することができる。
また、「AWS Lambda UDF」ではLambda関数を利用することでPython以外の言語のスクリプトも実行できる。

デフォルトポート

Redshiftのデフォルトポートは5439

AWS Glue

AWS Glueワークフロー

AWS Glueワークフローを使うことで複数のクローラー、ジョブ、トリガーなどを含むETLアクティビティの作成、視覚化などのオーケストレーションができる。

圧縮形式

Glueでは適切なデータ圧縮形式を選択することがパフォーマンス向上につながる

アルゴリズム 分割可能 圧縮比 圧縮/解凍速度
Gzip (DEFLATE) No
Bzip2 Yes 非常に高い
LZO No
Snappy No 非常に速い

Bzip2圧縮はGzipより高い圧縮率で、分割可能な形式である、計算不可が高いため、頻繁にクエリされるデータには適さない。

Glueジョブタイプ

タイプ 特徴
Pythonシェル 計算能力をあまり必要としないワークフローに適している
Spark(PySpark) 高い計算能力を必要とするワークフローに適している
Spark(Scala) 高い計算能力を必要とするワークフローに適している

PIIの取り扱い

ジョブでの検出と処理

DataBrewでのマスキングと難読化

Glue Data Catalog

データセットに関するメタデータを保存する一元化されたリポジトリ。
データソースを自動的にスキャンしてメタデータを抽出するクローラーを使用してデータカタログに入力できる。

Glue DataBrew

コードを記述せずにデータをクリーンアップおよび正規化できる視覚的なデータ準備ツール。
AWS Glue DataBrew はビジュアルデータ準備ツールであり、コードを記述しなくてもデータのクリーンアップと正規化を実行できる。
DataBrewでデータ準備プロセス中にPIIデータを難読化するためのデータマスキングもできる。

Glue Data Quality

ETLジョブ内でのデータ検証ルールを適用できる。

ジョブのブックマーク

Glueにはジョブの実行を保持する「ブックマーク」機能がある。
これにより、過去の実行で既に処理されたデータの再処理をスキップさせることができる。
ブックマークは対象データへのポインタではなく、最後に読み込んだキー列の値などで進行状況を記録する。

AWS Lake Formation

AWS上にデータレイクを構築し、アクセス制御等の管理を行えるサービス。
Lake Formation を使用すると、データベース、テーブル、列、行、セルのレベルできめ細かなアクセス許可を管理できる。

Amazon Athena

パフォーマンスチューニング

クエリ最適化

Athena特有のクエリ最適化方法がいくつかある

  • テーブル結合はJOIN句の左に大きなテーブル、右に小さなテーブルを指定する
  • LIKEの代わりにregexp_like()による正規表現を利用する

など

UNLOAD

UNLOADを利用することで大きな結果を生成するクエリを高速化できる

パーティションインデックス

大量のパーティションが存在する場合、パーティションインデックスとパーティションフィルタリングによりAthenaからのクエリパフォーマンスが改善できる可能性がある

パーティションの定期更新

パーティション更新はMSCK REPAIRクエリでも行えるが、Glueのクローラを設定することでより簡単に定期更新できる。

サマリテーブル

CREATE TABLE AS SELECT(CTAS)クエリを利用することで、SELECT結果から新しいAthenaテーブル(サマリテーブル)を作成できる、Athenaはこの結果作成されたデータをS3に保存する。
このサマリテーブルに更にクエリすることで、事前にParquetなどへのフォーマット変換や必要データのみを抽出しておけるようになり、パフォーマンス向上に繋がる。

AWS StepFunctions

ワークフローの種類

ステートマシン作成時のみワークフローのタイプを選択できる。

種類 実行回数 特徴
標準ワークフロー 1回限りのワークフロー実行(非冪等) 長期間(最大1年)の実行が可能
同期エクスプレスワークフロー 最大1回のワークフロー実行 最大5分間の実行、ワークフローが完了するまで待機してから結果を返す
非同期エクスプレスワークフロー 少なくとも1回のワークフロー実行 最大5分間の実行、ワークフローの完了まで待機しない

AWS CloudTrail

CloudTrail Lake

イベントをデータストアに蓄積し、SQLベースのクエリを実行できる

CloudTrail Insights

APIコールのコール量やエラー率などのパターンを分析し、異常なアクティビティはInsghtsイベントとして記録される。

データイベントと管理イベント

以下のようなデータを操作するアクティビティは「データイベント」に分類され、デフォルトでは記録されない。

  • S3のオブジェクトレベルAPIアクティビティ(GetObject、DeleteObject、PutObject API オペレーションなど)
  • Lambda関数呼び出しアクティビティ (InvokeFunction API オペレーションなど)
  • DynamoDBオブジェクトレベルのAPIアクティビティ(PutItem、DeleteItem、UpdateItem API オペレーションなど)

S3

S3バッチオペレーション

S3の大量のオブジェクトに一括処理を行うことができる。

S3 Object Lambda

S3オブジェクトへのアクセス時にLambdaによる独自コードの処理をしてから返す事ができる。

S3 Access Grants

Access Grantsを利用するとIAMユーザや社内ADで管理されるユーザに対するS3へのきめ細かいアクセス制御を実現できる。

Snowファミリー

サービス スペック 特徴
Snowcone 2 つの vCPU、4 GB のメモリ、8 TB のハードディスクドライブ (HDD) 軽量で低コスト
Snowcone SSD 2 つの vCPU、4 GB のメモリ、14 TB のソリッドステートドライブ (SSD) 軽量で低コスト
Snowball Edge 複数のタイプが存在する、ストレージは80TB~210TB データ保管だけでなくコンピューティングを行える
Snowmobile 100PBのストレージ 大型トラックを利用し大量データを移行

※2024/11/12をもってSnowconeはサービス終了
※Snoball Edgeも旧デバイス(Snowball Edge Storage Optimized 80TB デバイス、Snowball Edge Compute Optimized with 52 vCPUs デバイス、および Snowball Edge Compute Optimized with GPU デバイス)は2025/11/12でサポート終了予定

※Snowmobileも2024/04にサービス終了を発表済み

AWS Data Exchange

サブスクライブ方式のデータ交換サービス

Amazon MWAA

Amazon Managed Workflows for Apache Airflow(MWAA)はApache Airflow のマネージドオーケストレーションサービスである。
MWAAを利用することで複雑なETLワークフローをオーケストレーションし、AWSサービスとシームレスに統合する事ができる。

Amazon MSK

Amazon Managed Streaming for Apache Kafka (Amazon MSK) は、Apache Kafka を使ってストリーミングデータを処理するアプリケーションの構築および実行を可能にするフルマネージドサービスである。

Amazon Managed Service for Apache Flink

Amazon Managed Service for Apache Flink(旧Amazon Kinesis Data Analytics for Apache Flink)はJava、Scala、Pythonを使用してストリーミングデータをSQL処理および分析できる。

Kinesis

Kinesis Data StreamsにはLambda統合機能がある。

ストリームデータで特定の条件を検出したときのみLambda関数を実行するようにフィルタリングを設定することもできる。

ストリーミングサービスの選択

Kinesis、Kafka、Flinkなどからユースケースに合わせてストリーミングサービスを選択する。

Apache FlinkとApache Kafka

Apache FlinkとApache Kafkaはいずれもストリーミング処理に利用する。
一般的にKafkaはイベントストリーミングの提供、Flinkはそのストリームからデータを処理するために使用される。

SageMaker

Amazon SageMaker ML 系統の追跡(ML Lineage Tracking)はデータ準備からモデルデプロイまでの機械学習 (ML) ワークフローのステップに関する情報を作成して保存する。
追跡情報を使用してワークフローステップの再現、モデルおよびデータセットの系統の追跡、モデルのガバナンスと監査基準の確立を行うことができる。

Amazon OpenSearch Service

OpenSearch Ingestion

Amazon OpenSearch Serviceドメインにストリーミングデータを直接ロードできる機能。

インデックスロールアップ

インデックスロールアップ:OpenSearchで古いデータをより粗い時間単位のデータに要約(ロールアップ)することで少ないコストで長期間データを保持できる。

Amazon AppFlow

AppFlowを使用するとサードパーティのSaaSとAWSサービスを統合できる、例えばSaaSのデータをS3に保存するなどができる

データ移行の手段

オンプレからAWSへのデータ移行にりようできるサービスは複数ある、要件により使い分ける

サービス 特徴
DMS DBの移行
DataSync ファイルストレージの移行
Transferファミリー FTPなどでのオンプレとS3の接続
Snowファミリー 物理アプライアンスによる回線を利用しないデータ移行

Delta Lake

Linux Foundation Delta Lake はビッグデータ分析用のデータフォーマット、Apache Parquetにトランザクションログの機能が追加されたもの。

AWS Configの一元管理

コンフォーマンスパックを利用すると組織全体に対するAWS Configによるポリシーの定義や監査レポートの取得などが行える。

Transferファミリーのマネージドワークフロー

Transferファミリーでファイルのアップロード後の処理を自動的かつ簡単に実行できるようにする機能として「マネージドワークフロー」がある。

S3Access Grants

RDSのIAM認証

RDSでIAM認証に対応しているのはMySQL, PostgreSQL, MariaDB

QuickSightのマニフェストファイル

QuickSightではソースとなるS3に様々な列数のファイルがある場合、Athenaで結合してから利用する。
列数が同一の場合はJSON形式のマニフェストファイルにより結合の仕方を指定すればAthenaは不要になる。

Secrets Manager SQL接続ドライバー

SecretsManager SQL接続ドライバーを利用するとシークレットは1時間キャッシュされる。

DMSの変換ルール式

DMSではJSON形式のルールやSQLite式によりデータマスキングなどの処理ができる。

EMRのファイルストレージ

FS 特徴
HDFS 高速なエフェメラル(一時)ストレージ
EMRFS S3を利用したストレージ
ローカルファイルシステム インスタンスストアを利用
Amazon S3ブロックファイルシステム レガシーなFS、現在は非推奨

一時データの保存はHDFSを使うことで低レイテンシーにできる場合がある。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?