メニュー
Amazon EC2 Systems Manager
ユーザーガイド

インベントリ収集の設定

このセクションでは、Amazon EC2 コンソールを使用して、1 つ以上のマネージドインスタンスでインベントリ収集を設定する方法を説明します。このセクションでは、Systems Manager リソースデータの同期を使用して、複数の AWS アカウントおよびリージョンのインベントリデータを単一の Amazon S3 バケットに集計する方法についても説明します。AWS CLI を使用してインベントリ収集を設定する方法の例については、「Systems Manager インベントリマネージャーのウォークスルー」を参照してください。

開始する前に

インベントリ収集を設定する前に、以下のタスクを完了します。

  • インスタンスが Systems Manager の前提条件を満たしていることを確認します。詳細については、「Systems Manager の前提条件」を参照してください。

  • (オプション) カスタムインベントリを収集するための JSON ファイルを作成します。詳細については、「カスタムインベントリの操作」を参照してください。

収集の設定

Amazon EC2 コンソールを使用して、マネージドインスタンスのインベントリ収集を設定するには、以下の手順を実行します。

注記

インベントリ収集の設定を開始するには、Systems Manager ステートマネージャーの関連付けを作成します。関連付けが実行されると、Systems Manager はインベントリデータを収集します。最初に関連付けを作成せずに、aws:softwareInventory プラグインを呼び出そうとすると (例: Run Command を使用)、システムは次のエラーを返します。

The aws:softwareInventory plugin can only be invoked via ssm-associate.

また、インスタンスには、一度に 1 つのインベントリのみ関連付けることができます。インスタンスに 2 つ以上関連付けて設定した場合、その関連付けは実行されず、インベントリデータは収集されません。

インベントリ収集を設定するには

  1. Amazon EC2 コンソール」を開き、ナビゲーションペインで [Systems Manager Shared Resources] を展開し、[Managed Instances] を選択します。

  2. [Setup Inventory] を選択します。

  3. EC2 タグを使用して複数のインスタンスに対してインベントリを設定する場合は、[Targets] セクションで [Specify a Tag] を選択します。インベントリに対して設定されているインスタンスを個別に選択する場合は、[Manually Select Instances] を選択します。

    注記

    タグを使用すると、以後同じタグで作成されたどのインスタンスからもインベントリがレポートされます。

  4. [Schedule] セクションで、インスタンスからインベントリメタデータを収集する頻度を選択します。

  5. [ Parameters] セクションで、リストを使用してさまざまなタイプのインベントリ収集を有効または無効にします。

  6. 関連付けの実行ステータスを Amazon S3 バケットに保存する場合は、[Advanced] セクションで [Write to S3] を選択します。

  7. [Setup Inventory] を選択し、[OK] を選択します。

  8. [Managed Instances] ページで、インベントリ用に設定したインスタンスを選択してから、[Description] タブを選択します。関連付けが作成されるまで、[Association Status] に [Pending] が表示されます。ステータスが [Failed] の場合は、最新バージョンの SSM エージェントがインスタンスにインストールされていることを確認します。

  9. 収集期間が経過したら、マネージドインスタンスを選択してから、[Inventory] タブを選択します。

  10. [Inventory Type] リストを使用して、さまざまなタイプのインベントリデータをフィルタリングできます。

インベントリ収集を設定したら、Systems Manager リソースデータの同期を設定することをお勧めします。リソースデータの同期により、すべてのインベントリデータがターゲット Amazon S3 バケット内に統合され、新しいインベントリデータが収集されると中央ストレージが自動的に更新されます。ターゲット Amazon S3 バケットに保存されたすべてのインベントリデータに対して、その後は Amazon Athena および Amazon QuickSight などのサービスを使用して集計データのクエリや分析ができます。リソースデータの同期は次のセクションで説明します。

インベントリのリソースデータの同期の設定

Systems Manager リソースデータ同期を使用して、すべてのマネージドインスタンスから収集されたインベントリデータを単一の Amazon S3 バケットに送信できます。その後、リソースデータの同期により、新しいインベントリデータが収集されると一元化されたデータが自動的に更新されます。ターゲット Amazon S3 バケットに保存されたすべてのインベントリデータに対して、Amazon Athena および Amazon QuickSight などのサービスを使用して集計データのクエリや分析ができます。

たとえば、150 個のマネージドインスタンスのフリートで実行されているオペレーティングシステム (OS) およびアプリケーションに関するデータを収集するようにインベントリを設定したとします。これらのインスタンスの一部はハイブリッドデータセンターにあり、その他は複数の AWS リージョンにまたがって Amazon EC2 で実行されています。インベントリのリソースデータの同期を設定していない場合、各インスタンスで収集されたインベントリデータを手動でまとめるか、この情報をまとめるスクリプトを作成する必要があります。その後、クエリや分析を実行できるように、データをアプリケーションにポートする必要があります。

リソースデータの同期では、すべてのマネージドインスタンスから収集したすべてのインベントリデータを同期する 1 回限りのオペレーションを実行します。同期を作成するとき、複数の AWS アカウントと AWS リージョンからマネージドインスタンスを指定できます。同期が正常に作成されると、Systems Manager はすべてのインベントリデータのベースラインを作成し、それをターゲット Amazon S3 バケットに保存します。新しいインベントリデータが収集されると、Systems Manager によって Amazon S3 バケットのデータが自動的に更新されます。その後、データを迅速かつ高い費用対効果で Amazon Athena や Amazon QuickSight にポートできます。

