##はじめに
AWS ECSのタスク定義を見ていると、
DAEMON
というスケジューリング戦略が登場します。
最初に見たとき、
「デーモンって悪魔のこと?」
「なぜAWSの機能名に悪魔が出てくるんだろう?」
と思った人もいるのではないでしょうか。
実は、ECSのデーモンタスクの「デーモン」は悪魔ではありません。
今回はその由来を調べてみました。
ECSのデーモンタスクとは
ECSには主に以下のスケジューリング戦略があります。
REPLICA
指定した数のタスクを起動する方式
例
Desired Count = 3
である場合は、クラスター全体で、3個のタスクを維持します。
DAEMON
各マネージドインスタンス一つずつにタスクを配置します。
例
EC2-A → タスク
EC2-B → タスク
EC2-C → タスク
のようになります。
新しいインスタンスが追加されると、そのインスタンスにも自動でタスクが起動します。
ログ収集や監視エージェントなどでよく利用されています。
- Fluent Bit
- Datadog Agent
- CloudWatch Agent
- New Relic Agent
などが代表例になります。
デーモンは悪魔ではない
英語には似た単語が二つあり
daemon
demon
私たちがよく知る悪魔のスペルは
demon
ですがデーモンタスクなどコンピュータ用語として使われているのは
daemon
です。
語源はギリシャ語
daemonの語源は古代ギリシャ語の
daimon
が元になっています。
これは悪魔といった意味ではなく、
- 精霊
- 守護霊
- 神と人間の中間的存在
を表す言葉でした。
後にキリスト教文化圏で「悪魔」を意味する"demon"が派生しましたが、UNIXやLinuxの世界では元の意味に近い形で"daemon"が採用されました。
UNIXやLinuxにおける、デーモン
UNIXやLinuxでは、バックグラウンドで常駐し続けるプロセスを「デーモン」と呼びます。
デーモンには次のような特徴があります。
- ユーザーが直接操作しない
- バックグラウンドで動作する
- システム全体を支援する役割を持つ
まるで人目につかないところで働く精霊のような存在であることから、
人知れず動き続けるプログラム
という意味で「デーモン」という名前が使われています。
ECSも同じ発想
ECSのDAEMON戦略も考え方は同じです。
各サーバー上で常に稼働する補助的なタスクを実現するための仕組みであり、ログ収集や監視などの共通機能を各インスタンスへ自動的に配置できます。
このように、UNIXやLinuxのデーモンと似た役割を持つことから、「デーモンタスク」という名前が付けられています。
まとめ
ECSのデーモンタスクにおける「デーモン」は、悪魔を意味するものではありません。
語源をたどると、古代ギリシャ語の「daimon」に由来し、「精霊」や「守護霊」といった意味を持つ言葉でした。
UNIXでは、人知れずバックグラウンドで働き続けるプロセスを「デーモン」と呼び、その考え方がECSのDAEMONスケジューリング戦略にも受け継がれています。
最後に
技術用語の語源を調べてみると、意外にも古代ギリシャ語や歴史的な背景につながることがあります。
機能の名前の由来を知ることで、その仕組みや役割もイメージしやすくなり、理解が深まることも多くあります。
普段何気なく使っている技術用語も、調べてみると意外な発見があって面白いものがあるのではないでしょうか。