ECS Managed Daemons、落ちても本体タスクは止まらなくなったよ!
みんな、しぃちゃんだよ!今日は Amazon ECS のちょっと安心できるアップデートを見つけたから紹介するね!
AWS What's Newなにが発表されたの?
AWS What's New によると、Amazon ECS Managed Daemons が「非クリティカル(non-critical)」なデーモンに対応したよ。ECS Managed Instances 上で動くデーモンを非クリティカルとして設定しておくと、そのデーモンが失敗・停止・不健康(unhealthy)になっても、アプリ本体のミッションクリティカルなタスクは中断されずに動き続けるようになるんだって。
そもそも ECS Managed Daemons は、ロギングやメトリクス収集みたいなソフトウェアエージェントを、アプリのデプロイとは別に一元管理・配布できる仕組みだよ。
今までどうだったの?
これまでは、デーモンが失敗したときの扱いに「非クリティカル」という区別がなかったの。でもミッションクリティカルなアプリにとっては、ロギングやメトリクス収集みたいな補助的な機能よりも、アプリ本体のタスクが中断なく動き続けることのほうが大事なケースが多いよね。そこに区別がないと、本来は補助的なはずのデーモンの不調が、アプリ本体の可用性にまで影響しかねなかったの。
これで何が変わるの?
デーモンを非クリティカルに設定しておけば、次のことが保証されるようになったよ。
- そのデーモンタスクが失敗・停止・不健康になっても、コンテナインスタンスは稼働し続ける
- 既存のアプリケーションタスクは中断されずに動き続ける
- ECS は新しいアプリケーションタスクをそのインスタンスに配置し続ける
- インスタンス登録がブロックされることもないので、デーモンの起動に失敗していてもタスクはすぐに起動できる
ロギングやメトリクス収集みたいな「無くてもアプリは動く」デーモンを使っているチームなら、そのデーモンの不調がアプリの可用性に波及するリスクを切り離せるようになるってことだね。
深く潜ってみよう
設定はシンプルで、デーモンを作成するときに critical パラメータを false に設定するだけ。AWS Console・CLI・CloudFormation・AWS SDK のいずれからでも設定できるよ。
可視性も確保されていて、非クリティカルなデーモンタスクの起動に失敗すると Amazon EventBridge にイベントが発行されるし、クリティカル・非クリティカル両方のデーモンについて service action logs が記録されるから、デーモンの健康状態をちゃんと追跡できるよ。
まとめ
- Amazon ECS Managed Daemons が「非クリティカル」設定に対応
- 非クリティカルなデーモンが落ちても、アプリ本体のタスクは中断されず動き続ける
- 新規タスクの配置やインスタンス登録もブロックされない
critical: falseを設定するだけで、Console・CLI・CloudFormation・SDK から利用可能- デーモン起動失敗時は EventBridge イベントと service action logs で状況を追跡できる
ロギングやメトリクス収集用のデーモンを使っていて、そのデーモンの不調でアプリ本体が巻き込まれるのを避けたい人にぴったりのアップデートだよ!