ビッグデータ処理コンテキストでは、Elastic Compute Service (ECS) やKubernetesポッドなど、E-MapReduce (EMR) クラスター外のクライアントは、ドメイン名解決の失敗によりジョブを送信できません。 Domain Name System (DNS) ホスト名を有効にして、外部クライアントをEMRクラスター内のノードに接続できます。 これにより、ジョブの送信プロセスが合理化されます。
概要
DNSは、ドメイン名をIPアドレスに解決するためにインターネット上で使用される標準化プロトコルである。 DNSホスト名は、ネットワーク内のコンピュータを区別する一意の名称として、ホスト名とドメイン名とから構成される。 DNSサーバーは、DNSホスト名を対応するIPアドレスに解決し、ユーザーがドメイン名を使用してネットワークリソースにアクセスできるようにします。
仕組み
仮想プライベートクラウド (VPC) では、DNSホスト名を使用してECSインスタンスを識別します。 この機能を有効にすることで、VPC内のECSインスタンスの組み込み権限ドメイン名を設定できます。 ドメイン名の形式は [regionID].ecs.int ernal
です。
DNSホスト名機能が有効になると、VPCはデフォルトのDHCPオプションセットに関連付けられます。 VPCにデフォルトのDHCPオプションが設定されていない場合、システムは自動的にDHCPオプションを作成してバインドします。
たとえば、マレーシア (クアラルンプール) リージョンにあるVPCでは、DNSホスト名機能が有効になっています。 VPC内のECSインスタンスの組み込み権限ドメイン名はap-southeast-3.ecs.int ernal
です。 インスタンスIDの形式でECSインスタンスにホスト名を割り当て、この形式に基づいてプライベートドメイン名解決を設定できます。 ECSインスタンスは、ホストドメイン名i-****** .ap-southeast-3.ecs.int ernal
を介してEMRにアクセスできます。 このプロセスを次のグラフに示します。
シナリオ
DNSホストドメイン名を使用したサーバーへのアクセスは、次のシナリオで適用されます。
分散コンピューティングクラスター: Hadoopなどの分散環境では、DNSホストドメイン名により外部クライアントがEMRのサービスにアクセスできるようになります。 これにより、リソースのスケジューリングとジョブの送信が簡素化されます。
自動化されたデプロイと構成管理: スクリプトと構成ファイルでIPアドレスの代わりにDNSホストドメイン名を使用することで、IPアドレスが変更されても、サービスの検出と構成が正確に保たれます。
例
マレーシア (クアラルンプール) にVPCがあり、ビッグデータ分析のためにVPCにEMRクラスターをデプロイしています。 EMRクラスターは通常、マスターノードとコアノードを含みます。 Kerberosは認証プロトコルとしてマスターノードにデプロイされ、クラスタのセキュリティとすべてのノード間の安全な通信を確保します。 ジョブの送信はEMRクラスターのみに制限されます。
ビジネスの拡大に対応して、企業は外部ECSインスタンスクライアント (ゲートウェイ環境を備えている) からホスト名がi-8ps ****** 5py 2u
であるマスターノードにジョブを送信する必要があります。 企業はVPCのDNSホスト名機能を有効化できます。その後、外部ECSクライアントはDNSホストドメイン名を介してマスターノードと通信できます。
図 1. 外部クライアントはEMRのマスターノードにアクセスします
使用上の注意
DNSホスト名を有効にするときに、デフォルトのDNSサーバーアドレスを削除しないでください。 サーバーアドレスが削除されている場合、システムはホスト名を解決できません。
同じVPC内の外部クライアントECSインスタンス (ゲートウェイ環境を備えている) は、EMRクラスターのマスターノードと同じセキュリティグループを共有する必要があります。
DNSホスト名は、招待を受け取ったユーザーのみが使用できます。 この機能が必要な場合は、アカウントマネージャーにお問い合わせください。
前提条件
手順
ステップ1: DNSホスト名の有効化
VPCコンソールにログインします。
上部のナビゲーションバーで、VPCのリージョンを選択します。 この例では、マレーシア (クアラルンプール) が選択されています。
[VPC] ページで、VPCインスタンスのIDをクリックします。 [基本情報] タブで、DNSホスト名機能を有効にします。
ステップ2: ECSインスタンスのプライベートドメイン名解決の設定
DNSホスト名を有効にした後、外部クライアントとマスターノードのECSインスタンスのプライベートドメイン名解決を設定する必要があります。
ECSコンソールにログインします。
左側のナビゲーションウィンドウで、を選択します。
クライアントとマスターノードのECSインスタンスのプライベートドメイン名解決を設定します。
[操作] 列で、> [インスタンス属性] > [インスタンス属性の変更] を選択します。 [インスタンス属性の変更] ダイアログボックスで、ドメイン名の解決を次のように設定します。
ステップ3: 結果の確認
この例では、Alibaba Cloud Linux 3.2104 64ビットオペレーティングシステムを搭載したクライアントを使用して解決結果を検証します。
クライアントECSインスタンスにログインし、コマンドラインインターフェイスを開きます。
pingコマンドを実行して、ECSインスタンスがDNSドメイン名を介してマスターノードにアクセスできるかどうかをテストします。
ping i-8ps******5py2u.ap-southeast-3.ecs.internal
次の応答メッセージを受信した場合、これはDNSホストドメイン名がマスターノードにアクセスできることを示しています。
関連する API
DNSホスト名の無効化
DNSホスト名を無効にすると、VPCによって割り当てられたプライベートドメイン名は無効になります。 このような場合、プライベートドメイン名を介したIPアドレスの解決は失敗します。
[VPC] ページで、管理するVPCのインスタンスIDをクリックします。 [基本情報] タブで、[DNSホスト名] を見つけ、[無効] を選択します。
参考情報
DHCPオプションセットの詳細については、「DHCPオプションセットの操作」をご参照ください。