トラブルの原因
AWSにて作成したEC2のWindowsインスタンスに対してRDPでログインした後、WindowsのパーソナルFWを操作中にRDP接続を無効に設定すると、RDP画面がブチっと切れて操作できなくなります。
EC2としては起動しているのですが、外からRDPが拒否されてしまい、OSレイヤーでの設定やローカルのファイルにアクセスすることが出来なくなってしまいます。
対処法
- EC2のバックアップ、スナップショットを取得していれば設定変更前に戻すことは出来ます…が、私は残していませんでした。
- AWS Systems Managerを使ってEC2にアクセスし、復旧させる方法もあるようです。
https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/automation-ec2rescue.html - 今回試してみた手順であれば、EC2の停止を伴いますが30分ほどで元に戻せますので試す価値ありです。
参考サイト
以下のサイトを参考にさせて頂きました。
少し前の手順ですが、2020年現在でもこの手順で解決できます。
https://haws.haw.co.jp/tech/ec2-windows-rdp-failure/
やってることをシンプルに言えば、「ログイン出来なくなったEC2の設定を別のEC2で修正し、元のEC2に付け直す」ということになります。
手順
- 対象のWindowsインスタンスを停止し、アタッチしていたEBSをデタッチします。
2. 同じAZで切り替え用として新規のEC2を作成します。
接続出来なくなったEC2のEBSのボリュームIDを確認し、新規作成したEC2にアタッチします。ボリュームが2つアタッチされる形になります。
3. OSレイヤーで元のEC2のディスをオンライン化ます。
新規作成したEC2にリモートログインしてServer Managerを開き、
「File and Storage Services」 -> 「Volumes」 -> 「Disks」
からアタッチされた元のEC2のディスクを右クリックして「Bring Online」でドライブをオンラインにします。
4. レジストリハイブを読み込みます。
コマンドプロンプトから「Regedit」を入力し、レジストリが表示されたら「HKEY_LOCAL_MACHINE」を選択しFileメニューから「ハイブの読み込み」を選択します。
元のEC2の設定変更をするため、Windows\System32\config\System
を開きます。
5. パーソナルFWポリシーの設定を書き換えます。
services/SharedAccess/Parameters/FirewallPolicy
を開きます。
直下にネットワークごとのFW設定項目としてDomainProfile、PublicProfile、StandardProfile
の項目がありますので、それぞれのEnableFirewallの設定値を1→0に書き換えます。その後、Fileメニューから「ハイブのアンロード」を実行します。
6. 元のEC2へアタッチし直します。
Server Managerで先ほどオンライン化したドライブを選択して「Take Offline」を実行し、切り替え用のEC2からログオフします。その後、2. と同様の手順でAWSのコンソール画面から対象のVolumeをデタッチし、元のEC2へアタッチし直します。
7. 接続確認
元のEC2を起動させるとRDP可能となります。