263-AWS SAP AWS 「理論・実践・一問道場」EMRクラスター

 

理論

EMRクラスターとコスト最適化の基本知識

Amazon EMR(Elastic MapReduce)は、大規模データ処理を簡単かつ効率的に実行できるAWSのサービスです。この問題を解くためには、以下の基本知識が重要です。

1. EMRの基本構成

  • プライマリノード
    • クラスター管理を担当。ジョブのスケジューリングやノードの状態管理を行う。
      必ずオンデマンドインスタンスを使用するのが推奨(安定性が必要なため)。
  • コアノード
    • データの保存と処理を担当。HDFS(Hadoop Distributed File System)のデータを保持する。
      → 通常、安定性が必要なのでオンデマンドインスタンスが適している。
  • タスクノード
    • 一時的なデータ処理を行うノード。HDFSのデータを保持せず、単に処理を実行する。
      スポットインスタンスを使用してコストを削減できる。

2. インスタンスの種類とコスト削減

  • オンデマンドインスタンス
    • 必要な時に利用可能。柔軟性が高いが、コストは高め。
      プライマリノードやコアノードに適している。
  • スポットインスタンス
    • AWSの余剰キャパシティを利用する低コストなインスタンス。一時的に停止する可能性がある。
      タスクノードに適しており、大幅なコスト削減が可能。
  • コンピュートセービングプラン
    • 長期間使用するインスタンスのコストを削減する予約型のプラン。
      オンデマンドインスタンスのコストを抑えるために有効。

3. COST最適化のためのEMR設計のポイント

  1. プライマリノードとコアノードは安定性重視
    1. これらのノードはクラスター全体の動作に影響するため、オンデマンドインスタンスを使用する。
  1. タスクノードはスポットインスタンスを活用
    1. 処理が完了すれば終了しても問題ないため、スポットインスタンスでコストを抑える。
  1. クラスターの終了タイミングを明確化
    1. 処理が完了したらクラスター全体、または一部のノード(タスクノードのみ)を終了してリソースの無駄を防ぐ。
  1. コンピュートセービングプランの適用
    1. プライマリノードやコアノードなど、長期間利用するインスタンスのコストを抑える。


5. まとめ

EMRクラスターの設計では、ノードごとに役割と安定性の要件を理解し、オンデマンドインスタンスとスポットインスタンスを適切に使い分けることが重要です。また、長期間利用するリソースには予約プランを適用することで、さらにコストを最適化できます。

実践

一問道場

質問 #263

トピック 1
ソリューションアーキテクトは、EMRファイルシステム(EMRFS)を使用するAmazon EMRクラスターの設計をレビューする必要があります。このクラスターは、ビジネス上重要なタスクを実行します。すべてのタスクノード、プライマリーノード、コアノードは常にAmazon EC2のオンデマンドインスタンスで稼働しています。EMRのタスクは毎朝1:00 AMに開始し、6時間かけて実行を完了します。ただし、このデータはその日の遅い時間まで参照されないため、処理時間の長さは優先事項ではありません。
ソリューションアーキテクトはアーキテクチャをレビューし、コンピュートコストを最小限に抑えるための解決策を提案する必要があります。
どのソリューションをソリューションアーキテクトが推奨すべきですか?

A.
タスクノード、プライマリーノード、コアノードをすべてインスタンスフリートのスポットインスタンスで起動する。処理が完了したら、クラスターを含むすべてのインスタンスを終了する。
B.
プライマリーノードとコアノードをオンデマンドインスタンスで起動する。タスクノードをインスタンスフリートのスポットインスタンスで起動する。処理が完了したら、クラスターを含むすべてのインスタンスを終了する。オンデマンドインスタンスの使用をカバーするためにコンピュートセービングプランを購入する。
C.
すべてのノードをオンデマンドインスタンスで起動し続ける。処理が完了したら、クラスターを含むすべてのインスタンスを終了する。オンデマンドインスタンスの使用をカバーするためにコンピュートセービングプランを購入する。
D.
プライマリーノードとコアノードをオンデマンドインスタンスで起動する。タスクノードをインスタンスフリートのスポットインスタンスで起動する。処理が完了したら、タスクノードのインスタンスのみを終了する。オンデマンドインスタンスの使用をカバーするためにコンピュートセービングプランを購入する。

解説

この質問では、Amazon EMRクラスターでのコンピュートコストを最小限に抑えるための適切なアプローチを選択する必要があります。以下は各選択肢の評価と正解の解説です。

選択肢の評価

A.
「タスクノード、プライマリーノード、コアノードをすべてスポットインスタンスで起動する」
  • 利点: スポットインスタンスはコストが大幅に安い。
  • 欠点: スポットインスタンスは中断される可能性があり、プライマリーノードやコアノードがスポットインスタンスに設定されると、クラスター全体が中断されるリスクがある。ビジネス上重要なタスクには適さない。
  • 結論: 不適切。

B.
「プライマリーノードとコアノードをオンデマンドインスタンスで起動し、タスクノードをスポットインスタンスで起動する」
  • 利点: プライマリーノードとコアノードは常に安定性を確保し、タスクノードにスポットインスタンスを使用することでコスト削減が可能。処理が完了後、全ノードを終了するため無駄がない。
  • 追加のメリット: コンピュートセービングプランを購入することでオンデマンドインスタンスのコスト削減も図れる。
  • 結論: 適切。

C.
「すべてのノードをオンデマンドインスタンスで起動し続ける」
  • 利点: 安定性が確保される。
  • 欠点: コスト削減ができないため、要件(コスト最小化)に反する。
  • 結論: 不適切。

D.
「プライマリーノードとコアノードをオンデマンドインスタンスで起動し、タスクノードをスポットインスタンスで起動する」
  • 利点: プライマリーノードとコアノードの安定性を確保しつつ、タスクノードでコスト削減が可能。
  • 欠点: 処理後にタスクノードのみを終了し、クラスター全体を停止しない。このため、プライマリーノードとコアノードが動き続け、無駄なコストが発生する可能性がある。
  • 結論: 不適切。

正解: B

理由:
  • プライマリーノードとコアノードをオンデマンドインスタンスで稼働させることで、ビジネス上重要なタスクの安定性を確保。
  • タスクノードをスポットインスタンスにすることで、全体のコストを最小化。
  • 処理後にすべてのノードを終了するため、不要なランニングコストを発生させない。
  • コンピュートセービングプランによりオンデマンドインスタンスのコストをさらに削減可能。
この構成は、コスト効率と安定性のバランスを取った最適なアーキテクチャ設計です。
264-AWS SAP AWS 「理論・実践・一問道場」NATゲートウェイで固定IP262-AWS SAP AWS 「理論・実践・一問道場」リソースの効率化コンテナ技術
Loading...
minami
minami
みなみの成長 🐝
Announcement

🎉 ブログへようこそ 🎉

名前: みなみ一人会社
性別:
国籍: China 🇨🇳
政治スタンス: 民主主義支持者
完全独学で基本情報技術者をはじめ、32個の資格を仕事をしながら取得。
現在はIT会社で技術担当として働きながら、ブログ執筆や学習支援にも取り組んでいます。
独学で合格できる学習法や勉強法、試験対策を発信中!

📚 発信内容

  • 💻 IT・システム開発
  • 🏠 不動産 × 宅建士
  • 🎓 MBA 学習記録