翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Flink と FluentD の Docker イメージのカスタマイズ
Amazon EMR on EKS の Docker イメージを Apache Flink または FluentD のイメージを使用してカスタマイズするには、次の手順に従います。これには、ベースイメージの取得、カスタマイズ、公開、ワークロードの送信に関する技術ガイダンスが含まれます。
トピック
前提条件
Docker イメージをカスタマイズする前に、以下の前提条件を満たしていることを確認してください。
-
Amazon EMR on EKS での Flink Kubernetes オペレータのセットアップ手順が完了している。
-
ご自分の環境に Docker をインストールしている。詳細については、Get Docker
を参照してください。
ステップ 1: Amazon Elastic Container Registry からベースイメージを取得する
ベースイメージには、Amazon EMR ランタイムと、他の AWS のサービスへのアクセスに必要なコネクタが含まれています。Flink バージョン 6.14.0 以降で Amazon EMR on EKS を使用している場合は、Amazon ECR Public Gallery からベースイメージを取得できます。ギャラリーを参照してイメージリンクを見つけ、そのイメージをローカルワークスペースに取り込みます。例えば、Amazon EMR 6.14.0 リリースの場合、次の docker pull コマンドは最新の標準ベースイメージを返します。emr-6.14.0:latest を必要なリリースバージョンに置き換えます。
docker pull public.ecr.aws/emr-on-eks/flink/emr-6.14.0-flink:latest
以下は、Flink ギャラリーイメージと Fluentd ギャラリーイメージへのリンクです。
ステップ 2: ベースイメージをカスタマイズする
以下の手順では、Amazon ECR からプルしたベースイメージをカスタマイズする方法を説明します。
-
ローカルワークスペースで新しい
Dockerfileを作成します。 -
Dockerfileを編集し、以下の内容を追加します。このDockerfileは、public.ecr.aws/emr-on-eks/flink/emr-7.10.0-flink:latestからプルしたコンテナイメージを使用します。FROM public.ecr.aws/emr-on-eks/flink/emr-7.10.0-flink:latest USER root ### Add customization commands here #### USER hadoop:hadoopFluentdを使用している場合は、次の設定を使用します。FROM public.ecr.aws/emr-on-eks/fluentd/emr-7.10.0:latest USER root ### Add customization commands here #### USER hadoop:hadoop -
Dockerfileにコマンドを追加して、ベースイメージをカスタマイズします。次のコマンドは、Python ライブラリをインストールする方法を示しています。FROM public.ecr.aws/emr-on-eks/flink/emr-7.10.0-flink:latest USER root RUN pip3 install --upgrade boto3 pandas numpy // For python 3 USER hadoop:hadoop -
DockerFileが作成されたディレクトリと同じディレクトリで、次のコマンドを実行して Docker イメージを作成します。-tフラグの後に入力するフィールドは、イメージのカスタム名です。docker build -t <YOUR_ACCOUNT_ID>.dkr.ecr.<YOUR_ECR_REGION>.amazonaws.com/<ECR_REPO>:<ECR_TAG>
ステップ 3: カスタムイメージを公開する
新しい Docker イメージを Amazon ECR レジストリに公開できるようになりました。
-
次のコマンドを実行して、Docker イメージを保存するための Amazon ECR リポジトリを作成します。リポジトリの名前 (例:
emr_custom_repo.) を指定します。詳細については、「Amazon Elastic Container Registry ユーザーガイド」の「リポジトリの作成」を参照してください。aws ecr create-repository \ --repository-name emr_custom_repo \ --image-scanning-configuration scanOnPush=true \ --region <AWS_REGION> -
次のコマンドを実行して、デフォルトレジストリに対して認証します。詳細については、「Amazon Elastic Container Registry ユーザーガイド」の「デフォルトレジストリの認証」を参照してください。
aws ecr get-login-password --region <AWS_REGION> | docker login --username AWS --password-stdin <AWS_ACCOUNT_ID>.dkr.ecr.<YOUR_ECR_REGION>.amazonaws.com -
イメージをプッシュします。詳細については、「Amazon Elastic Container Registry ユーザーガイド」の「イメージを Amazon ECR にプッシュする」を参照してください。
docker push <YOUR_ACCOUNT_ID>.dkr.ecr.<YOUR_ECR_REGION>.amazonaws.com/<ECR_REPO>:<ECR_TAG>
ステップ 4: カスタムイメージを使用して Amazon EMR で Flink ワークロードを送信する
カスタムイメージを使用するには、FlinkDeployment 仕様に以下の変更を加えます。そのためには、デプロイ仕様の spec.image 行に独自のイメージを入力します。
apiVersion: flink.apache.org/v1beta1 kind: FlinkDeployment metadata: name: basic-example spec: flinkVersion: v1_18 image: <YOUR_ACCOUNT_ID>.dkr.ecr.<YOUR_ECR_REGION>.amazonaws.com/<ECR_REPO>:<ECR_TAG> imagePullPolicy: Always flinkConfiguration: taskmanager.numberOfTaskSlots: "1"
Fluentd ジョブにカスタムイメージを使用するには、デプロイ仕様の monitoringConfiguration.image 行に独自のイメージを入力します。
monitoringConfiguration: image: <YOUR_ACCOUNT_ID>.dkr.ecr.<YOUR_ECR_REGION>.amazonaws.com/<ECR_REPO>:<ECR_TAG> cloudWatchMonitoringConfiguration: logGroupName: flink-log-group logStreamNamePrefix: custom-fluentd