【AWS Systems Manager】WorkSpacesをマネージドインスタンスとして登録してみる

記事タイトルとURLをコピーする

こんにちは。SRE3課の島村です。

今回はWorkSpacesをSystems Managerのマネージドインスタンスとして登録する手順をご紹介します。

ご存知の通り、Systems Managerは運用管理として非常に強力なサービスです。 Systems Managerの機能を利用するには、SSM Agentの導入し、マネージドインスタンスとして登録が必要になります。

構成

f:id:swx-shimamura:20210701221125p:plain

今回の構成ではパブリックサブネット上で行っています。 VPCエンドポイントを使用すれば、プライベート環境でも可能ですので、セキュリティ要件に合わせて作成してみてください。

目次

1.ハイブリッドアクティベーションにてアクティベーションの作成
2.WorkSpacesにSSM Agentをインストール
3.動作の確認

ハイブリッドアクティベーションについて

まず、前提としてハイブリッドアクティベーションという機能はご存知でしょうか? Systems Managerの数多い機能の1つとなります。

オンプレミスで稼働しているサーバ(VM含む)をSystems Managerのマネージドインスタンスとして登録することができる機能です。 本来、マネージドインスタンスとして登録するには、IAM Roleの使用が前提となります。 しかし、オンプレミスのサーバにはIAM Roleを使用することができません。

しかしこのハイブリッドアクティベーションを使用することで、アクティベーションコードとアクティベーションIDが発行した後に SSM Agentにこれらを読み込ませ、起動することでアクティベーション、つまりマネージドインスタンスへ登録が可能となります。

ハイブリッドアクティベーションには2種類あり、スタンダードインスタンス層とアドバンストインスタンス層に分かれます。 1000台までのサーバを登録する場合はスタンダードで、1000台以上の場合はアドバンストを利用することになります。 また、アドバンストインスタンス層にはSession ManagerやPatch managerが利用できますので、それらの機能を前提に使用を検討する場合は、 台数が1000台に到達していなくとも、アドバンストインスタンス層に切り替える必要があります。

1.ハイブリッドアクティベーションにてアクティベーションの作成

それではアクティベーションを作成していきます。

Systems Managerコンソールメニューから、[ハイブリッドアクティベーション]を選択し、 アクティベーションの作成を行います。

f:id:swx-shimamura:20210623220028p:plain

作成に必要な情報を入力していきます。 このアクティベーションで登録できるサーバの台数を決めます。 最大で1000台ですが、管理する予定数が決まっている場合はその数にしておきましょう。

f:id:swx-shimamura:20210623220209p:plain

登録したサーバで使用するIAM Roleを指定します。 ここではデフォルトで作成される権限を選択します。

また、アクティベーションの有効期限を設定します。 長くとも30日以内で設定を行うよう推奨としています。

情報の入力が完了したら、アクティベーションの作成を押します。 作成後、画面が遷移します。

f:id:swx-shimamura:20210623220240p:plain

遷移後に、アクテベーションコードとアクティベーションIDが表示されます。 アクティベーションコードは消えてしまうので、メモとしてどこかに残しておいてください。

2.WorkSpacesにSSM Agentをインストール

WorkSpacesにSSM Agentをインストールしてきます。 WorkSpacesにログインし、管理者権限でPowerShellを開いてください。

以下のコマンドをご自身の環境に置き換えて実行してください。

$code = "自分の環境のactivation-code"
$id = "自分の環境のactivation-id"
$region = "ご利用のregion"
$dir = $env:TEMP + "\ssm"
New-Item -ItemType directory -Path $dir -Force
cd $dir
(New-Object System.Net.WebClient).DownloadFile("https://amazon-ssm-$region.s3.$region.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"

実行します。

f:id:swx-shimamura:20210623220337p:plain

登録できた内容のレスポンスが返ってきていますね。

f:id:swx-shimamura:20210623220509p:plain

SSM-Agentが起動したら、Systems Manager [ハイブリッドアクティベーション]のコンソールに戻ります。

確認

登録済みインスタンスが増えていますね。

f:id:swx-shimamura:20210623220424p:plain

マネージドインスタンスとして登録できていると思うので、確認していきましょう。

[フリートマネージャー]を選択します。 mi-から始まるマネージドインスタンスはハイブリッドアクティベーションで登録したものです。

f:id:swx-shimamura:20210623221019p:plain

登録できていますね。

f:id:swx-shimamura:20210623220916p:plain

通常のマネージドインスタンスと同様に、インベントリなどの情報やイベントログの取得も行えます。

f:id:swx-shimamura:20210623220919p:plain

今回はパフォーマンスカウンターの情報は取得が出来ませんでしたが、アドバンストインスタンス層に変更して 取得が出来るかどうか次回以降でチャレンジしてみたいと思います。

まとめ

いかがでしたでしょうか。 今回は実践しておりませんが、RunCommandをWorkSpacesに対して実行したりすることも可能です。 また、イベントログの管理なども可能となるので場合によっては有効となりそうな構成ですね。

WorkSpacesの管理方法について選択肢が増えれば幸いです。

島村 輝 (Shimamura Hikaru) 記事一覧はコチラ

最近ECS周りをキャッチアップ中。趣味は車・バイク全般。
一応、AWS12冠です。