E-MapReduce (EMR) クラスターは、YARN、Hadoop 分散ファイルシステム (HDFS)、Spark、Flink などのオープンソースコンポーネント向けに Web UI を公開しています。アクセス方法は以下の 3 種類があります。ネットワーク環境およびセキュリティ要件に応じて、適切な方法を選択してください。
| 方法 | 推奨用途 | 必要なポート | 認証 |
|---|---|---|---|
| ネイティブ UI アドレス(最もシンプル) | 内部ネットワーク環境下での利用;最小限の設定で済む | コンポーネント固有(例:YARN の場合 8088) | なし |
| Knox プロキシ(ほとんどのユーザーに推奨) | セキュアなアクセス;すべてのコンポーネントで単一ポートを共用 | 8443 | ユーザー名とパスワード |
| SSH トンネル | 高セキュリティ要件または制限されたネットワーク環境 | SSH(22) | SSH キー |
本トピックでは、ネイティブ UI アドレスおよび Knox プロキシによるアクセス方法について説明します。SSH トンネルによるアクセス方法については、「オープンソースコンポーネントの Web UI にアクセスするための SSH トンネルの作成」をご参照ください。
セキュリティグループでインバウンドポートを開くと、潜在的なセキュリティリスクが発生します。各ルールを慎重に確認し、権限付与オブジェクトを必要最小限の IP 範囲に制限してください。
前提条件
開始する前に、以下の条件を満たしていることを確認してください。
実行中の EMR クラスターがあること。クラスターを作成する場合は、「クラスターの作成」をご参照ください。
[アクセスリンクとポート] タブへ移動する
[アクセスリンクとポート] タブには、すべてのオープンソースコンポーネントおよびそのアクセスアドレスが一覧表示されます。
EMR コンソールにログインします。左側のナビゲーションウィンドウで、[ECS 上の EMR] をクリックします。
上部のナビゲーションバーで、リージョンおよびリソースグループを選択します。
対象のクラスターを見つけ、[クラスター ID/名前] 列にあるクラスター名をクリックします。
クラスター詳細ページで、[アクセスリンクとポート] タブをクリックします。
ネイティブ UI アドレスを使用する
ネイティブ UI アドレスは、ブラウザからコンポーネントの Web UI に直接アクセスする方法です。セキュリティグループで該当コンポーネントのポートを有効化した後、ブラウザでアドレスを開きます。
クライアントと EMR クラスターノードは、同一の内部ネットワーク環境に存在している必要があります。
ステップ 1:ポートを有効化する
[基本情報] タブをクリックします。
[セキュリティ] セクションで、[クラスターセキュリティグループ] の横にあるリンクをクリックして、Elastic Compute Service (ECS) コンソールの [セキュリティグループの詳細] タブを開きます。
[インバウンド] サブタブで、[ルールの追加] をクリックします。以下のパラメーターを設定し、その他のパラメーターはデフォルト値のままとします。全パラメーターのリファレンスについては、「セキュリティグループルール」をご参照ください。
パラメーター 説明 例 ポート範囲 オープンソースコンポーネントのポート YARN の場合: 8088/8088を入力します。その他のコンポーネントについては、「オープンソースコンポーネントの Web UI へのアクセス」をご参照ください。承認オブジェクト クライアントの内部 IP アドレス ご利用のクライアントマシンの内部 IP アドレスを入力します
ステップ 2:Web UI にアクセスする
[アクセスリンクとポート] タブで、対象コンポーネントの ネイティブ UI アドレス をコピーします。
ご利用のクライアントのブラウザで、そのアドレスを開きます。Linux で接続性を確認するには、以下のコマンドを実行します。
curl -L http://<IP-address>:<port>/
Knox プロキシアドレスを使用する
Knox は、認証付き・単一ポートで複数のコンポーネント Web UI にアクセスできる機能を提供します。内部アクセスおよびパブリックアクセスの両方をサポートしています。
対応コンポーネント: YARN、HDFS、Spark 2、Spark 3、Flink、HBase、Impala、Trino、Presto、Tez、Ranger。
一部のコンポーネントバージョンでは、Knox との互換性に関する既知の問題があります。「トラブルシューティング」をご参照ください。
ステップ 1:Knox を追加する
クラスターにすでに Knox がデプロイ済みの場合は、このステップはスキップしてください。
[サービス] タブをクリックします。
[Add Service] をクリックします。[サービスの追加] パネルで、[KNOX] と [OpenLDAP] を選択し、[OK] をクリックします。
サービスの追加が完了したら、[アクセスリンクとポート] タブを開き、Knox プロキシアドレスが表示されていることを確認します。
ステップ 2:(任意)マスターノードに Elastic IP Address(EIP)を関連付ける
内部 Knox プロキシアクセスのみを利用する場合、またはマスターノードにすでに EIP が関連付けられている場合は、このステップはスキップしてください。
[ノード] タブをクリックします。
emr-master ノードグループで、
アイコンをクリックし、その後、master-1-1 ノードの ID をクリックします。[構成情報] セクションで、[パブリック IP アドレス] を見つけ、[EIP の関連付け] をクリックします。詳細については、「EIP」をご参照ください。
EMR コンソールに戻り、クラスター詳細ページの右上隅にある [すべての操作] をクリックし、[クラスター操作] セクションで [ホスト情報の同期] をクリックします。
[アクセスリンクとポート] タブで、パブリック Knox プロキシアドレスが正しく表示されていることを確認します。
ステップ 3:ポート 8443 を有効化する
「ステップ 1:ポートを有効化する」で示した手順に従い、EMR クラスターのセキュリティグループにポート 8443 を追加します。以下の値を指定してください。
| パラメーター | 値 |
|---|---|
| [ポート範囲] | 8443/8443 |
| 承認オブジェクト | パブリックアクセスの場合は、パブリック IP アドレス を入力します。内部アクセスの場合は、ご利用のクライアントの内部 IP アドレスを入力します。 |
内部 Knox プロキシアクセスを利用する場合、クライアントと EMR クラスターノードは、同一の内部ネットワーク環境に存在している必要があります。
ステップ 4:ユーザーを追加する
Knox 経由でのアクセスには、有効なユーザー名とパスワードが必要です。[ユーザー] タブでユーザーを追加してください。「OpenLDAP ユーザーの管理」をご参照ください。
ステップ 5:Web UI にアクセスする
[アクセスリンクとポート] タブで、以下の操作を行います。
パブリック Knox プロキシアドレス:対象コンポーネントのパブリック Knox プロキシアドレスをクリックします。ログインページでユーザー名とパスワードを入力します。
内部 Knox プロキシアドレス:対象コンポーネントの内部 Knox プロキシアドレスをクリックします。ログインページでユーザー名とパスワードを入力します。Linux で接続性を確認するには、以下のコマンドを実行します。
curl -k -u <username>:<password> https://<internal-IP-address>:8443/gateway/cluster-topo/xx
Ranger Web UI へのアクセス
Ranger をデプロイした後は、デフォルトの認証情報を使用して Web UI にアクセスできます。完全な構成については、「Ranger」をご参照ください。
| クラスタータイプ | EMR バージョン | デフォルトのユーザー名 | デフォルトのパスワード |
|---|---|---|---|
| DataLake クラスター | V3.44.0 以降のマイナーバージョン、または V5.10.0 以降のマイナーバージョン | admin | Admin1234 |
| DataLake クラスター | V3.44.0 より前のマイナーバージョン、または V5.10.0 より前のマイナーバージョン | admin | admin1234 |
| Hadoop クラスター(旧データレイク) | すべて | admin | admin |
パスワードを忘れてしまった場合は、Ranger ドキュメントの「よくある質問」をご参照ください。
Flink Web UI へのアクセス(EMR V3.29.0 より前のマイナーバージョン)
EMR の V3.29.0 より前のマイナーバージョンでは、Flink Web UI は SSH トンネル経由でのみアクセス可能です。「オープンソースコンポーネントの Web UI にアクセスするための SSH トンネルの作成」をご参照ください。
トラブルシューティング
[アクセスリンクとポート] タブが空白です。
アカウントの支払い遅延がないか確認してください。未払い金額を清算した後、数分待ってからページをリフレッシュしてください。
ネイティブ UI アドレスから Web UI にアクセスできません。
クライアントと EMR クラスターノードが同一の内部ネットワーク環境に存在しているか確認してください。
正しい認証情報を入力しても、ユーザー名とパスワードの入力画面が再表示されます。
OpenLDAP のデータが破損している可能性があります。修復手順は以下のとおりです。
[サービス] タブで、OpenLDAP を停止します。
master-1-1 ノードにログインします。
「repair_ldap_service.sh」スクリプトを master-1-1 ノードにコピーします。
root ユーザーとしてスクリプトを実行します:
bash repair_ldap_service.shEMR コンソールの OpenLDAP サービスページの右上隅で、[その他] > [再起動] を選択します。
Knox プロキシ経由で Web UI にアクセスできません。
まず、セキュリティグループでポート 8443 が開放されているか確認してください。
ポートが開放されているにもかかわらずアクセスできない場合は、コンポーネントのバージョンに Knox との互換性に関する既知の問題がないか確認してください。
EMR V5.10.X ~ V5.12.X でデプロイされた HBase
EMR V5.10.X ~ V5.14.X でデプロイされた Presto および Trino
これらの組み合わせの場合は、代わりにネイティブ UI アドレスまたは SSH トンネルをご利用ください。
Knox 認証に必要なユーザー名とパスワードは何ですか?
[ユーザー] タブで追加したユーザーのユーザー名とパスワードをご利用ください。「OpenLDAP ユーザーの管理」をご参照ください。
次のステップ
高セキュリティ環境または制限されたネットワーク構成の場合は、SSH トンネルをご利用ください。「オープンソースコンポーネントの Web UI にアクセスするための SSH トンネルの作成」をご参照ください。
一般的なサービスのトラブルシューティングについては、「よくある質問」をご参照ください。