翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Application Recovery Controller を使用して EMR クラスターのマルチ AZ フェイルオーバーを管理する
Amazon Web Services、Aarti Rajput、Ashish Bhatt、Neeti Mishra、Nidhi Sharma
概要
このパターンは、Amazon EMR ワークロードの効率的なディザスタリカバリ戦略を提供し、ひとつの AWS リージョン内における複数のアベイラビリティーゾーン間で高可用性とデータ整合性を確保するのに役立ちます。この設計では、Amazon Application Recovery Controller と Application Load Balancer を使用して、Apache Spark ベースの EMR クラスターのフェイルオーバーオペレーションとトラフィック分散を管理します。
標準条件下では、プライマリアベイラビリティーゾーンは、完全な読み取り / 書き込み機能を備えたアクティブな EMR クラスターとアプリケーションをホストします。アベイラビリティーゾーンが予期せず失敗した場合、トラフィックは自動的にセカンダリアベイラビリティーゾーンにリダイレクトされ、そこで新しい EMR クラスターが起動されます。両方のアベイラビリティーゾーンは、専用のゲートウェイエンドポイントを介して共有 Amazon Simple Storage Service (Amazon S3) バケットにアクセスし、一貫したデータ管理を実現します。このアプローチにより、ダウンタイムが最小限に抑えられ、アベイラビリティーゾーンの障害発生時に重要なビッグデータワークロードを迅速に復旧できます。このソリューションは、リアルタイム分析が重要な金融や小売などの業界で役立ちます。
前提条件と制限
前提条件
アクティブな AWS アカウント
Amazon Elastic Compute Cloud (Amazon EC2) 上の Amazon EMR
EMR クラスターのプライマリノードから Amazon S3 へのアクセス。
AWS マルチ AZ インフラストラクチャ
制限事項
一部の AWS のサービス は では使用できません AWS リージョン。利用可能なリージョンについては、「AWS のサービス (リージョン別)
」を参照してください。特定のエンドポイントについては、「Service endpoints and quotas」ページから、サービスのリンクを選択してご確認ください。
製品バージョン
アーキテクチャ
ターゲットテクノロジースタック
Amazon EMR クラスター
Amazon Application Recovery Controller
Application Load Balancer
Amazon S3 バケット
Amazon S3 のゲートウェイエンドポイント
ターゲットアーキテクチャ

