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

Systems Manager インベントリマネージャーのチュートリアル

以下のチュートリアルでは、テスト環境でインベントリを収集および管理します。

新しいインスタンスの起動

インスタンスには、インスタンスと Amazon EC2 Systems Manager (SSM) との通信を有効にする AWS Identity and Access Management (IAM) ロールが必要です。 IAM ロールは、新規作成時のインスタンスまたは既存のインスタンスにアタッチできます。

SSM でサポートされる IAM ロールを作成するには

  1. Open the IAM console at https://console.aws.amazon.com/iam/.

  2. ナビゲーションペインで [Roles]、[Create New Role] の順に選択します。

  3. [Step 1: Set Role Name] で、このロールを Run Command ロールとして識別する名前を入力します。

  4. [Step 2: Select Role Type] で、[Amazon EC2 Role for Simple Systems Manager] を選択します。 これは管理ポリシーであるため、システムは [Step 3: Establish Trust] をスキップします。

  5. [Step 4: Attach Policy] で [AmazonEC2RoleforSSM] を選択します。

  6. [Next Step] を選択し、さらに [Create Role] を選択します。

次の手順では、作成したロールを新しいインスタンスにアタッチする方法を示します。既存のインスタンスにロールをアタッチする方法については、『Amazon EC2 ユーザーガイド』にある「IAM ロールをインスタンスにアタッチする」を参照してください。

SSM-supported ロールを使用するインスタンスを作成するには

  1. Open the Amazon EC2 console at https://console.aws.amazon.com/ec2/.

  2. サポートされているリージョンを選択します。

  3. [Launch Instance] を選択し、Amazon Machine Image (AMI) を選択します。

  4. インスタンスタイプを選択し、[Next: Configure Instance Details] を選択します。

  5. [Auto-assign Public IP] で、[Enable] を選択します。

  6. [IAM role] から、前に作成したロールを選択します。

  7. ウィザードを終了して新しいインスタンスを起動します。 インスタンス ID を書き留めます。 後で、このチュートリアルでこの ID を指定する必要があります。

重要

Linux インスタンスでは、作成したインスタンスに SSM エージェントをインストールする必要があります。詳細については、「Linux に SSM エージェントをインストールする」を参照してください。

ユーザーアカウントに SSM へのアクセス権を付与

ユーザーアカウントは、SSM API. と通信するように設定する必要があります。 SSM API アクションへのフルアクセスを付与するユーザーアカウントに IAM 管理ポリシーをアタッチするには、次の手順を使用します。

ユーザーアカウントの IAM ポリシーを作成するには

  1. Open the IAM console at https://console.aws.amazon.com/iam/.

  2. ナビゲーションペインで、[Policies] を選択します (IAM の初回使用時は、[Get Started]、[Create Policy] の順に選択します)。

  3. [Filter] フィールドで、「AmazonSSMFullAccess」と入力して、[Enter] を押します。

  4. [AmazonSSMFullAccess] の横にあるチェックボックスをオンにして、[Policy Actions]、[Attach] の順に選択します。

  5. [Attach Policy] ページで、ユーザーアカウントを選択してから、[Attach Policy] を選択します。

インベントリマネージャー CLI のチュートリアル

以下の手順では、前に作成したテストインスタンスから Inventory を使用してメタデータを収集するプロセスについて説明します。

