Amazon ECS マネージドデーモン
Amazon ECS マネージドデーモンを使用すると、セキュリティ、オブザーバビリティ、ネットワークエージェントなどのソフトウェアエージェントを Amazon ECS マネージドインスタンスのコンテナインフラストラクチャ全体にデプロイおよび管理できます。マネージドデーモンは、デーモンのライフサイクル管理をアプリケーションオペレーションから切り離します。ワークロードを再デプロイしたり、サービス全体で変更を調整したりすることなく、エージェントを個別にデプロイ、更新、モニタリングできます。
マネージドデーモンの仕組み
マネージドデーモンを使用するには、まずデーモンタスク定義を登録します。デーモンタスク定義は、デーモンを形成するコンテナを記述するテンプレートです。デーモンタスク定義を登録したら、デーモンを作成し、クラスターと 1 つまたは複数の Amazon ECS マネージドインスタンスキャパシティプロバイダーに関連付けます。その後、Amazon ECS は、それらのキャパシティプロバイダーを介してプロビジョニングされたすべての Amazon EC2 インスタンスでちょうど 1 つのデーモンタスクが実行されるようにします。
デーモンはインスタンスを個別に起動しません。Amazon ECS マネージドインスタンスキャパシティプロバイダーでアプリケーションタスクを実行すると、Amazon ECS は Amazon EC2 インスタンスをプロビジョニングし、最初にデーモンタスクを開始してからのみ、アプリケーションタスクを RUNNING に移行します。この順序付けにより、アプリケーションがリクエストの処理を開始する前に、ログ記録、トレース、メトリクス収集などのクロスカット関数が動作することを保証します。
デーモンはインスタンスのヘルスに不可欠です。デーモンタスクが停止すると、Amazon ECS はそのコンテナインスタンスを自動的にドレインして置き換えます。この自動修復動作により、手動による介入なしですべてのインスタンスで信頼性の高いデーモンカバレッジが保証されます。
デーモンを新しいタスク定義リビジョンに更新すると、Amazon ECS は関連付けられたキャパシティプロバイダー内のすべてのインスタンス全体でローリングデプロイを実行します。デプロイ中、Amazon ECS は設定可能な割合のインスタンスを同時にドレインし、更新されたデーモンで置換インスタンスをプロビジョニングし、Amazon ECS サービスタスクを自動的に置き換えます。Amazon ECS は組み込みのサーキットブレーカー保護を提供します。ベイク時間と CloudWatch アラームを設定して、Amazon ECS がすべてのインスタンスを更新した後にデプロイをモニタリングし、問題が発生した場合に自動的にロールバックできるようにします。
主な利点
-
分離されたライフサイクル管理 - アプリケーションのデプロイとは別にデーモンを更新します。
-
保証されたカバレッジ - Amazon ECS では、すべてのインスタンスでアプリケーションタスクの前にデーモンタスクが開始されるため、クロスカット関数が常に利用可能になります。
-
信頼性の高いバージョン更新 - デーモンバージョンを更新すると、Amazon ECS は、すべてのインスタンスがターゲットリビジョンを実行するように、組み込みのサーキットブレーカー保護と自動ロールバックを使用して、関連付けられたキャパシティプロバイダー内のすべてのインスタンス全体でそのバージョンをロールアウトします。
-
リソース使用率の向上 - インスタンスごとに 1 つのデーモンタスクを実行すると、タスクごとのサイドカーモデルがなくなり、クラスター全体のリソースオーバーヘッドが削減されます。
-
インスタンスの自動修復 - デーモンタスクが停止または異常になった場合、Amazon ECS は自動的にドレインし、そのコンテナインスタンスを置き換えます。これにより、手動による介入なしで信頼性の高いデーモンカバレッジが維持されます。
注記
Amazon ECS は、Amazon EC2 起動タイプの Amazon ECS サービスの DAEMON スケジューリング戦略を提供します。マネージドデーモンは、Amazon ECS マネージドインスタンス用に構築された新機能で、デーモンのデプロイを簡素化し、強化されたデーモンカバレッジの保証を提供します。
開始方法
使用を開始するには、コンテナイメージを指定するデーモンタスク定義を登録し、クラスター内の関連付けられたキャパシティプロバイダーでデーモンを作成します。AWS マネジメントコンソール、AWS CLI、CloudFormation、または AWS SDK を使用できます。手順については、「デーモンの作成と管理」を参照してください。