「AWS 認定 データアナリティクス – 専門知識」の学習方法・勉強法・試験対策・合格体験記 ~ How to study for AWS Certified Data Analytics – Specialty(DAS)~
Amazon Web Services(AWS)は今最もシェアを拡大しているパブリッククラウドコンピューティングサービスの一つです。
そして、AWS認定とはAWSクラウドを活用する技術的な専門知識が一定以上あることを証明するAWS公式の認定資格です。
全体的なAWS認定の概要、AWS認定のメリット、主観的な難易度順位、共通する学習方法・勉強法・試験対策・合格体験記については親記事となる
AWS認定全冠を達成した学習方法・勉強法・合格体験記・資格の難易度 ~How to become an ALL AWS Certifications Engineer. How to study for AWS Certifications.~
を参照してください。
「AWS Certified Data Analytics – Specialty(DAS) | AWS 認定 データアナリティクス – 専門知識」とは
「AWS Certified Data Analytics – Specialty(DAS) | AWS 認定 データアナリティクス – 専門知識」は一言で言えばAWSクラウドの特徴を活用した高度なデータ分析環境の設計・構築・運用ができる専門知識を検証する認定と言えるでしょう。
データ分析のラーニングパスでは基礎レベルの「AWS 認定 クラウドプラクティショナー(AWS Certified Cloud Practitioner)」の取得がオプションで推奨されていますが、受験にあたってはこの分野のAWSサービスと関連知識を熟知しておく必要がある専門知識に特化した高度な認定です。
後述の<学習リソース>で紹介している「試験ガイド」や「Exam Readiness」を見ていただければわかっていただけると思いますが、学習しておくべきAWSサービスは「データ分析」に関連するサービス全般にわたります。そして、多くのAWSサービスの特徴を理解した上で、さらに高度なデータ分析環境を実現するソリューションやトラブルシューティングの知識が必要とされるため数あるAWS認定の中でも難易度の高い認定と言えるでしょう。
学習リソース
以下に「AWS Certified Data Analytics – Specialty(DAS) | AWS 認定 データアナリティクス – 専門知識」のAWS認定に関する学習リソースについて紹介します。
英語の記事や資料が多いですが専門用語中心なので比較的理解しやすいと思います。
英語が苦手な場合はChromeの右クリックで翻訳機能を使って、なんとなくわかる日本語に変換しながら学習するのも良いでしょう。
重要なのは日本語の資料に無い情報は翻訳しながらでも英語を読みすすめて必要な知識を得ることが合格に近づく鍵です。
- AWS認定公式ページ(DAS)
- 試験ガイド(DAS)
- サンプル問題(DAS)
- AWSサービス別資料(AWS Black Belt Online Seminar資料)
- 模擬試験
- AWSトレーニングライブラリ(デジタルトレーニング)
- AWSドキュメント
- よくある質問
- AWS ナレッジセンター
- AWS Big Data Blog
- Amazon Web Services ブログ
- AWS News Blog
- AWS Events Content
- AWS認定対策本(DAS)
- Udemy(DAS)
- その他、キーワードでGoogle検索
AWS認定の公式ページには試験の内容や試験の準備に関する資料やリンクがまとめられていますので、最初にこちらを確認するようにしましょう。
まずは試験ガイドで受験するAWS認定の試験範囲とどのような内容が出題されるかを把握します。
次に試験ガイドとセットで掲載されているサンプル問題を解いて、ざっくりとした出題傾向や大まかな出題される知識の粒度を把握します。
AWSドキュメントは詳細で情報量も豊富ですが膨大な量なので、重要点をまとめた「AWSサービス別資料(AWS Black Belt Online Seminar資料)」から各サービスを学習することがおすすめです。
受験するAWS認定の出題傾向や重要点を確認できるため、試験直前の腕試しではなく可能な限り早い段階に受けて対策の糧とするほうが良いです。
ほぼ全ての各認定に用意され、試験準備のための要点がまとめられている「Exam Readiness(DAS)」を受講します。
また、各サービスごとの「Introduction」や「Primer」などのキーワードで出てくるEラーニングを受けて各サービスの理解を深めます。
AWS認定の学習の基本はAWSドキュメントを読むことです。
AWSドキュメントはボリュームが多いため、効率よく学習するには、
「ベストプラクティス(best practice)」
「トラブルシューティング(troubleshooting)」
などの重要事項を絞り込めるキーワードでドキュメント内を検索して重要事項から学習することをおすすめします。
その後、模擬試験の出題傾向から重要と思われる概念を中心に読んだり、時間の余裕があれば全体を通しで読んでいきます。
受験するAWS認定の分野のサービスのQ&Aの内容を学習します。
受験するAWS認定の分野のサービスのAWS ナレッジセンターの内容を学習します。実際のユーザーから最も頻繁に寄せられる質問や要望に対するQ&Aがまとめられているのでとても参考になります。
カテゴリ別ブログで受験するAWS認定に関連するサービスの記事に一通り目を通します。
日本語版AWS News Blogで受験するAWS認定に関連するサービスの記事(特に問題解決方法、アーキテクチャ、事例、認定が新設・改定される前にリリースされた機能追加について説明している記事)を読んでいきます。
英語版AWS News Blogで受験するAWS認定に関連するサービスの記事(特に問題解決方法、アーキテクチャ、事例、認定が新設・改定される前にリリースされた機能追加について説明している記事)を読んでいきます。
過去のAWS Summitやre:Inventの資料などを検索して受験するAWS認定の分野のサービスを学習します。特にre:InventのBreakout Sessionなどのセッションで説明されている内容は参考になります。
最近ではAWS認定に特化した対策本も多く出版されていますので、それらを活用して効率よく重要点を学習していくこともおすすめです。
また、UdemyなどのサードパーティのEラーニングサービスも余裕があれば活用します。
AWSのサービス名、模擬試験でわからなかった用語、その他上記リソースを読んでも内容がわからなかったキーワードなどで検索して出てきたブログなどを参考にします。
日本語だけではなく英語で検索して英語圏のサイトから日本語サイトには無い情報を探すことも知識を増やすことにつながるためおすすめです。
重要ポイント
ここでは「AWS Certified Data Analytics – Specialty(DAS) | AWS 認定 データアナリティクス – 専門知識」の学習過程で個人的に重要だと感じたポイントをまとめました。
重要ポイントとは言っていますが、各人の知識によって感じ方に個人差があることをご理解の上で参照してください。
Amazon Athena
- Athenaでのパフォーマンスチューニング(パーティション、データの圧縮と分割、ファイルサイズ最適化、ファイル形式Apache ParquetとApache ORCの使用など)
https://aws.amazon.com/jp/blogs/news/top-10-performance-tuning-tips-for-amazon-athena/ - Athenaのクエリ結果、出力ファイル、クエリ履歴の使用とIAM権限制御
https://docs.aws.amazon.com/ja_jp/athena/latest/ug/querying.html - Amazon Athena、Amazon S3 Select、Amazon S3 Glacier Selectの違い(対象サービス、対象ファイル形式、検索方式、コストなど)
https://docs.aws.amazon.com/ja_jp/athena/latest/ug/when-should-i-use-ate.html
https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/selecting-content-from-objects.html
https://docs.aws.amazon.com/ja_jp/amazonglacier/latest/dev/glacier-select.html
https://aws.amazon.com/jp/blogs/news/s3-glacier-select/
https://aws.amazon.com/jp/blogs/news/querying-data-without-servers-or-databases-using-amazon-s3-select/ - データ使用量の制御制限の設定
https://docs.aws.amazon.com/ja_jp/athena/latest/ug/workgroups-setting-control-limits-cloudwatch.html
Amazon Elasticsearch Service
- Amazon Elasticsearch Serviceの概要(課金体系、Kibanaのアクセス制御、ストリーミングデータを連携できるAWSサービス)
https://docs.aws.amazon.com/ja_jp/elasticsearch-service/latest/developerguide/what-is-amazon-elasticsearch-service.html
https://docs.aws.amazon.com/ja_jp/elasticsearch-service/latest/developerguide/es-kibana.html
https://docs.aws.amazon.com/ja_jp/elasticsearch-service/latest/developerguide/es-aws-integrations.html - Amazon Elasticsearch Serviceのインデックス作成パフォーマンスの向上策
https://aws.amazon.com/jp/premiumsupport/knowledge-center/elasticsearch-indexing-performance/ - JVMメモリ負荷が高くなった時の対処法
https://aws.amazon.com/premiumsupport/knowledge-center/high-jvm-memory-pressure-elasticsearch/ - Amazon Kinesis Data FirehoseからVPC内のAmazon Elasticsearch Serviceへのストリーミングデータ取り込み
https://aws.amazon.com/jp/blogs/news/ingest-streaming-data-into-amazon-elasticsearch-service-within-the-privacy-of-your-vpc-with-amazon-kinesis-data-firehose/
Amazon EMR
- Amazon EMRがサポートするアプリケーション(Apache Hadoop、Apache HBase、Apache Hive、Hue、Apache Pig、Presto、Apache Sparkなど)
https://docs.aws.amazon.com/ja_jp/emr/latest/ReleaseGuide/emr-release-components.html - Amazon EMRでAmazon S3のHBaseを使用。別AZへのリードレプリカクラスターの配置で可用性向上。
https://docs.aws.amazon.com/ja_jp/emr/latest/ReleaseGuide/emr-hbase-s3.html
https://aws.amazon.com/jp/emr/features/hbase/ - Amazon EMRのIAM管理とEMRFS(S3を使用するHDFS実装)のIAMロールによるアクセス制御
https://docs.amazonaws.cn/en_us/emr/latest/ManagementGuide/emr-iam-roles.html
https://docs.amazonaws.cn/en_us/emr/latest/ManagementGuide/emr-emrfs-iam-roles.html - AWS CLI、EMR APIでのステップの実行後のクラスター自動終了のコントロール
https://docs.aws.amazon.com/ja_jp/emr/latest/ManagementGuide/emr-plan-longrunning-transient.html - Amazon EMRのブロックパブリックアクセス(Block Public Access)
https://docs.aws.amazon.com/ja_jp/emr/latest/ManagementGuide/emr-block-public-access.html - Amazon EMRでAuto Scalingするためのメトリクス(YarnMemoryAvailablePercentage、ContainerPendingRatio)
https://aws.amazon.com/jp/premiumsupport/knowledge-center/auto-scaling-in-amazon-emr/ - Amazon EMRはEMRFSの整合性のあるビューのメタデータ管理にAmazon DynamoDBを使用している
https://docs.aws.amazon.com/ja_jp/emr/latest/ManagementGuide/emrfs-metadata.html
https://aws.amazon.com/jp/premiumsupport/knowledge-center/emrfs-metadata-delete-records/ - Amazon EMRのS3DistCpを使用したAmazon S3データのHDFSへのコピー
https://docs.aws.amazon.com/ja_jp/emr/latest/ReleaseGuide/UsingEMR_s3distcp.html - Amazon EMRのPrestoでAWS Glue Data Catalogを使用する
https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-presto-glue.html - Amazon EMRのJDBCデータベースコネクタの追加
https://docs.aws.amazon.com/ja_jp/emr/latest/ReleaseGuide/presto-adding-db-connectors.html - Amazon EMRの暗号化
https://docs.aws.amazon.com/ja_jp/emr/latest/ManagementGuide/emr-data-encryption-options.html - Amazon EMRのCloudWatchメトリクス
https://docs.aws.amazon.com/ja_jp/emr/latest/ManagementGuide/UsingEMR_ViewingMetrics.html - 追加ソフトウェアをインストールするためのブートストラップアクション
https://docs.aws.amazon.com/ja_jp/emr/latest/ManagementGuide/emr-plan-bootstrap.html
AWS Glue
- AWS Glueジョブの完了前後にAmazon RedshiftでSQLコマンドを実行する
https://aws.amazon.com/jp/premiumsupport/knowledge-center/sql-commands-redshift-glue-job/ - Amazon S3のイベント通知で呼び出したAWS Lambda関数でAWS Glueを実行する。
https://aws.amazon.com/jp/blogs/news/build-and-automate-a-serverless-data-lake-using-an-aws-glue-trigger-for-the-data-catalog-and-etl-jobs/ - オンプレミスデータベースをAWS DMSでAmazon S3にストリーミングし、AWS Glueで分析基盤に取り込む
https://aws.amazon.com/jp/blogs/news/loading-ongoing-data-lake-changes-with-aws-dms-and-aws-glue/ - Amazon Athenaを使用したクロスアカウント、クロスリージョンのAWS Glueデータカタログ
https://aws.amazon.com/jp/blogs/news/cross-account-aws-glue-data-catalog-access-with-amazon-athena/
https://docs.aws.amazon.com/ja_jp/athena/latest/ug/cross-account-permissions.html
https://docs.aws.amazon.com/ja_jp/athena/latest/ug/fine-grained-access-to-glue-resources.html - AWS Glueがサポートしているアプリケーション(PythonとPySpark拡張機能、Scala)でのAWS Glue ETLスクリプトプログラミング
https://docs.aws.amazon.com/ja_jp/glue/latest/dg/aws-glue-programming.html - AWS Glueジョブブックマークを使用した処理済みデータの追跡
https://docs.aws.amazon.com/ja_jp/glue/latest/dg/monitor-continuations.html
https://aws.amazon.com/jp/blogs/news/process-data-with-varying-data-ingestion-frequencies-using-aws-glue-job-bookmarks/ - AWS Glueで最適化されたParquetライター
https://aws.amazon.com/jp/blogs/news/load-data-incrementally-and-optimized-parquet-writer-with-aws-glue/
Amazon Kinesis
- Amazon Kinesis Data Streamsの概要(シャード、パーティションキー、シーケンス番号、Kinesis Client Libraryの使用)
https://docs.aws.amazon.com/ja_jp/streams/latest/dev/key-concepts.html
https://aws.amazon.com/jp/kinesis/data-streams/faqs/
https://docs.aws.amazon.com/ja_jp/streams/latest/dev/shared-throughput-kcl-consumers.html - Amazon Kinesis Data Firehoseが連携できるサービス
https://docs.aws.amazon.com/ja_jp/firehose/latest/dev/what-is-this-service.html - Amazon Kinesis Data Analyticsの前処理と出力先でのAWS Lambda関数連携
https://docs.aws.amazon.com/ja_jp/kinesisanalytics/latest/dev/lambda-preprocessing.html
https://docs.aws.amazon.com/ja_jp/kinesisanalytics/latest/dev/how-it-works-output-lambda-functions.html - プロデューサーおよびコンシューマーの再試行で発生した重複レコードの処理
https://docs.aws.amazon.com/ja_jp/streams/latest/dev/kinesis-record-processor-duplicates.html - Amazon Kinesis Data Streamsのスケーリングメカニズムとシャードのバランス調整
https://aws.amazon.com/jp/blogs/news/under-the-hood-scaling-your-kinesis-data-streams/ - AWS Application Auto Scalingを使用したAmazon Kinesis Data Streamsのスケーリング
https://aws.amazon.com/jp/blogs/news/scaling-amazon-kinesis-data-streams-with-aws-application-auto-scaling/ - Amazon Kinesis Data StreamsとAmazon Kinesis Data Analyticsを組み合わせた開発
https://aws.amazon.com/jp/blogs/news/new-amazon-kinesis-data-analytics-for-java/ - Amazon Kinesis Data Streamsの拡張ファンアウトでスループットを専有してレコードを受け取るコンシューマーを開発
https://docs.aws.amazon.com/ja_jp/streams/latest/dev/enhanced-consumers.html
https://docs.aws.amazon.com/ja_jp/streams/latest/dev/building-enhanced-consumers-api.html
https://aws.amazon.com/jp/blogs/news/kds-enhanced-fanout/ - リシャーディング戦略とリシャーディング後の親シャードの処理
https://docs.aws.amazon.com/ja_jp/streams/latest/dev/kinesis-record-processor-scaling.html
https://docs.aws.amazon.com/ja_jp/streams/latest/dev/kinesis-using-sdk-java-resharding.html
https://docs.aws.amazon.com/ja_jp/streams/latest/dev/kinesis-using-sdk-java-after-resharding.html
AWS Lake Formation
- AWS Lake Formationの概要(統合できるサービスと仕組み)
https://docs.aws.amazon.com/ja_jp/lake-formation/latest/dg/what-is-lake-formation.html
https://docs.aws.amazon.com/ja_jp/lake-formation/latest/dg/how-it-works.html
https://aws.amazon.com/jp/lake-formation/features/
Amazon Managed Streaming for Kafka(Amazon MSK)
- Amazon MSKとAmazon Kinesis Data Streamsの使い分け(既存のKafkaの移行。基本的にはAmazon Kinesis Data Streams。)
https://www.slideshare.net/AmazonWebServicesJapan/20191120-aws-black-belt-online-seminar-amazon-managed-streaming-for-apache-kafka-amazon-msk
Amazon QuickSight
- QuickSightでサポートされているデータソース
https://docs.aws.amazon.com/ja_jp/quicksight/latest/user/supported-data-sources.html - QuickSightでIDフェデレーションとシングルサインオン(SSO)を使用
https://docs.aws.amazon.com/ja_jp/quicksight/latest/user/external-identity-providers.html - Amazon QuickSightからAmazon Redshiftへの接続とIPアドレス範囲制限
https://docs.aws.amazon.com/ja_jp/quicksight/latest/user/enabling-access-redshift.html - Amazon QuickSightからAmazon Athenaへの接続とAmazon S3のアクセス許可
https://docs.aws.amazon.com/ja_jp/quicksight/latest/user/athena.html - QuickSightのML Insightsによる異常検知
https://aws.amazon.com/jp/blogs/news/amazon-quicksight-announces-general-availability-of-ml-insights/ - 行レベルのセキュリティ(RLS)を使用したデータセットへのアクセスの制限
https://docs.aws.amazon.com/ja_jp/quicksight/latest/user/restrict-access-to-a-data-set-using-row-level-security.html - 列レベルのセキュリティ(CLS)を使用したデータセットへのアクセスの制限
https://docs.aws.amazon.com/ja_jp/quicksight/latest/user/restrict-access-to-a-data-set-using-column-level-security.html - Amazon QuickSightで使用できるビジュアルタイプと各ビジュアルタイプのユースケース
https://docs.aws.amazon.com/ja_jp/quicksight/latest/user/working-with-visual-types.html
Amazon Redshift
- Redshiftの概要(ペタバイト規模の構造化および半構造化データを標準的なSQLでクエリできるデーテウェアハウス)
https://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/welcome.html - ステージングテーブルの使用
https://docs.aws.amazon.com/ja_jp/redshift/latest/dg/merge-create-staging-table.html
https://docs.aws.amazon.com/ja_jp/redshift/latest/dg/t_updating-inserting-using-staging-tables-.html - Amazon RedshiftとAmazon Redshift Spectrumの併用
https://aws.amazon.com/jp/blogs/news/10-best-practices-for-amazon-redshift-spectrum/ - Amazon Redshift Spectrum外部テーブルでのApache Parquetファイルの使用とパーティション化
https://docs.aws.amazon.com/ja_jp/redshift/latest/dg/c-spectrum-external-tables.html - Amazon RedshiftのAWS KMSまたはHSMを使用した暗号化
https://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/working-with-db-encryption.html - Amazon Redshiftのデータロード高速化(最適サイズ1MB~125MB、ファイル数はクラスター内のスライス数の倍数、単一COPYコマンドの使用)
https://docs.aws.amazon.com/ja_jp/redshift/latest/dg/c_loading-data-best-practices.html
https://docs.aws.amazon.com/ja_jp/redshift/latest/dg/c_best-practices-use-multiple-files.html
https://docs.aws.amazon.com/ja_jp/redshift/latest/dg/r_COPY.html
https://docs.aws.amazon.com/ja_jp/redshift/latest/dg/c_best-practices-single-copy-command.html - COPYコマンドでのマニフェストファイルを使用したデータファイル指定
https://docs.aws.amazon.com/ja_jp/redshift/latest/dg/loading-data-files-using-manifest.html - データ分散スタイルの特徴(EVEN:結合に関与しないテーブル、KEY:結合するテーブル、ALL:更新頻度、更新範囲が少ないテーブル)
https://docs.aws.amazon.com/ja_jp/redshift/latest/dg/c_choosing_dist_sort.html - ワークロード管理(WLM)によるクエリ同時実行数とメモリ割り当て管理
https://docs.aws.amazon.com/redshift/latest/dg/cm-c-implementing-workload-management.html - 同時実行スケーリングによるクラスター容量の自動追加
https://docs.aws.amazon.com/ja_jp/redshift/latest/dg/concurrency-scaling.html - ノードタイプ(高密度ストレージノードタイプ、高密度コンピューティングノードタイプ)の特徴
https://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/working-with-clusters.html - 伸縮自在なサイズ変更(Elastic Resize)の特徴
https://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/managing-cluster-operations.html - Amazon Redshiftの監査ログの有効化
https://aws.amazon.com/jp/premiumsupport/knowledge-center/logs-redshift-database-cluster/
https://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/db-auditing.html - Amazon Redshiftの列レベルのアクセス制御
https://aws.amazon.com/jp/blogs/news/achieve-finer-grained-data-security-with-column-level-access-control-in-amazon-redshift/
Amazon CloudWatch Logs
- Amazon CloudWatch Logsにログを発行するAWSのサービス
https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/logs/aws-services-sending-logs.html - Amazon CloudWatch Logsからデータ連携できるAWSサービス(Amazon Kinesis Data Streams、Amazon Kinesis Data Firehose、Amazon Elasticsearch Service、Amazon S3など)
https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/logs/SubscriptionFilters.html
https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/logs/CWL_ES_Stream.html
https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/logs/S3Export.html