AWS認定資格 WEB問題集&徹底解説
ソリューションアーキテクト-プロフェッショナル
AWSサービスの一つであるAmazon EMRはどんな内容なのでしょうか?また、AWS認定資格のソリューションアーキテクト-プロフェッショナル(SAP)に合格するためには、サービスのどんなポイントを押さえておけばよいのでしょうか?
ここでは、そんなあなたの疑問に回答していきたいと思います
1. サービス概要
Amazon EMR(Elastic MapReduce)は、Apache Hadoop・Apache Sparkをはじめとするビッグデータ処理フレームワークをAWS上でマネージドに実行するサービスです。EC2クラスターへのHadoop/Sparkのインストール・設定・チューニングを自動化します。
クラスター型(EC2上)の他に、EMR Serverless(サーバーレス実行)とEMR on EKS(Kubernetesクラスター上で実行)も利用できます。
2. 主な特徴と機能
2.1 サポートするフレームワーク
- Apache Spark: 大規模データ処理・機械学習・ストリーミング処理。EMRの中心的なフレームワーク。
- Apache Hive: HiveQL(SQL系)でHadoopデータを分析。Glue Data Catalogとの連携。
- Apache HBase: 列指向のNoSQLデータベース(Hadoopの上で動作)。低レイテンシのランダムアクセス。
- Presto(Trino): インタラクティブSQLクエリ(複数データソースのFederated Query)。
- Apache Flink: リアルタイムストリーミング処理。
2.2 クラスター構成
- マスターノード(プライマリ): クラスター全体を管理(YARN ResourceManager・HDFS NameNode)。1台。
- コアノード: データを保存(HDFS)し処理も実行。スケールイン時は注意(データが失われる可能性)。
- タスクノード(Task Node): 処理のみ実行(データを持たない)。Spot Instanceを使った低コスト処理に最適。スケーリングが容易。
2.3 EMRFS(EMR File System)
HDFSの代わりにS3をストレージとして使う機能。クラスターを削除してもデータが残り、コストとデータ耐久性を最適化。データとコンピューティングを分離できます。
2.4 EMR Serverless
クラスターを事前プロビジョニングせずにSpark/HiveジョブをサーバーレスでSubmit。自動スケーリング・アイドル時は課金なし。運用コストを最小化。
2.5 EMR on EKS
既存のEKSクラスター上でSparkジョブを実行。コンテナ化されたアプリケーションとSparkジョブを同一クラスターで実行してリソース効率を向上。
2.6 Instance Fleet と Spot活用
Instance Fleetで複数のインスタンスタイプ・Spot/On-Demandを混在させてコストと可用性のバランスを最適化。タスクノードにSpotを使うとコストを最大80%削減。
3. アーキテクチャおよび技術要素
- S3にRAWデータを配置(EMRFS使用)。
- EMRクラスター(マスター+コア+タスクノード)を起動。
- SparkジョブでS3からデータを読み込み→処理→S3に結果を出力。
- 処理完了後にクラスターを終了(一時クラスター)。データはS3に残存。
ストレージ分離パターン: HDFS(一時中間データ)+ S3(永続データ)を使い分け。クラスター廃棄後もS3のデータを維持。
4. セキュリティと認証・認可
- Kerberos認証: クラスター内の通信をKerberosで認証(Active Directory統合可能)。
- Apache Ranger / Lake Formation統合: HiveやSparkからアクセスするデータへの列/行レベルのアクセス制御。
- 転送時暗号化: クラスター内ノード間通信・S3との通信をTLS暗号化。
- 保存時暗号化: HDFS・EBS・S3(EMRFS)のKMS暗号化。
- VPCプライベートサブネット配置: クラスターをプライベートサブネットに配置してインターネットから隔離。
5. 料金形態
- EC2クラスター: EMRの時間単位料金 + EC2インスタンスの料金。マスター/コア/タスクノードそれぞれのインスタンス料金。
- EMR Serverless: ジョブ実行中のvCPU・メモリの使用量(vCPU時間・GB時間)に課金。アイドル時は課金なし。
- EMR on EKS: EKSクラスターのEC2ノード料金のみ(EMR追加料金なし)。
- コスト削減: Spot InstanceをTaskノードに使うと最大80%削減。EMR Serverlessで定常ジョブ以外はサーバーレス化。
6. よくあるアーキテクチャ・設計パターン
- 一時クラスター(トランジェントクラスター): ジョブ実行ごとにクラスターを起動→処理→終了。コストを最小化。データはS3(EMRFS)に保持。
- Spot活用のコスト最適化: マスター/コアノードにOn-Demand、タスクノードにSpotを使って処理能力を低コストでスケールアップ。
- EMR + Glue Data Catalog: EMR上のHiveがGlue Data Catalogを共有メタストアとして使用→GlueCrawlerで更新されたスキーマをHive/Athenaが即座に参照。
7. 設定・デプロイ手順(ハンズオン例)
- EMRコンソールで「クラスターの作成」→アプリケーション(Spark/Hive等)・インスタンスタイプ・台数を選択。
- EMRFS使用のため、コアノードのHDFS容量は最小構成で可(S3をメインストレージとして使用)。
- タスクノードにSpot Instanceを設定してコスト最適化。
- EMR StepsにSparkジョブ(spark-submit)を追加して自動実行。
- ジョブ完了後にクラスターを自動終了(Auto-terminate設定)。
8. 試験で問われやすいポイント
8.1 EMRノードの役割
- Q: EMRクラスターの3種類のノードの役割は?
A: マスターノード(クラスター管理・ジョブスケジューリング)、コアノード(HDFS保存+処理実行)、タスクノード(処理のみ・HDFSなし・Spot向き)。 - Q: EMRでSpot Instanceを安全に使えるのはどのノードタイプ?
A: タスクノード(HDFSデータを持たないため、Spotのインタラプトでデータ損失なし)。
8.2 EMRFS(S3ストレージ)
- Q: EMRクラスターを削除した後もデータを保持するには?
A: EMRFS(S3をストレージとして使用)。クラスター削除後もS3にデータが残る。HDFSはクラスター削除で消去される。
8.3 EMR vs Glue
- Q: GlueとEMRの使い分けは?
A: Glueはサーバーレス・シンプルETL・Glue Data Catalog管理に最適。EMRはHadoop/Spark/HBase等の細かいクラスター構成・カスタマイズ・長時間実行ジョブ・HBaseなどGlueが非対応のフレームワーク利用時に選択。
8.4 EMR Serverless
- Q: クラスターを管理せずにSparkジョブをEMRで実行するには?
A: EMR Serverless。クラスター不要でジョブをSubmitし、実行時間のみ課金(vCPU・メモリ時間)。