AWS ECS-Fargate リソース検出
ServiceNow ディスカバリー アプリケーションでは、AWS ECS-Fargate パターンを使用して、AWS Elastic Container Service (ECS) によって管理されているリソースを検索します。検索対象には、Fargate 起動タイプで実行されるリソースが含まれます。 これらのリソースを検出するには、ServiceNow Store から ディスカバリーとサービスマッピングパターン アプリケーションをアップデートする必要があります。
AWS ECS は、簡単に Docker コンテナーを実行、停止、管理できる、拡張性が高く高速なコンテナー管理サービスです。AWS Fargate は、AWS ユーザーがサーバーまたはクラスターを管理することなくコンテナーを実行できるようにする、AWS ECS の計算エンジンです。
ディスカバリー は、AWS ECS-Fargate パターンを使用して水平検出を実行します。このパターンを ServiceNow プラットフォームで使用するには、Madrid パッチ 10 以降のリリースを使用します。
ストアでアプリを要求する
ServiceNow Store Web サイトにアクセスして利用可能なすべてのアプリを表示し、ストアにリクエストを送信する方法について確認してください。リリースされたすべてのアプリのリリースノート情報については、「ServiceNow Storeバージョン履歴のリリースノート」を参照してください。
必須条件
- AWS コンソールで、ECS リソースを表示する権限を持つ AWS 資格情報を作成します。詳細については、https://docs.aws.amazon.com/en_pv/AmazonECS/latest/userguide/get-set-up-for-amazon-ecs.html を参照してください。 注:API 要求は、AWS Signature Version 4 を使用して認証を行います。正しい資格情報が提供されると、クラウド API コールパターンのステップに対して内部で認証が行われます。
- Now Platform で、AWS クラウドサービスアカウントと資格情報のレコードを作成します。詳細については、「クラウド資格情報」を参照してください。
- クラウドサービスアカウントレコードで、[データセンターを検出] をクリックして、設定された AWS クラウドサービスアカウントの AWS データセンター (LDC) を検索します。
- 完全な AWS ディスカバリーまたは ECS パターンディスカバリーのみのいずれかのスケジュールを設定します。詳細については、「水平検出のスケジュール」を参照してください。
- パターンを有効にしてリソースタグを検索するには、親 ECS テーブル (VM オブジェクト) に cmdb_key_value テーブルの関連エントリがある必要があります。
- ナビゲーションバーで、次の場所に移動します。Now Platform をクリックし、[ CI ID] をクリックします。
- VM オブジェクトレコードを検索して開きます。
- [関連エントリ] タブをクリックし、VM オブジェクト関連エントリ に示されているとおりに設定されていることを確認します。設定されていない場合は、新しい関連エントリを指定します。 [関連エントリ] 関連リストで、[新規] をクリックし、フォームに入力して [送信] をクリックします。
図 : 1. VM オブジェクト関連エントリ
水平検出中に Discovery によって収集されるデータ
このパターンでは、組織内の ECS クラスター、ECS サービス、ECS タスク定義、ECS タスク、Docker コンテナー、および ECS コンテナーインスタンスを可視化するためのデータを検出します。検出されるデータには、次のテーブルとフィールドが含まれています。
| テーブルとフィールド | 説明 |
|---|---|
| AWS クラウド ECS クラスター [cmdb_ci_cloud_ecs_cluster] | |
| object_id | クラスターを識別する ARN。 |
| name | クラスターを識別するために使用される、ユーザーが生成した文字列。 |
| status | クラスターのステータス。有効な値:ACTIVE、INACTIVE。 |
| registered_container_instances | クラスターに登録されているコンテナーインスタンスの数。こうしたコンテナーインスタンスのステータスは、ACTIVE または DRAINING のいずれかになります。 |
| AWS クラウド ECS タスク定義 [cmdb_ci_cloud_ecs_task_definition] | |
| object_id | タスク定義の完全な ARN |
| name | このタスク定義が登録されているファミリの名前。 |
| status | タスク定義のステータス。 |
| revision | 特定のファミリのタスクのリビジョン。これは、ファミリ内のタスク定義のバージョン番号です。 |
| network_mode | タスク内のコンテナーに使用する Docker ネットワークモード。有効な値:なし、ブリッジ、awsvpc、ホスト。 |
| cpu | タスクによって使用される CPU ユニットの数。 |
| memory | タスクで使用されるメモリの量 (MiB)。 |
| AWS クラウド ECS タスク [cmdb_ci_cloud_ecs_task] | |
| object_id | タスクを識別する ARN。 |
| name | タスクを識別するために使用される、ユーザーが生成した文字列。 |
| status | タスクの前回報告されたステータス。 |
| launch_type | タスクが実行される起動タイプ。 |
| operation_status | タスク内の必須コンテナーの健全性によって決定される、タスクの健全性ステータス。 |
| cpu | タスク定義に記載されている、タスクで使用される CPU ユニットの数。 |
| memory | タスク定義に記載されている、タスクで使用されるメモリの量 (MiB)。 |
| AWS クラウド ECS サービス [cmdb_ci_cloud_ecs_service] | |
| object_id | サービスを識別する ARN。 |
| name | サービスの名前。 |
| status | サービスのステータス。 |
| launch_type | サービスが実行される起動タイプ。 |
| scheduling_strategy | サービスに対して使用するスケジューリング戦略。 |
| Docker コンテナー [cmdb_ci_docker_container] | |
| container_id | コンテナーの ARN。 |
| name | コンテナーの名前。 |
| status | コンテナーの前回報告されたステータス。 |
| operational_status | コンテナーの健全性ステータス。 |
| cpu | コンテナーに設定された CPU ユニットの数。 |
| memory | コンテナーに設定されたメモリのハード制限 (MiB)。 |
| 仮想マシンインスタンス [cmdb_ci_vm_instance] | |
| object_id | VM インスタンスを識別する ARN。 注: 完全な仮想マシンインスタンス情報は、異なる EC2 クラウドパターンで検出されます。AWS ECS-Fargate リソースディスカバリーでは、CI の一意の識別に役立つように、object_id のみが解析されます。 |
| キー値 [cmdb_key_value] | |
| key | タグキー。 |
| value | タグ値。 |
Dependency Views マップには、AWS EWS で管理されている、組織内で検出されたすべてのリソース、およびそうしたリソースの間の関係が表示されます。
この例では、AWS クラウド ECS クラスター CI は AWS データセンターでホストされます。また、2 つの AWS クラウド ECS タスクと 2 つの AWS クラウド ECS サービスを実行し、3 つの Docker コンテナーを使用します。
CI 関係
以下の関係は、AWS ECS-Fargate ディスカバリーをサポートするために作成されています。
| CI | 関係 | CI |
|---|---|---|
| AWS クラウド ECS クラスター [cmdb_ci_cloud_ecs_cluster] | Uses::Used by | 仮想マシンインスタンス [cmdb_ci_vm_instance] |
| AWS クラウド ECS クラスター [cmdb_ci_cloud_ecs_cluster] | Runs::Runs on | AWS クラウド ECS サービス [cmdb_ci_cloud_ecs_service] |
| AWS クラウド ECS クラスター [cmdb_ci_cloud_ecs_cluster] | Runs::Runs on | AWS クラウド ECS タスク [cmdb_ci_cloud_ecs_task] |
| AWS クラウド ECS クラスター [cmdb_ci_cloud_ecs_cluster] | Hosted on::Hosts | AWS データセンター |
| AWS クラウド ECS クラスター [cmdb_ci_cloud_ecs_cluster] | Extends::Extended by | 仮想マシンオブジェクト [cmdb_ci_vm_object] |
| AWS クラウド ECS タスク定義 [cmdb_ci_cloud_ecs_task_definition] | Used by::Uses | AWS クラウド ECS サービス [cmdb_ci_cloud_ecs_service] |
| AWS クラウド ECS タスク定義 [cmdb_ci_cloud_ecs_task_definition] | Used by::Uses | AWS クラウド ECS タスク [cmdb_ci_cloud_ecs_task] |
| AWS クラウド ECS タスク定義 [cmdb_ci_cloud_ecs_task_definition] | Hosted on::Hosts | AWS データセンター |
| AWS クラウド ECS タスク定義 [cmdb_ci_cloud_ecs_task_definition] | Extends::Extended by | 仮想マシンオブジェクト [cmdb_ci_vm_object] |
| AWS クラウド ECS タスク [cmdb_ci_cloud_ecs_task] | Runs on::Runs | 仮想マシンインスタンス [cmdb_ci_vm_instance] |
| AWS クラウド ECS タスク [cmdb_ci_cloud_ecs_task] | Runs on::Runs | Docker コンテナー [cmdb_ci_docker_container] |
| AWS クラウド ECS タスク [cmdb_ci_cloud_ecs_task] | Uses::Used by | AWS クラウド ECS タスク定義 [cmdb_ci_cloud_ecs_task_definition] |
| AWS クラウド ECS タスク [cmdb_ci_cloud_ecs_task] | Hosted on::Hosts | AWS データセンター |
| AWS クラウド ECS タスク [cmdb_ci_cloud_ecs_task] | Runs on::Runs | AWS クラウド ECS クラスター [cmdb_ci_cloud_ecs_cluster] |
| AWS クラウド ECS タスク [cmdb_ci_cloud_ecs_task] | Extends::Extended by | 仮想マシンオブジェクト [cmdb_ci_vm_object] |
| AWS クラウド ECS サービス [cmdb_ci_cloud_ecs_service] | Uses::Used by | AWS クラウド ECS タスク定義 [cmdb_ci_cloud_ecs_task_definition] |
| AWS クラウド ECS サービス [cmdb_ci_cloud_ecs_service] | Hosted on::Hosts | AWS データセンター |
| AWS クラウド ECS サービス [cmdb_ci_cloud_ecs_service] | Runs on::Runs | AWS クラウド ECS クラスター [cmdb_ci_cloud_ecs_cluster] |
| AWS クラウド ECS サービス [cmdb_ci_cloud_ecs_service] | Extends::Extended by | 仮想マシンオブジェクト [cmdb_ci_vm_object] |
| Docker コンテナー [cmdb_ci_docker_container] | Hosted on::Hosts | AWS データセンター |
| Docker コンテナー [cmdb_ci_docker_container] | Runs:: Runs on | AWS クラウド ECS タスク [cmdb_ci_cloud_ecs_task] |
| Docker コンテナー [cmdb_ci_docker_container] | Used by::Uses | AWS クラウド ECS クラスター [cmdb_ci_cloud_ecs_cluster] |