カスタム AMI の使用 - Amazon EMR

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

カスタム AMI の使用

Amazon EMR 5.7.0 以降を使用する場合は、Amazon EMR 用のデフォルトの Amazon Linux AMI ではなく、カスタム Amazon Linux AMI を指定できます。カスタム AMI は、以下を実行する場合に役立ちます。

  • ブートストラップアクションを使用する代わりにアプリケーションを事前インストールして他のカスタマイズを行う。これにより、クラスターの起動時間を短縮し、スタートアップのワークフローを合理化できます。詳細と例については、「事前設定されたインスタンスからカスタム Amazon Linux AMI を作成する」を参照してください。

  • ブートストラップアクションが許可する以上の高度なクラスターおよびノード設定を実装する。

  • 5.24.0 以前の Amazon EMR バージョンを使用している場合は、クラスターの EC2 インスタンスの EBS ルートデバイスボリューム(ブートボリューム)を暗号化します。デフォルト AMI と同様に、カスタム AMI の最小ルートボリュームサイズは 10 GiB です。詳細については、「暗号化された Amazon EBS ルートデバイスボリュームを使用したカスタム AMI の作成」を参照してください。

    注記

    Amazon EMR バージョン 5.24.0 から、セキュリティ設定オプションを使用して EBS ルートデバイスとストレージボリュームを暗号化できます。AWS KMSをキープロバイダーとして使用します。詳細については、「ローカルディスクの暗号化」を参照してください。

重要

Amazon Linux または Amazon Linux 2 AMI(Amazon Linux マシンイメージ)を実行している Amazon EMR クラスターは、デフォルトの Amazon Linux 動作を使用し、再起動を必要とする重要かつ重要なカーネルアップデートを自動的にダウンロードしてインストールしません。これは、デフォルトの Amazon Linux AMI を実行している他の Amazon EC2 インスタンスと同じ動作です。Amazon EMR バージョンのリリース後に再起動が必要な新しい Amazon Linux ソフトウェアアップデート(カーネル、NVIDIA、CUDA アップデートなど)が利用可能になった場合、デフォルトの AMI を実行する Amazon EMR クラスターインスタンスは、これらのアップデートを自動的にダウンロードしてインストールしません。カーネルの更新を取得するには、Amazon EMR AMI をカスタマイズする最新の Amazon Linux AMI を使用する

クラスターレベルのカスタム AMI とインスタンスレベルのカスタム AMI

クラスター全体に 1 つのクラスターレベルのカスタム AMI を割り当てるか、クラスター内の各インスタンスノードにインスタンスレベルのカスタム AMI を割り当てることができます。クラスターレベルのカスタム AMI とインスタンスレベルのカスタム AMI の両方を使用してクラスターを起動することはできません。

Amazon EMR リリース 5.7.0 以降または 6.0 以降を実行しているクラスターの場合、インスタンスフリートまたはインスタンスグループのインスタンスタイプごとに異なるインスタンスレベルのカスタム Amazon Linux AMI を指定できます。たとえば、x86_64 アーキテクチャ(m5.xlarge)および arm64 アーキテクチャ(m6g.xlarge)インスタンスを同じインスタンスフリートまたはインスタンスグループに設定できます。各インスタンスタイプは、インスタンスタイプアーキテクチャに一致する一意のカスタム AMI を使用します。この例では、x86_64 アーキテクチャーを持つ m5.xlarge インスタンスタイプを、x86_64 アーキテクチャーインスタンスレベルのカスタム AMI に設定します。同様に、arm64 アーキテクチャーを持つ m6g.xlarge インスタンスタイプも、対応する arm64 アーキテクチャーインスタンスレベルのカスタム AMI と一致します。インスタンスタイプの Linux AMI の特定の詳細については、「」を参照してください。Linux AMI の検索Linux インスタンス用 Amazon EC2 ユーザーガイド

クラスターレベルのカスタム AMI とインスタンスレベルのカスタム AMI 機能の比較
機能 クラスターレベルのカスタム AMI インスタンスレベルのカスタム AMI

ブートストラップアクションを使用する代わりにアプリケーションを事前インストールして他のカスタマイズを行うことができます。

はい

