0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Pentaho + AWSで、GUIなETLをコンテナ化してサーバー管理工数を減らしてみた(2/3)

Last updated at Posted at 2025-06-23

はじめに

PentahoはGUIでETLを定義できるETLツールですが、本番実行するには通常 RHELなどサーバーが必要です。
ただ1つサーバーで複数のETLジョブを同時実行すると、1つのETLジョブが原因で他のETLジョブが異常終了してしまうことがあります。

この問題はコンテナを活用することで解決できます。また、AWSのサービスを組み合わせることでサーバーの管理工数を減らすことができます。

記事の全体像は前回をご参照ください。

今回は前回作成したコンテナイメージをAmazon ECS(以下ECS)で動かします。
コンテナイメージをキャッシュしてETLジョブを早く開始できるように、ECSをEC2上で動かします。

記事の構成

  1. Pentahoのコンテナイメージを作成しAmazon ECR (以降、ECR)にpushする
  2. 1.のコンテナイメージをAmazon ECS で動かす (←今回)
  3. ETLジョブ実行用のWebUIを作成する

ECSの構成

ECSの構成は以下のようになっています。コンテナはインバウンド接続不要なので、ECSをプライベートサブネットで動かします。
Amazon S3やECRに接続するためNAT gatewayを使用しています。

image.png

事前準備

  • 構成図に合うようにVPC、パブリックサブネット、プライベートサブネット、ルートテーブル、インターネットゲートウェイを作成する
  • EC2インスタンス用のセキュリティグループを作成する。今回はインバウンド接続不要です
  • EC2インスタンスにログインできるようにキーペアを作成する。(EC2インスタンスへのログインは不要だと思いますが、ログインすることになればフリートマネージャで接続します。)

1. ECSクラスターを作成する

  1. Amazon Management ConsoleからECSを選択します。 image.png
  2. ECS画面の右上の[クラスターの作成]をクリックします
    image.png

1.1 クラスター設定

クラスター名を入力します。
image.png

1.2 インフラストラクチャ

インフラストラクチャは以下のように設定します。
image.png

項目 設定内容 備考
キャパシティプロバイダ [Amazon EC2 インスタンス] を選択します
EC2インスタンスタイプ [t3.xlarge]を選択します コンテナ実行時のリソースに合わせて変更します。
必要な容量 最低:1、最大:1 と設定します。 とりあえずコンテナを実行できる最低容量にしています。
SSHキーペア 事前に作成していたキーペアを選択します。

1.3 Amazon EC2 インスタンスのネットワーク設定

ネットワークは以下のように設定します。
image.png

項目 設定内容 備考
VPC 事前に作成していたVPCを選択します
サブネット 事前に作成していたプライベートサブネットを選択します
セキュリティグループ 事前に作成していたセキュリティグループを選択します
パブリック IP の自動割り当て パブリックIPは不要なのでオフにします

1.4 ECSクラスターの作成

残りの項目についてはデフォルトのままでよいので、右下の[作成]ボタンをクリックします。
image.png

ECSクラスターの作成後は、タスク定義を作成します。

2. タスク定義の作成

  1. ECS画面の左ペインの[タスク定義]をクリックします
    image.png
  2. 右側の[新しいタスク定義の作成]をクリックし、[新しいタスク定義の作成]をクリックします
    image.png

2.1 タスク定義の設定

タスク定義ファミリー名を入力します。
image.png

2.2 インフラストラクチャの要件

以下のように設定します。
image.png

項目 設定内容 備考
起動タイプ [Amazon EC2インスタンス]を選択します
ネットワークモード [bridge]を選択します。 アウトバウンド接続ができればよいので、Linuxのデフォルトである[bridge]を選択します
タスクサイズ CPU: 2vCPU, メモリ: 4GB 実行するETLジョブに応じて変更します

2.3 コンテナ - 1

PDIのコンテナを設定します。
image.png

項目 設定内容 備考
名前 コンテナの名前を設定します。
イメージURI 前の記事で登録したイメージのURLを入力します 入力補完が効かないようなので、ECRの画面を開いてURIをコピーして貼り付けるのが楽だと思います
ポートマッピング デフォルトで1個追加されていますので削除します。

この画面以降にも設定が続きますが、デフォルトのままでOKです。

3. タスクの作成

  1. 先ほど作成したタスク定義の右上の[デプロイ]をクリックし、[タスクの実行]をクリックします。
    image.png

3.1. タスクの詳細

デフォルトのままで問題ありません。
image.png

3.2. 環境

先ほど作成したクラスターを選択します。それ以外はデフォルトのままでOKです。
image.png

3.3. コンテナの上書き

pan,kitchenのコマンドのパスとkettleのパスを以下のような感じで指定します。
区切り文字は','です。
image.png

4. 作成(実行)

他の項目はデフォルトでOKです。
作成ボタンを押してタスクを作成(実行)します。
image.png

タスクを作成すると以下のような画面になり、タスクをクリックするとログも確認できます。
image.png

image.png

参考記事

その他

製品の改良により予告なく記載されている仕様が変更になることがあります。

他社商品名、商標等の引用に関する表示

  • Amazon Web Services、AWS、Powered by AWS ロゴ、Amazon EC2、Amazon Elastic Container Service、Amazon ECS、Amazon S3、Amazon Virtual Private Cloud、Amazon VPC、AWS Lambda、AWS Fargate、は、Amazon.com, Inc. またはその関連会社の商標です。
  • Pentahoは、Hitachi Vantara LLCの商標または登録商標です。
  • HITACHIは,株式会社 日立製作所の商標または登録商標です。
  • その他記載の会社名,製品名などは,それぞれの会社の商標もしくは登録商標です。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?