0
0

SystemsManagerのInventoryを使用してのインスタンスの管理

Posted at

概要

SystemsManagerの中でインスタンス状態の管理を行えるInventoryを使ってインスタンスの管理手順をまとめました。
Inventoryの管理できるようにすることでアプリケーションのインストールなども行えるようになります。

EC2への確認

  • EC2へは以下のコマンドでインストールを行います
sudo yum install -y https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm

PCの確認

  • WindowsPCの管理にSkyseaなどを使って行うことが多いかと思いますが、AWSのSystemsManagerの機能を使って確認することもできるのでやってみます。

  • Windowsを管理対象にするためにマルチアクティベーションの設定を行います。

    • AWS Workspacesに対しても同様に管理することが行えます。
  • 以下のようにSystemsManagerのアクティベーションをまず行います。

  • 001.png

  • 002_1.png

  • 002_2.png

  • 以下で発行されるコード、IDをメモします。後続のコマンドで使用します。

  • 003.png

  • 以下のコマンドを管理下に置きたい端末で実行します。PowerShellを管理者モードで実行します。

$code = "eicDJtfJ97HSxIfdI3Mz"
$id = "30acfca1-0c4e-4b0a-a2db-66e4d8caa4ef"
$region = "ap-northeast-1"
$dir = $env:TEMP + "\ssm"
New-Item -ItemType directory -Path $dir -Force
cd $dir
(New-Object System.Net.WebClient).DownloadFile("https://amazon-ssm-$region.s3.amazonaws.com/latest/windows_amd64/AmazonSSMAgentSetup.exe", $dir + "\AmazonSSMAgentSetup.exe")
Start-Process .\AmazonSSMAgentSetup.exe -ArgumentList @("/q", "/log", "install.log", "CODE=$code", "ID=$id", "REGION=$region") -Wait
Get-Content ($env:ProgramData + "\Amazon\SSM\InstanceData\registration")
Get-Service -Name "AmazonSSMAgent"
  • 管理者の確認のウィンドウが起動するので応答を行います。

アプリの監視

  • インベントリをセットアップします。

  • 005_1.png

  • 005_2.png

  • 登録すると以下のようにインベントリの画面からアプリケーションが確認できます。

  • 006_1.png

  • 006_2.png

  • EC2

    • 007_1.png
  • windows

    • 007_2.png
  • カスタムインベントリを設定することで各インスタンスにjson形式で記載した内容を取得できます。

    • 設定する場所は以下のようになります。詳細は参考資料を参照してください。
      • Linux /var/lib/amazon/ssm/node-id/inventory/custom
      • windows %SystemDrive%\ProgramData\Amazon\SSM\InstanceData\node-id\inventory\custom
{
    "SchemaVersion": "1.0",
    "TypeName": "Custom:TestData",
    "Content": {
        "Case1": "red",
        "Case2": "blue"
      }
 }
  • 007_3.png

  • インベントリの情報を登録先のS3バケットを先に作成します。ポリシーを設定します。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "SSMBucketPermissionsCheck",
            "Effect": "Allow",
            "Principal": {
                "Service": "ssm.amazonaws.com"
            },
            "Action": "s3:GetBucketAcl",
            "Resource": "arn:aws:s3:::{バケット名}"
        },
        {
            "Sid": " SSMBucketDelivery",
            "Effect": "Allow",
            "Principal": {
                "Service": "ssm.amazonaws.com"
            },
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::{バケット名}/*/accountid={アカウントID}/*",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "{アカウントID}",
                    "s3:x-amz-acl": "bucket-owner-full-control"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:ssm:*:{アカウントID}:resource-data-sync/*"
                }
            }
        }
    ]
}
  • 作成後インベントリの同期を行います。インベントリ画面でリソースデータの同期作成を行います。

  • 008_1.png

  • 008_2.png

  • 008_4.png

  • S3に結果が出力されます。

  • image.png

一覧を画面で見たいときの設定

  • S3の作成

    • Athena用、Glue用にバケットを作成します。
  • Glueの設定

    • Glueを使ってインベントリの情報を出力しているS3バケットから情報を集約します。
  • 009_1.png

  • 009_2.png

  • 009_3.png

  • 009_4.png

  • 009_5.png

  • 009_6.png

  • 009_7.png

  • 009_8.png

  • 009_9.png

  • 009_10.png

  • 009_11.png

  • Cralerを実行するとインベントリの情報を収集します

  • 009_12.png

  • Athenaでクエリを実行することでsqlのように結果を確認することができます。CSVも出力できるので管理などを行いたいときに活用できます

  • 009_13.png

  • image.png

参考資料

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0