【ノマド】

Nomad とは?

最終更新:
💡 コンテナもVMもバッチも、対応ドライバーでまとめて管理する遊牧民

HashiCorp製のワークロードオーケストレーター。対応するTask Driverを通じて、コンテナ、バイナリ、JavaアプリやQEMU仮想マシンなどの配置・実行を管理する。対応OSや必要な実行環境はドライバーによる。

📌 このページのポイント
Nomad:仕事を配置し、実行を管理 Nomad 配置・管理 Docker コンテナ exec / Java アプリ QEMU 仮想マシン 対応ドライバー・OS・実行環境を確認 サービス探索/Variablesを内蔵 必要に応じてConsul・Vaultと連携
矢印は、配置したタスクを対応ドライバーで実行する流れです。下の箱は実行対象の例で、物理ノード数ではありません。Nomadには軽量なサービス探索とVariablesがあり、ConsulやVaultと連携できます。対応OSや必要な実行環境はドライバーによります。
ひよこ ひよこ
NomadとKubernetesは何が違うの?
ペンギン先生 ペンギン先生
どちらもワークロードの配置と管理をするよ。NomadはTask Driverを通じて多様な実行形式を扱い、単一バイナリでサーバーやクライアントの役割を担う。Kubernetesはコンテナを中心とする仕組みで、機能や構成が違う。必要な運用は、使う機能や要件に合わせて比較しよう。
ひよこ ひよこ
コンテナ以外も管理できるってどういうこと?
ペンギン先生 ペンギン先生
Task Driverが、タスクを実際に起動する方法を受け持つよ。Docker、バイナリ実行、Java、QEMU仮想マシンなどに対応するドライバーがある。OSの対応や必要な実行環境、追加プラグインの要否は個別に確認するんだ。コンテナ化せずに実行できるアプリもあるけど、何でも無変更で動かせる保証ではないよ。
ひよこ ひよこ
シンプルって言うけど、機能が足りなくならないの?
ペンギン先生 ペンギン先生
Nomad自体にも軽量なサービスディスカバリと、暗号化した設定データを保存するVariablesがあるよ。複雑なサービス連携にはConsul、高度なシークレット管理にはVaultを組み合わせるんだ。VariablesはVaultの全面的な代替ではないよ。
ひよこ ひよこ
じゃあ、どんなときにNomadを選ぶといいの?
ペンギン先生 ペンギン先生
コンテナと既存アプリを混在させたい場合や、サービスとバッチを同じ仕組みで配置したい場合に検討できるよ。対応ドライバー、サービス探索、シークレット管理、可用性の要件と運用体制を確認しよう。CI/CDやデータ処理だから必ずNomadが最適、と用途名だけで決めないことが大切だね。
ひよこ ひよこ
大規模にも使えるの?小さい会社向けってわけじゃない?
ペンギン先生 ペンギン先生
大規模なクラスタも対象に設計されているよ。ただし、実際に扱えるジョブ数や配置速度は構成やワークロードによるんだ。ベンチマークの数字をそのまま自分の環境の保証にはできないね。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Nomad」って出てきたら「対応ドライバーで多様な仕事を配置するオーケストレーター」と思えばだいたいOK!
📖 おまけ:英語の意味
「Nomad」 = 遊牧民・放浪者
💬 Nomadは英語で遊牧民という意味だよ。ワークロードの配置を考えるときの比喩として覚えるといいね

参考資料

← 用語集にもどる