図 1 は、リソースデータの同期が Amazon EC2 およびハイブリッド環境のマネージドインスタンスからターゲット Amazon S3 バケットにインベントリデータを収集する方法を示します。またこの図は、リソースデータの同期が複数の AWS アカウントおよび AWS リージョンと連携するかについても示しています。

図 1: 複数の AWS アカウントと AWS リージョンでのリソースデータの同期

 Systems Manager リソースデータの同期のアーキテクチャ

マネージドインスタンスを削除した場合、リソースデータの同期は削除されたインスタンスのインベントリファイルを維持します。ただし、実行中のインスタンスの場合、新しいインベントリファイルが作成され Amazon S3 バケットに書き込まれると、リソースデータの同期は古いインベントリファイルを自動的に上書きします。インベントリの変更を継続的に追跡する場合は、AWS Config サービスを使用して MangagedInstanceInventory リソースタイプを追跡できます。詳細については、「Getting Started with AWS Config」を参照してください。

関連情報

  • リソースデータの同期は次の API アクションを使用します: CreateResourceDataSyncListResourceDataSync、および DeleteResourceDataSync

  • Amazon QuickSight は、データを分析しビジネス上の洞察を収集するための視覚化の構築を簡単に行うことができるビジネス分析サービスです。ワンクリックで QuickSight から Athena に接続できます。エンドポイントや、ユーザー名とパスワードを指定する必要はありません。データソースとして Athena を選択し、分析するデータベースおよびテーブルを選択して、QuickSight でデータの視覚化を開始するだけです。詳細については、Amazon QuickSight User Guide を参照してください。

  • Amazon Athena は、標準 SQL クエリを使用して Amazon S3 のデータの分析を簡易化するインタラクティブなクエリサービスです。Athena では Amazon EC2 インスタンスを実行する必要がないため、管理するインフラストラクチャもありません。実行するクエリに対してのみ料金が発生します。詳細については、Amazon Athena User Guide を参照してください。

インベントリのリソースデータの同期の作成

次の手順に従って、Amazon EC2 コンソールを使用してインベントリのリソースデータの同期を作成します。

注記

AWS Key Management Service (AWS Key Management Service) を使用して、Systems Manager から中央 Amazon S3 バケットに送信されるデータを暗号化できます。現時点では、AWS CLI を使用して暗号化を設定できるのみです。AWS CLI を使用した、暗号化された同期の作成方法、および Amazon Athena と Amazon QuickSight で一元化されたデータを操作する方法の例については、「リソースデータの同期を使用してインベントリデータを集約する」を参照してください。

インベントリのリソースデータの同期を作成するには

  1. Open the Amazon S3 console at https://console.aws.amazon.com/s3/.

  2. 集計されたインベントリデータを保存するバケットを作成します。詳細については、『Amazon Simple Storage Service Getting Started Guide』の「バケットの作成」を参照してください。バケット名とそれを作成した AWS リージョンをメモしておきます。

  3. [Permissions] タブを選択し、[Bucket Policy] を選択します。

  4. 次のバケットポリシーをコピーし、ポリシーエディタに貼り付けます。Bucket-NameAccount-ID を、作成した Amazon S3 バケットの名前と有効な AWS アカウント ID に置き換えます。任意で、Bucket-Prefix を Amazon S3 プレフィックス (サブディレクトリ) に置き換えます。プレフィックスを作成しなかった場合は、Bucket-Prefix/ をこのポリシーの ARN から削除します。

    Copy
    { "Version": "2012-10-17", "Statement": [ { "Sid": "SSMBucketPermissionsCheck", "Effect": "Allow", "Principal": { "Service": "ssm.amazonaws.com" }, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::Bucket-Name" }, { "Sid": " SSMBucketDelivery", "Effect": "Allow", "Principal": { "Service": "ssm.amazonaws.com" }, "Action": "s3:PutObject", "Resource": ["arn:aws:s3:::Bucket-Name/Bucket-Prefix/*/accountid=Account-ID/*"], "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" } } } ] }
  5. Amazon EC2 コンソールを開き、ナビゲーションペインで [Systems Manager Shared Resources] を展開して [Managed Instances] を選択します。

  6. [Resource Data Syncs] を選択してから [Create a Resource Data Sync] を選択します。

  7. [Sync Name] フィールドに、同期設定の名前を入力します。

  8. [Bucket Name] フィールドに、この手順の最初で作成した Amazon S3 バケットの名前を入力します。

  9. (オプション) [Bucket Prefix] フィールドに、Amazon S3 バケットのプレフィックス (サブディレクトリ) の名前を入力します。

  10. 作成した Amazon S3 バケットが現在の AWS リージョンにある場合は、[Bucket Region] フィールドで [This region] を選択します。バケットが他の AWS リージョンにある場合は、[Another region] を選択して、リージョンの名前を入力します。

    注記

    同期とターゲット Amazon S3 バケットが異なるリージョンにある場合、データ転送料金がかかる場合があります。詳細については、「Amazon S3 料金表」を参照してください。

  11. [Create] を選択します。