本記事を閲覧いただき、ありがとうございます。
駆け出しクラウドエンジニアの青木です。
今回は私がEMRクラスターの異常終了時に解決した方法についてです。
参考サイト(公式):
https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-vpc-host-job-flows.html
エラーの内容
プライベートサブネットに起動する6つのEMRクラスターの起動を試みたところ、4つが「INTERNAL_ERROR (内部エラー)」、2つが「BOOTSTRAP_FAILURE(ブートストラップエラー)」表示となり、6つすべてのEMRクラスターが異常終了となってしまいました。
おそらくネットワーク周りのエラーではあるのだろうと思ったのですが、具体的にどこが悪いのか見当がつかなかったためサポートに問い合わせを行いました。
実行条件
(エラーの解消とは関係がない部分ですが、一応掲載)
今回、私の動作環境ではEMRクラスターはDataPipelineから呼び出しを行っていました。
具体的な流れとしては、
DataPipelineにて「EmrActivity」オブジェクトを実行 →「EmrCluster」オブジェクトのEMRを起動
以上です。
エラーの解消方法
EMRが起動するサブネットのVPCに設定したDHCPオプションセットの設定が誤っていました。
詳しくは、
① 動作しているリージョンが「US East (N. Virginia)」であれば、DHCPオプションセット内「domain name」を「ec2.internal」に設定する。
それ以外のリージョンであれば、「domain name」を「use リージョン名.compute.internal」(例: use us-west-2.compute.internal)
② DHCPオプションセット内「domain-name-servers」を「AmazonProvidedDNS」に設定する。
私は以上で解決しました。
また、プライベートサブネットで起動するための要件である、S3へのアクセス経路についても、VPCエンドポイントの設定に問題があるとエラーとなるようです。
参考サイト(公式):
https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-clusters-in-a-vpc.html#emr-vpc-private-subnet
最後までお読みいただき、ありがとうございました!