はい

ブートストラップアクションが許可する以上の高度なクラスターおよびノード設定を実装できます。

はい

はい

5.24.0 以前の Amazon EMR バージョンでは、クラスター EC2 インスタンスの EBS ルートデバイスボリュームを暗号化できます。

はい

はい

同じクラスター内のカスタム AMI で x86 アーキテクチャと ARM (Graviton) アーキテクチャの両方を使用できます。

いいえ

はい

クラスター内のインスタンスタイプごとに 1 つのカスタム AMI を指定する必要があります。

いいえ

はい

カスタム AMI は、クラスターの作成時に指定できます。

はい

はい

実行中のクラスターにインスタンスグループまたはインスタンスフリートを追加するときに、カスタム AMI を指定できます。

いいえ

はい

EMR AMI とカスタム AMI インスタンスを同じクラスターで実行できます。

いいえ

いいえ

ベストプラクティスと考慮事項

Amazon EMR 用のカスタム AMI を作成するときは、以下の点を考慮してください。

  • Amazon EMR 5.30.0以降および、Amazon EMR 6.xシリーズは、Amazon Linux 2 に基づいています。これらの Amazon EMR バージョンでは、カスタム AMI に Amazon Linux 2 に基づくイメージを使用する必要があります。基本カスタム AMI を見つけるには、「Linux AMI の検索」を参照してください。

  • 5.30.0 および 6.x より前の Amazon EMR バージョンでは、Amazon Linux 2 AMI はサポートされません。

  • 64 ビットの Amazon Linux AMI を使用する必要があります。32 ビット AMI は、サポートされていません。

  • 複数の Amazon EBS ボリュームを持つ Amazon Linux AMI はサポートされていません。

  • 最新の EBS-backed Amazon Linux AMI に基づいてカスタマイズします。Amazon Linux AMI および対応する AMI ID のリストについては、Amazon Linux AMI を参照してください。

  • 既存の Amazon EMR インスタンスのスナップショットをコピーしてカスタム AMI を作成しません。これを行うと、エラーになります。

  • Amazon EMR と互換性がある HVM 仮想化タイプおよびインスタンスのみがサポートされます。AMI のカスタマイズプロセスを進めるときは、必ず Amazon EMR と互換する HVM イメージおよびインスタンスタイプを選択してください。互換性のあるインスタンスおよび仮想化タイプについては、「サポートされるインスタンスタイプ」を参照してください。

  • サービスロールには AMI での起動許可が必要であるため、AMI はパブリックであるか、ユーザーが AMI の所有者であるか、AMI を所有者と共有している必要があります。

  • AMI で作成するユーザーをアプリケーションと同じ名前 (hadoophdfsyarnspark など) にすると、エラーが発生します。

  • の内容/tmp,/var, および/emr(AMI 上に存在する場合)は/mnt/tmp,/mnt/var, および/mnt/emrそれぞれ起動中に。ファイルは保持されますが、大量のデータがあると、スタートアップに予想以上の時間がかかる場合があります。

  • 作成日が 2018-08-11 の Amazon Linux AMI に基づくカスタム Amazon Linux AMI を使用する場合、Oozie サーバーの起動に失敗します。Oozie を使用する場合は、作成日が異なるAmazon Linux AMI ID に基づいてカスタム AMI を作成します。以下を使用できますAWS CLIコマンドを使用して、2018.03 バージョンのすべての HVM Amazon Linux AMI のイメージ ID のリストとリリース日を返します。これにより、ベースとして適切な Amazon Linux AMI を選択できます。myRegion を us-west-2 などのリージョン識別子に置き換えます。

    aws ec2 --region MyRegion describe-images --owner amazon --query 'Images[?Name!=`null`]|[?starts_with(Name, `amzn-ami-hvm-2018.03`) == `true`].[CreationDate,ImageId,Name]' --output text | sort -rk1
  • 非標準ドメイン名、および AmazonProvidedDNS を持つ VPC を使用する場合は、rotateオプションは、オペレーティングシステムの DNS 構成です。

詳細については、「」を参照してください。Amazon EBS-Backed Linux AMI の作成Linux インスタンス用 Amazon EC2 ユーザーガイド