記事検索

検索ワードを入力してください。
Sky Tech Blog
【AWS】Windows EC2に​Fleet Managerで​接続できない​!原因は​Sysprepの​未実行だった​話

【AWS】Windows EC2に​Fleet Managerで​接続できない​!原因は​Sysprepの​未実行だった​話

AWS Systems Manager (SSM) の Fleet Manager を使用して、カスタムAMIから起動したWindows Serverインスタンスに接続できない事象の原因と解決策について解説します。Sysprep未実行によるSID重複などの問題を回避するための正しいAMI作成手順を紹介します。

はじめに

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を作成すると、以下の問題が引き起こされます。

  1. SIDの重複
    元のインスタンスと全く同じSIDやコンピュータ名を持つクローンが作成されてしまい、OSの認証やネットワーク通信で予期せぬ不具合が発生します。
  2. 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を使用していた場合となります。他バージョンの手順は公式を参照してください。

  1. 元となるAmazon EC2 for Microsoft Windows Serverインスタンスにログインします。
  2. スタートメニューから Amazon EC2Launch settingsを開きます。
  3. 「Administrator password settings」 を 「Random」 に設定
  4. 画面下部にある 「Shutdown with Sysprep」 をクリックします。

これにより、管理者パスワードのランダム化、SIDの初期化、コンピュータ名の再生成などの設定が行われた上で、インスタンスが安全にシャットダウンされます。

  1. インスタンスが「停止 (Stopped)」状態になったことをAWSマネジメントコンソールで確認します。
  2. 停止状態のインスタンスを選択し、 「アクション」 > 「イメージとテンプレート」 > 「イメージを作成」 から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 (システム準備) の概要


\シェアをお願いします!/
  • X
  • Facebook
  • LINE
キャリア採用募集中!

入社後にスキルアップを目指す若手の方も、ご自身の経験を幅広いフィールドで生かしたいベテランの方も、お一人おひとりの経験に応じたキャリア採用を行っています。

Sky株式会社のソフトウェア開発や製品、採用に関するお問い合わせについては、下記のリンクをご確認ください。
お問い合わせ
ホーム