- 인쇄
- PDF
Self-Hosted Runner
- 인쇄
- PDF
概要
Self-Hosted Runnerは、TROCCOの転送ジョブをユーザーが用意した任意の環境上で実行できるようにする機能です。
これまで通り、転送設定の作成・編集やジョブの起動はTROCCOのUI上から行えますが、起動された転送ジョブはユーザー自身が管理する環境上のコンテナ(Runner)で実行されます。
本機能の利用は、Professionalプランの契約が前提となります。
詳しくは、営業担当者またはカスタマーサクセスまでお問い合わせください。
主な特徴
任意の環境で実行可能
オンプレ環境やクラウドのプライベートなネットワーク上など、お客様自身が管理する環境にコンテナ(Runner)を立ち上げ、その上で転送ジョブを実行できます。
リクエストの片方向性
TROCCOからコンテナ(Runner)へのリクエストは発生しません。
Runner側が一定間隔でTROCCOにリクエストを行い(Heartbeatリクエスト)、必要なジョブ情報をレスポンスとして取得します。
利用上の注意・制約
推奨リソース
- メモリ:2GB以上
- Runnerとなる環境のメモリの推奨リソースです。
- なお、一部の転送元ファイル・ストレージ系コネクタでは 4GB 以上のメモリが必要となるケースがあります。
- 例:転送元 - Amazon S3
CPUに関しては、とくに推奨値はありません。
ただし、CPUのコア数を増やすとEmbulkの並列実行による処理速度向上が期待できるため、パフォーマンスが上がる可能性があります。
基本概念
Cluster
Clusterとは、Runnerを論理的にまとめる概念です。Clusterは複数のRunnerを管理・保持します。
ジョブが起動されると、Cluster内のいずれかのRunnerがジョブを受け取り、ジョブを実行します。
作成方法について、詳しくはClusterの作成を参照ください。
Runner
Runnerとは、ジョブの実行コンテナです。
TROCCOが提供するRunner用のコンテナイメージを使用し、環境変数に適切なトークンを設定することで、Runnerを起動できます。
詳しくは、Runnerの起動を参照ください。
任意のClusterに複数のRunnerが属している場合において、Runnerはそれぞれ独立して起動します。
たとえば、同一Cluster内の複数のRunnerが同時に立ち上がった場合、それらが互いに干渉することはありません。
Heartbeat
Runnerは、TROCCOに対して一定間隔でリクエストを送信します。
この挙動のことを、Heartbeatリクエストといいます。
TROCCOは、Runnerから送信されるHeartbeatリクエストを受け取ることで、Runnerが稼働中かどうかを認識します。
RegistrationToken
Runnerを起動する際に必要となるトークンです。
各Clusterに対し、最大で2つまでRegistrationToken
を作成できます。
設定方法
1. Clusterの作成
左サイドバーのSelf-Hosted Runnerから、Self-Hosted Runner Cluster一覧画面を表示できます。
Cluster一覧画面では、これまで作成したClusterを確認できます。また、Clusterを新たに作成できます。
Clusterの新規作成ボタンをクリックすると、名前・説明・リソースグループ(チーム機能が有効な場合)を設定できます。
これらの設定値を入力して保存すると、Clusterは保存され、詳細画面へ遷移します。
このとき、RegistrationTokenが画面上に表示されるので、メモしてください。
2. Runnerの起動
お客様環境にて、Docker Container Imageの取得、およびDocker Containerを起動します。
以下は、コマンドサンプルです。
docker pull public.ecr.aws/i4m4b0i8/trocco-self-hosted-runner:latest
docker run \
-e TROCCO_REGISTRATION_TOKEN="<YOUR REGISTRATION KEY>" \
-e TROCCO_PREVIEW_SEND="<PREVIEW_DATA_IS_SAVED>" \
--rm \
public.ecr.aws/i4m4b0i8/trocco-self-hosted-runner:latest
パラメータ | 必須 | 説明 |
---|---|---|
<YOUR REGISTRATION KEY> | ✓ | Cluster詳細画面上に表示されたRegistrationToken に置き換えてください。 |
<PREVIEW_DATA_IS_SAVED> | - | プレビューデータ(実データ)をTROCCO側に送信するかどうかを指定します。 本パラメーターを指定しなかった場合は、暗黙的に false が渡されます。true を指定すると、プレビューデータ(実データ)がTROCCO側に送信されます。この場合、転送設定STEP2および詳細画面にてプレビュー結果を永続的に確認できます。false を指定すると、プレビューデータ(実データ)はTROCCO側に送信されません。セキュリティ的な観点でTROCCO側にプレビューデータを保持させたくない場合は、false を指定(または本パラメーターを未指定に)してください。 |
3. 転送設定の編集
Runner上でジョブを実行したい転送設定を編集します。
転送設定STEP1の基本設定で、Clusterを選択できます。
なお、転送設定側でClusterを選択するには、以下の条件を満たす必要があります。
- Self-Hosted Runnerを契約している
- Self-Hosted Runnerに対応している転送元・転送先コネクターの組み合わせである
- 対応コネクターについては、Self-Hosted Runnerに対応するコネクターを参照ください。
機能詳細
Self-Hosted Runner Cluster詳細画面
Clusterの削除
画面右上の三点リーダーから削除できます。
ただし、該当のClusterを選択している転送設定が1つでもある場合、削除はできません。
RegistrationToken
の発行
Clusterの作成時に、自動でトークンが1つ発行されます。
トークンは最大2つまで作成できます。
RegistrationToken
の削除
ゴミ箱アイコンから削除できます。
トークンを削除すると、以降に作成されたRunnerの起動には使用できなくなります。
ACTIVE
状態のときにトークンを削除した場合トークンを削除する時点で、Runnerにジョブが割り当てられていた場合、そのRunnerはジョブが終了するまでは動作します。
Runnerのステータス
以下の3種類です。
- IDLE:Runnerは立ち上がっているが、ジョブが割り当てられていない状態
- ACTIVE:Runnerは立ち上がっており、なおかつジョブが割り当てられている状態
- OFFLINE:RunnerからのHeartbeatが30秒以上途絶えている状態
ACTIVE
かつOFFLINE
になるケースジョブの実行中に、TROCCOがHeartbeatリクエストが受信できなくなった場合などに、ACTIVE
かつOFFLINE
なステータスになることがあります。
この状態になり、なおかつジョブが意図通り完了しない場合は、お客様環境のコンテナが正しく動いているかをご確認ください。
Runnerの停止
Runnerを手動で停止(Dockerプロセスを終了)できます。
お客様環境側でコンテナを停止できない場合などにお使いください。
ACTIVE
状態のときにRunnerを停止した場合ジョブが割り当てられているRunnerを停止した場合、そのRunnerはジョブが終了するまでは動作します。(Graceful Shutdown)
Runnerの削除
OFFLINEのRunnerのみ、手動で削除できます。
ただし、本項における「削除」とは、あくまで「TROCCOのデータベースから削除され、TROCCOの画面上には表示されなくなる」ことを意味します。
お客様環境側にあるコンテナ自体は削除されません。
OFFLINEの状態が72時間継続したRunnerは、自動的に「削除」されます。
TROCCO側で「削除」されたコンテナがHeartbeatリクエストを再送した場合、そのRunnerは新しいRunnerとしてTROCCOに再登録されます。
チーム機能有効時の操作権限
操作\ロール | リソースグループ管理者 | リソースグループ編集者 | リソースグループ運用者 | リソースグループ閲覧者 |
---|---|---|---|---|
Clusterの閲覧 | ✓ | ✓ | ✓ | ✓ |
Clusterの利用(転送設定側での選択権限) | ✓ | ✓ | ✓ | - |
Clusterの編集 | ✓ | ✓ | - | - |
Clusterの削除 | ✓ | ✓ | - | - |
RegistrationToken の発行 | ✓ | ✓ | - | - |
RegistrationToken の削除 | ✓ | ✓ | - | - |
Runnerの停止 | ✓ | ✓ | - | - |
Runnerの削除 | ✓ | ✓ | - | - |
転送設定
転送設定STEP1
基本設定にて、Clusterを選択できます。
転送設定STEP2
スキーマ情報の取得やプレビュー用データの取得処理はRunner上で行われます。
なお、プレビュー用データをTROCCOに送信するかどうかは、Runnerの起動時に選択できます。
詳しくは、Runnerの起動を参照ください。
転送ジョブ詳細
通常のジョブと同様に、ジョブの実行結果やジョブステータスを確認できます。
Runner上で実行されたジョブかどうかも、画面上から確認できます。
また、Runner上で実行されたジョブに限り、queue
ステータスでもジョブのキャンセルが可能です。
補足事項
Self-Hosted Runner利用時の処理時間
Self-Hosted Runnerを利用して実行された転送ジョブに関する処理時間のカウントは行われません。
Self-Hosted Runnerに対応するコネクター
Self-Hosted Runnerは、特定の転送元コネクターかつ転送先コネクターの組み合わせでのみ、利用できます。
以下に記載のないコネクターを選択した場合は、転送設定でClusterの選択項目が表示されません。
転送元コネクター
- 転送元 - Amazon Redshift
- 転送元 - Amazon S3
- 転送元 - Azure Blob Storage
- 転送元 - Databricks
- 転送元 - FTP・FTPS
- 転送元 - Google Cloud Storage
- 転送元 - HTTP・HTTPS
- 転送元 - MongoDB
- 転送元 - MySQL
- 転送元 - PostgreSQL
- 転送元 - SFTP
- 転送元 - Snowflake
- 転送元 - SQL Server
転送先コネクター
- 転送先 - Amazon Redshift
- 転送先 - Amazon S3
- 転送先 - Amazon S3 Parquet
- 転送先 - Azure Blob Storage
- 転送先 - Databricks
- 転送先 - FTP・FTPS
- 転送先 - Google BigQuery
- 転送先 - Google Cloud Storage
- 転送先 - Microsoft SQL Server
- 転送先 - MySQL
- 転送先 - PostgreSQL
- 転送先 - SFTP
- 転送先 - Snowflake
Self-Hosted Runnerが対応していない機能
転送設定で利用できない機能
- リソース増強オプション
- リソース増強オプションは、TROCCOのジョブ実行環境を増強する機能であるため、Self-Hosted Runnerには適用されません。
- 転送設定STEP1 > 接続確認機能・テーブルなどの一覧取得機能
- これらの機能は、RunnerではなくTROCCO側から実行されます。
- そのため、たとえば社内ネットワークからのみアクセスを許可しているデータソースの場合、実行できません。
- 転送設定STEP2 > スキーマ変更検知・カラム定義再読み込み・プログラミングETL
- これらの機能は、RunnerではなくTROCCO側から実行されます。
- そのため、これらの機能は利用できません。画面にも表示されない仕様となっています。
- 転送設定STEP2 > リトライ機能
- 最大リトライ回数を1以上に設定しても、リトライは実施されません。
- アカウント設定 > タイムアウト設定
- アカウント設定によるタイムアウト設定を有効にしている場合にも、ジョブは自動停止されません。
- 通知設定 > 実行時間経過時による通知
接続情報で利用できない機能
- AWS Systems Manager Session Managerを用いた接続
- 有効にした場合、接続に失敗します。
- なお、Systems Manager Session Managerを利用しない通常のSSH経由での接続には対応しています。
- TROCCO側のPrivateLink機能を用いた接続
- TROCCO側のPrivateLink機能が有効の場合、接続に失敗します。
- Amazon S3接続情報における、IAMロール認証
- IAMユーザー認証による接続は対応しています。
その他詳細仕様
転送設定のYAML設定ファイル
転送設定詳細画面で確認できるYAML設定ファイルには、以下のkeyが追加されます。
self_hosted_runner_cluster:
- id:
- name:
転送設定のリビジョン復元時の挙動
Self-Hosted Runnerが無効になったアカウントで、かつ過去のリビジョンがSelf-Hosted RunnerのClusterを紐づけている場合、そのClusterは空の状態として復元されます。
転送設定のYAML設定ファイルにも、keyが削除された状態で復元されます。
監査ログの記録対象
Runnerそのものに関する操作(例:Runnerの起動やHeartbeatリクエストなど)は記録されません。