このアーキテクチャは、複数のアベイラビリティーゾーンを使用し、Application Recovery Controller を通じて自動復旧メカニズムを実装することで、アプリケーションの耐障害性を提供します。
Application Load Balancer は、トラフィックをアクティブな Amazon EMR 環境にルーティングします。通常この環境は、プライマリアベイラビリティーゾーンのプライマリ EMR クラスターになります。
アクティブな EMR クラスターはアプリケーションリクエストを処理し、専用の Amazon S3 ゲートウェイエンドポイント経由で Amazon S3 に接続して、読み取りおよび書き込みオペレーションを行います。
Amazon S3 は中央データリポジトリとして機能し、チェックポイントまたは EMR クラスター間の共有ストレージとして使用される可能性があります。EMR クラスターは、
s3://プロトコルと EMR ファイルシステム (EMRFS) を介して Amazon S3 に直接書き込む際にデータ整合性を維持します。Application Recovery Controller は、プライマリアベイラビリティーゾーンの状態を継続的にモニタリングし、必要に応じてフェイルオーバーオペレーションを自動的に管理します。
Application Recovery Controller がプライマリ EMR クラスターで障害を検出すると、次のアクションを実行します。
アベイラビリティーゾーン 2 のセカンダリ EMR クラスターへのフェイルオーバープロセスを開始します。
ルーティング設定を更新して、トラフィックをセカンダリクラスターに転送します。
ツール
AWS サービス
Amazon Application Recovery Controller は、 とアベイラビリティーゾーン間のアプリケーションの復旧を管理 AWS リージョン および調整するのに役立ちます。このサービスは、従来のツールやプロセスに必要な手動ステップを削減することで、プロセスを簡素化し、アプリケーション復旧の信頼性を向上させます。
Application Load Balancer は、開放型システム間相互接続 (OSI) モデルの第 7 層であるアプリケーションレイヤーで機能します。受信アプリケーショントラフィックを複数のアベイラビリティーゾーンの複数のターゲット (EC2 インスタンスなど) に分散します。これにより、アプリケーションの可用性が向上します。
AWS Command Line Interface (AWS CLI) は、コマンドラインシェルのコマンド AWS のサービス を使用して を操作するのに役立つオープンソースツールです。
Amazon EMR は、Apache Spark、Apache Hive、Presto などのオープンソースフレームワークのデータ処理、インタラクティブ分析、機械学習を提供するビッグデータプラットフォームです。
AWS Identity and Access Management (IAM) は、誰を認証し、誰に使用する権限を付与するかを制御することで、 AWS リソースへのアクセスを安全に管理するのに役立ちます。
Amazon S3 のウェブサービスインターフェイスはシンプルで、いつでも、ウェブのどこからでも容量に関係なくデータを格納および取得できます。このサービスを使用すると、クラウドネイティブストレージを利用するアプリケーションを簡単に構築できます。
Amazon S3 のゲートウェイエンドポイントは、 AWS ネットワーク経由で Virtual Private Cloud (VPC) から Amazon S3 にアクセスするためにルートテーブルで指定するゲートウェイです。
ベストプラクティス
「AWS best practices for security, identity, and compliance
」の記載に従って、信頼性のある安全なアーキテクチャを構築します。 アーキテクチャ調整の際には「AWS Well-Architected フレームワーク
」を参照してください。 Amazon S3 Access Grants を使用して、Spark ベースの EMR クラスターから Amazon S3 へのアクセスを管理します。詳しくはブログ記事「Use Amazon EMR with S3 Access Grants to Scale Spark access to Amazon S3
」をご確認ください。
エピック
| タスク | 説明 | 必要なスキル |
|---|---|---|
AWS マネジメントコンソールにサインインします。 | AWS マネジメントコンソール | AWS DevOps |
AWS CLIを設定します。 | をインストールする AWS CLI か、最新バージョンに更新して、 AWS のサービス で を操作できるようにします AWS マネジメントコンソール。手順については、AWS CLI ドキュメントを参照してください。 | AWS DevOps |
| タスク | 説明 | 必要なスキル |
|---|---|---|
S3 バケットを作成する。 |
| AWS DevOps |
EMR クラスターの作成 |
| AWS DevOps |
EMR クラスターのセキュリティ設定を行います。 |
| AWS DevOps |
EMR クラスターに接続します。 | 提供されたキーペアを使用して、SSH を介して EMR クラスターのプライマリノードに接続します。 キーペアファイルがアプリケーションと同じディレクトリに存在することを確認します。 次のコマンドを実行して、キーペアに正しいアクセス許可を設定し、SSH 接続を確立します。
| AWS DevOps |
Spark アプリケーションをデプロイします。 | SSH 接続を確立すると、Hadoop コンソールに表示されます。
| AWS DevOps |
Spark アプリケーションをモニタリングします。 |
| AWS DevOps |
| タスク | 説明 | 必要なスキル |
|---|---|---|
Application Load Balancer を作成します。 | AWS リージョン内の 2 つのアベイラビリティーゾーンにデプロイされている Amazon EMR プライマリノード間でトラフィックをルーティングするターゲットグループを設定します。 手順については、ELB ドキュメントのApplication Load Balancer のターゲットグループを作成する」を参照してください。 | AWS DevOps |
Application Recovery Controller でゾーンシフトを設定します。 | このステップでは、Application Recovery Controller のゾーンシフト機能を使用して、トラフィックを別のアベイラビリティーゾーンにシフトします。
を使用するには AWS CLI、Application Recovery Controller ドキュメントの「ゾーンシフト AWS CLI で を使用する例」を参照してください。 | AWS DevOps |
ゾーンシフトの設定と進行状況を確認します。 |
| AWS DevOps |
関連リソース
AWS CLI コマンド:
Configuring Amazon EMR cluster instance types and best practices for Spot instances (Amazon EMR ドキュメント)
IAM でのセキュリティのベストプラクティス (IAM ドキュメント)
インスタンスプロファイルを使用する (IAM ドキュメント)
Use zonal shift and zonal autoshift to recovery applications in ARC (Application Recovery Controller ドキュメント)