はじめに
AWS Systems Manager (SSM) の Fleet Manager は、RDPポート(3389)をインターネットに公開することなく、セキュアにAmazon EC2 for Microsoft Windows ServerインスタンスへGUI接続できる非常に便利な機能です。
しかし先日、独自に作成したカスタムAMIから起動したAmazon EC2 for Microsoft Windows Serverインスタンスに対して、Fleet Managerで接続しようとしたところ、うまく接続できない事象に遭遇しました。
調査の結果、原因は 「AMI作成前のSysprep未実行」 でした。
今回は、このトラブルの事象と原因、そして正しいAMIの作成手順について備忘録としてまとめます。
事象:Fleet Managerから接続できない
特定のAmazon EC2 for Microsoft Windows ServerインスタンスをベースにカスタムAMIを作成し、そのAMIから新しいインスタンスを起動しました。
その後、マネジメントコンソールからFleet Managerを開き、新しいインスタンスへリモートデスクトップ接続を試みたところ、以下のような問題が発生しました。
- SSMのマネージドノードとして認識されない(ターゲットとして表示されない)
- Fleet Managerの接続画面でエラーになり、ログイン画面まで到達しない
IAMロール(AmazonSSMManagedInstanceCoreなど)のアタッチや、セキュリティグループのアウトバウンド通信(HTTPS: 443)の設定には全く問題がない状態でした。
原因:Sysprepを実行せずにAMIを作成したため
原因は、元となるEC2インスタンスからAMIを取得する際に Sysprep(システム準備ツール)を実行していなかったこと でした。
Windows OSでは、各マシンを一意に識別するために「SID(セキュリティ識別子)」が割り当てられています。
Sysprepを実行せずにAMIを作成すると、以下の問題が引き起こされます。
- SIDの重複
元のインスタンスと全く同じSIDやコンピュータ名を持つクローンが作成されてしまい、OSの認証やネットワーク通信で予期せぬ不具合が発生します。 - SSM Agentの不整合
AWS Systems Managerとの通信を担う「SSM Agent」は、インスタンスIDなどの情報を用いて自身を登録します。
Sysprepによる初期化(一般化)が行われていない状態のクローンが起動すると、SSM Agentの内部状態が競合・破損し、正しくAWS側と通信できなくなります。
結果として、SSM Agentが正常に稼働せず、Fleet Managerからの接続要求を受け付けられない状態となっていました。
Sysprepとは
Sysprepとは Windows Server で保持している固有情報(SIDやコンピュータ名など)を初期化(一般化)するツールです。
EC2をAMIからそのまま複製すると、固有情報が複製されてしまうため、 Sysprepを実施したAMIから複製をする必要があります。
解決策:EC2Launchツールを使ってSysprepを実行する
WindowsのカスタムAMIを作成する際は、必ずOSを 「一般化(Generalize)」 してからAMIを取得する必要があります。
AWSでは、この作業を簡単に行うために EC2Launch というツールが標準でインストールされています。
正しいAMI作成手順は以下の通りです。
手順
Windows Server 2025の公式AMIを使用していた場合となります。他バージョンの手順は公式を参照してください。
- 元となるAmazon EC2 for Microsoft Windows Serverインスタンスにログインします。
- スタートメニューから Amazon EC2Launch settingsを開きます。
- 「Administrator password settings」 を 「Random」 に設定
- 画面下部にある 「Shutdown with Sysprep」 をクリックします。
これにより、管理者パスワードのランダム化、SIDの初期化、コンピュータ名の再生成などの設定が行われた上で、インスタンスが安全にシャットダウンされます。
- インスタンスが「停止 (Stopped)」状態になったことをAWSマネジメントコンソールで確認します。
- 停止状態のインスタンスを選択し、 「アクション」 > 「イメージとテンプレート」 > 「イメージを作成」 からAMIを取得します。
この手順で作成したAMIから新しいEC2インスタンスを起動すれば、初回起動時に新しいSIDとコンピュータ名が割り当てられ、SSM Agentも正常に初期化されます。
結果として、Fleet Managerからも問題なく接続できるようになります。
まとめ
- Amazon EC2 for Microsoft Windows ServerのカスタムAMIを作成する際は、 必ずSysprepを実行する 。
- Sysprepを忘れると、SIDの重複やSSM Agentの不具合により、Fleet Managerを含む各種機能が正常に動作しなくなる。
- Sysprepの実行は、Windowsに標準搭載されている「EC2Launch」ツールからワンクリックで実施可能。
Windowsインスタンスの運用では基本的なポイントですが、Linuxの運用に慣れているとつい見落としがちな手順です。
同じような事象で悩んでいる方の参考になれば幸いです!
参考
出典:
AWS Documentation:Windows Sysprep を使用して Amazon EC2 AMI を作成する
Microsoft Learn:Sysprep (システム準備) の概要