インスタンスからインベントリを収集するには

  1. 以下のコマンドを実行して、前に作成したインスタンスで Inventory を実行する ステートマネージャー の関連付けを作成します。このコマンドは、サービスを 6 時間ごとに実行し、前に作成したテストインスタンスでネットワーク設定、Windows 更新プログラム、アプリケーションメタデータを収集するように設定します。

    Copy
    aws ssm create-association --name "AWS-GatherSoftwareInventory" --targets "Key=instanceids,Values=ID of the instance you created earlier" --schedule-expression "cron(0 0/30 * 1/1 * ? *)" --output-location "{ \"S3Location\": { \"OutputS3Region\": \"us-east-1\", \"OutputS3BucketName\": \"Test bucket\", \"OutputS3KeyPrefix\": \"Test\" } }" --parameters "networkConfig=Enabled,windowsUpdates=Enabled,applications=Enabled"

    システムから以下のような情報が返されます。

    Copy
    { "AssociationDescription": { "ScheduleExpression": "cron(0 0/30 * 1/1 * ? *)", "OutputLocation": { "S3Location": { "OutputS3KeyPrefix": "Test", "OutputS3BucketName": "Test bucket", "OutputS3Region": "us-east-1" } }, "Name": "The name you specified", "Parameters": { "applications": [ "Enabled" ], "networkConfig": [ "Enabled" ], "windowsUpdates": [ "Enabled" ] }, "Overview": { "Status": "Pending", "DetailedStatus": "Creating" }, "AssociationId": "1a2b3c4d5e6f7g-1a2b3c-1a2b3c-1a2b3c-1a2b3c4d5e6f7g", "DocumentVersion": "$DEFAULT", "LastUpdateAssociationDate": 1480544990.06, "Date": 1480544990.06, "Targets": [ { "Values": [ "i-1a2b3c4d5e6f7g" ], "Key": "InstanceIds" } ] } }

    EC2 タグで Targets パラメータを使用することで、インスタンスの大規模なグループを対象にすることができます。

    Copy
    aws ssm create-association --name "AWS-GatherSoftwareInventory" --targets "Key=tag:Environment,Values=Production" --schedule-expression "cron(0 0/30 * 1/1 * ? *)" --output-location "{ \"S3Location\": { \"OutputS3Region\": \"us-east-1\", \"OutputS3BucketName\": \"Test bucket\", \"OutputS3KeyPrefix\": \"Test\" } }" --parameters "networkConfig=Enabled,windowsUpdates=Enabled,applications=Enabled"
  2. 以下のコマンドを実行して、関連付けステータスを表示します。

    Copy
    aws ssm describe-instance-associations-status --instance-id ID of the instance you created earlier

    システムから以下のような情報が返されます。

    Copy
    { "InstanceAssociationStatusInfos": [ { "Status": "Pending", "DetailedStatus": "Associated", "Name": "reInvent2016PolicyDocumentTest", "InstanceId": "i-1a2b3c4d5e6f7g", "AssociationId": "1a2b3c4d5e6f7g-1a2b3c-1a2b3c-1a2b3c-1a2b3c4d5e6f7g", "DocumentVersion": "1" } ] }

以下の手順では、PutInventory API を使用して、前に作成したテストインスタンスにメタデータを割り当てるプロセスについて説明します。この例では、ラックの場所情報をマネージドインスタンスに割り当てます。

Inventory のインスタンスにカスタムメタデータを割り当てるには

  1. 以下のコマンドを実行して、前に作成したテストインスタンスにラックの場所情報を割り当てます。

    Copy
    aws ssm put-inventory --instance-id "ID" --items '[{"CaptureTime": "2016-08-22T10:01:01Z", "TypeName": "Custom:RackInfo", "Content":[{"RackLocation": "Bay B/Row C/Rack D/Shelf E"}], "SchemaVersion": "1.0"}]'
  2. 以下のコマンドを実行して、このインスタンスのカスタムインベントリエントリを表示します。

    Copy
    aws ssm list-inventory-entries --instance-id ID --type-name "Custom:RackInfo"

    システムから以下のような情報が返されます。

    Copy
    { "InstanceId": "ID", "TypeName": "Custom:RackInfo", "Entries": [ { "RackLocation": "Bay B/Row C/Rack D/Shelf E" } ], "SchemaVersion": "1.0", "CaptureTime": "2016-08-22T10:01:01Z" }
  3. 以下のコマンドを実行して、カスタムメタデータを表示します。

    Copy
    aws ssm get-inventory

    システムから以下のような情報が返されます。

    Copy
    { "Entities": [ { "Data": { "AWS:InstanceInformation": { "Content": [ { "ComputerName": "WIN-9JHCEPEGORG.WORKGROUP", "InstanceId": "ID", "ResourceType": "EC2Instance", "AgentVersion": "3.19.1153", "PlatformVersion": "6.3.9600", "PlatformName": "Windows Server 2012 R2 Standard", "PlatformType": "Windows" } ], "TypeName": "AWS:InstanceInformation", "SchemaVersion": "1.0" } }, "Id": "ID" } ] }