接続できなくなったEC2(Windows)のレジストリを修正してみる EC2Rescue編

はじめに

瀬田@大阪オフィスです。
EC2も一般的なOSが稼働している以上、設定を間違えれば当然、接続できなくなります。 サービスを無効にしたであるとか、起動設定を間違えたであるとか、ネットワーク越しに操作が出来なくなって青くなった経験ありますよね。 今回は、EC2に接続できなくなってしまった場合の復旧方法とレジストリの直接編集による復旧手順をまとめて見たいと思います。

AWSから提供されている復旧方法

スナップショットからの復旧が一番確実で迅速です。定期バックアップ大事です。

EC2Rescue for Windows Server
復旧用windowsインスタンスにダウンロードして使う復旧ソフト。
起動しないEBSを復旧用インスタンスにアタッチして、レジストリのロールバック、前回正常起動時へのロールバック、既定の設定値の修正の自動修正を行う。

AWS Systems ManagerによるAWSSupport-ExecuteEC2Rescue ドキュメント自動実行
上記のEC2Rescue for Windows Serverの作業(復旧インスタンスを作るところから)をAWS Systems Managerで自動実行する。

この2点が提供されています。
個人的には、処理の内容が見えるEC2Rescue for Windows Serverの方が使いやすいかなと思います。
そして、EC2Rescue for Windows Serverにはもう一つ利点があります。

EC2Rescue for Windows Serverの利点

まず、一般的な復旧方法は以下の記事をご確認ください。

Amazon EC2のWindows用復旧ツール『EC2Rescue』が利用可能になりました

ある程度、自動で復旧処理を行なってくれるEC2Rescueですが、ツールの想定外の変更がシステムに加えられた場合、復旧することが出来ない場合があります。
こうなると、直接レジストリを修正してやるしかなくなるのですが、手順はなかなか煩雑です。
しかし、EC2Rescueがあれば、この作業を大きく省力化してくれます!

概要

大雑把に作業の流れを確認します。

  • 障害機のEBSをデタッチし、別の復旧用インスタンスにアタッチします。
  • 復旧用インスタンス上で、EC2Rescue for Windows Serverを実行し、障害機のEBSを復旧用のWindowsにマウントします。
  • レジストリエディタで障害機のレジストリを修正します。
  • 編集したレジストリを保存し、障害機に再アタッチします。

要は、実機からディスクを抜いて、別のマシンに外付け。 レジストリ等を修正して元のマシンに付け直すという、昔からあるPCの復旧手順をイメージしてもらうとわかりやすいと思います。

注意

作業前には必ずスナップショット、AMIを取得してください。
システムの書き換えを実施しますので、最悪起動しなくなります。

手順

事前準備(マネジメントコンソール作業)

1.障害機のEBSスナップショット、AMIの取得を行なってください。
(OSのレジストリを変更しますので起動できなくなる可能性があるため、必ず実施して下さい。)
2.適当なWindowsインスタンスを作成してください。これを復旧機とします。(分かりやすいように復旧マシン等のタグをつけて下さい。)
3.復旧機に以下のファイル(EC2Rescue)をダウンロード、解凍し、デスクトップにフォルダごと置いて下さい。
https://s3.amazonaws.com/ec2rescue/windows/EC2Rescue_latest.zip?x-download-source=docs

障害機のEBSを復旧機に付け替え(マネジメントコンソール作業)

4.障害機をシャットダウンして下さい。(分かりやすいように障害マシン等のタグをつけて下さい。)
5.障害機のEBSをデタッチして下さい。(分かりやすいようにEBSに障害等のタグをつけて下さい。)
6.障害機のEBSを復旧機にアタッチして下さい。(デバイス欄は自動入力される値で大丈夫です。)

障害ディスクのマウント(復旧機作業)

7.復旧機にRDPでログインして下さい。
8.項番3で作成した、EC2Rescueを起動して下さい。(オレンジ色のアイコンです。)
9.Nextボタンを押して下さい。
10.Offline instanceを選択して下さい。
11.先ほどアタッチしたディスクが表示されますので、Nextボタン→Yesボタン→OKボタンを押して下さい。
12.EC2Rescueは終了させずに、次の手順に進んで下さい。

レジストリの修正(復旧機作業)

13.regeditを起動して下さい。
14.HKEY_LOCAL_MACHINEを展開して下さい。
15.EC2Rescue_〜が障害機のレジストリです。適宜修正してください。
16.regeditを終了して下さい。(必須)

EC2Rescueによる最終処理(復旧機作業)

17.EC2Rescueの画面に戻って下さい。
18.Capture logsを選択して下さい。
19.Event Log以外のチェックを外して下さい。
20.Collectボタンを押して下さい。
21.適当な名前をつけてデスクトップに保存して下さい。
22.Finishボタンを押して下さい。
23.設定を変えず、OKボタンを押して下さい。(この時点で障害EBSがアンマウントされます。)

EBSの戻し作業(マネジメントコンソール作業)

24.障害EBSを復旧機からデタッチして下さい。
25.障害機に障害EBSをアタッチして下さい。
【注意】この時、デバイス欄を/dev/sda1に必ず変更して下さい。
26.障害機が正常起動します。

さいごに

復旧方法はあるとはいえ、こういったミスが発生してしまうと余計な手間がかかるので、定期的なバックアップの大切さを痛感します。