Amazon ECS リソースディスカバリー
ServiceNow ディスカバリーアプリケーションは、Amazon AWS - ECS パターンを使用して、Amazon Elastic Container Service (Amazon ECS) によって管理されているリソースを検索します。検索対象には、Fargate 起動タイプで実行されるリソースが含まれます。 これらのリソースを検出するには、ServiceNow Store から ディスカバリーとサービスマッピングパターン アプリケーションをアップデートする必要があります。
Amazon ECS は、Docker コンテナの実行、停止、および管理を容易にする、拡張性が高く高速なコンテナ管理サービスです。AWS Fargate は Amazon ECS 用のコンピュートエンジンで、AWS の顧客がサーバーやクラスターを管理することなくコンテナを実行できるようにします。
ディスカバリーは、Amazon AWS - ECS パターンを使用して水平ディスカバリーを実行します。
ディスカバリーとサービスマッピングパターンバージョン 1.18.0 以降、[Amazon AWS - ECS] パターンは、Amazon Elastic Container Registry (Amazon ECR) イメージの検出をサポートしています。
ストアでアプリを要求する
ServiceNow Store Web サイトにアクセスして利用可能なすべてのアプリを表示し、ストアにリクエストを送信する方法について確認してください。リリースされたすべてのアプリのリリースノート情報については、「ServiceNow Storeバージョン履歴のリリースノート」を参照してください。
前提条件
- ECS リソース表示権限を持つ AWS 認証情報を作成する
-
AWS コンソールで、ECS リソース表示権限を持つ AWS 認証情報を作成します。詳細については、https://docs.aws.amazon.com/en_pv/AmazonECS/latest/userguide/get-set-up-for-amazon-ecs.html を参照してください。注:API 要求は、AWS 署名バージョン 4 を使用して認証を行います。正しい認証情報が提供されると、クラウド API コールパターンのステップに対して内部で認証が行われます。
- AWS クラウド認証情報レコードを作成するか一時的な認証情報を使用する
- Now Platform で、AWS 認証情報レコードを作成します。IAM ロールの AWS セキュリティトークンサービス (AWS STS) によって生成される一時的な認証情報を使用することもできます。詳細については、「クラウド認証情報」を参照してください。
- AWS クラウドサービスアカウントを作成する
-
- Now Platform で、永続的または一時的な AWS 認証情報を使用して、AWS クラウドサービスアカウントを作成します。詳細については、「AWS サービスアカウントの設定」を参照してください。
- クラウドサービスアカウントレコードで、[データセンターを検出] をクリックして、設定された AWS クラウドサービスアカウントの AWS データセンター (LDC) を検索します。
- AWS ディスカバリーのスケジュールを設定する
- Now Platform で、完全な AWS ディスカバリーまたは ECS パターンディスカバリーのみのいずれかのスケジュールを設定します。ディスカバリースケジュールの設定の詳細については、「水平ディスカバリーのスケジュール」を参照してください。
- VM オブジェクトレコードの構成を検証してリソースタグを検索する
-
パターンを有効にしてリソースタグを検索するには、親 ECS テーブル (VM オブジェクト) に cmdb_key_value テーブルの関連エントリがある必要があります。
- Now Platformナビゲーションバーで、 をクリックし、[ CI ID] を選択します。
- VM オブジェクトレコードを検索して開きます。
- [関連エントリ] タブを選択し、VM オブジェクト関連エントリの図に示されているとおりに設定されていることを確認します。設定されていない場合は、新しい関連エントリを指定します。 [関連エントリ] 関連リストで、[新規] を選択し、フォームに入力して [送信] をクリックします。
図 : 1. VM オブジェクト関連エントリ
水平ディスカバリー中にディスカバリーによって収集されるデータ
ディスカバリーは、Amazon AWS - ECS パターンの実行時に、CMDB にデータを入力します。
| フィールド | 説明 |
|---|---|
| オブジェクト ID [object_id] | クラスターを識別する Amazon リソ-ス名 (ARN)。 |
| 名前 [name] | クラスターを識別するために使用される、ユーザーが生成した文字列。 |
| 登録済みコンテナインスタンス数 [registered_container_instances_count] | クラスターに登録されているコンテナーインスタンスの数。こうしたコンテナーインスタンスのステータスは、ACTIVE または DRAINING のいずれかになります。 |
| フィールド | 説明 |
|---|---|
| オブジェクト ID [object_id] | タスク定義の完全な ARN |
| 名前 [name] | このタスク定義が登録されているファミリの名前。 |
| リビジョン [revision] | 特定のファミリのタスクのリビジョン。これは、ファミリ内のタスク定義のバージョン番号です。 |
| ネットワークモード [network_mode] | タスク内のコンテナに使用する Docker ネットワークモード。有効な値:なし、ブリッジ、awsvpc、ホスト。 |
| CPU [cpu] | タスクによって使用される CPU ユニットの数。 |
| メモリ [memory] | タスクで使用されるメモリの量 (メビバイト (MiB))。 |
| フィールド | 説明 |
|---|---|
| オブジェクト ID [object_id] | タスクを識別する ARN。 |
| 名前 [name] | タスクを識別するために使用される、ユーザーが生成した文字列。 |
| 起動タイプ [launch_type] | タスクが実行される起動タイプ。 |
| 運用ステータス [operation_status] | タスク内の必須コンテナーの健全性によって決定される、タスクの健全性ステータス。 |
| CPU [cpu] | タスク定義に記載されている、タスクで使用される CPU ユニットの数。 |
| メモリ [memory] | タスク定義に記載されている、タスクで使用されるメモリの量 (MiB)。 |
| フィールド | 説明 |
|---|---|
| オブジェクト ID [object_id] | サービスを識別する ARN。 |
| 名前 [name] | サービスの名前。 |
| 起動タイプ [launch_type] | サービスが実行される起動タイプ。 |
| スケジューリング戦略 [scheduling_strategy] | サービスに対して使用するスケジューリング戦略。 |
| フィールド | 説明 |
|---|---|
| コンテナ ID [container_id] | コンテナーの ARN。 |
| 名前 [name] | コンテナーの名前。 |
| ステータス [status] | コンテナーの前回報告されたステータス。 |
| 運用ステータス [operational_status] | コンテナーの健全性ステータス。 |
| CPU [cpu] | コンテナーに設定された CPU ユニットの数。 |
| メモリ [memory] | コンテナーに設定されたメモリのハード制限 (MiB)。 |
| フィールド | 説明 |
|---|---|
| オブジェクト ID [object_id] | 仮想マシン (VM) インスタンスを識別する ARN。 注: 完全な仮想マシンインスタンス情報は、異なる EC2 クラウドパターンで検出されます。Amazon ECS リソースディスカバリーでは、CI の一意の識別に役立つように、object_id のみが解析されます。 |
| フィールド | 説明 |
|---|---|
| キー [key] | タグキー。 |
| 値 [value] | タグ値。 |
| フィールド | 説明 |
|---|---|
| 名前 [name] | Docker イメージの名前。 |
| イメージダイジェスト [image_digest] | Docker イメージの一意の識別子。 |
| Image ID [image_id] | Docker イメージの 12 文字の長さの一意の識別子。 |
| フィールド | 説明 |
|---|---|
| 名前 [name] | Docker イメージを含むリポジトリの完全修飾名。 |
| フィールド | 説明 |
|---|---|
| 名前 [name] | Docker イメージタグ。 |
| カテゴリ [category] | Docker イメージを含むリポジトリの完全修飾名。 |
依存関係ビューマップには、Amazon ECS で管理されている、組織内で検出されたすべてのリソース、およびそうしたリソース間の関係が表示されます。
この例では、AWS クラウド ECS クラスター CI は AWS データセンターでホストされます。また、2 つの AWS クラウド ECS タスクと 2 つの AWS クラウド ECS サービスを実行し、3 つの Docker コンテナを使用します。
CI 関係
以下の関係は、Amazon ECS リソースディスカバリーをサポートするために作成されています。
| 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_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] |
| 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_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] |
| コンテナーリポジトリ [cmdb_ci_container_repository] | Hosted on::Hosts | AWS データセンター [cmdb_ci_aws_datacenter] |
| コンテナーリポジトリエントリー [cmdb_ci_container_repository_entry] | Hosted on::Hosts | コンテナーリポジトリ [cmdb_ci_container_repository] |
| 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] |
| Docker イメージ [cmdb_ci_docker_image] | Provisioned From::Provisioned | コンテナーリポジトリエントリー [cmdb_ci_container_repository_entry] |
| Docker イメージ [cmdb_ci_docker_image] | Instantiates::Instantiated by | Docker コンテナ [cmdb_ci_docker_container] |