Help us understand the problem. What is going on with this article?

EC2にSSH接続できない問題を復旧

初めまして

いつもお世話になってるQiitaの皆様、色々な情報をご掲載いただきありがとうございます。
今回Qiitaに初めて投稿させていただきます。
どうぞよろしくお願いいたします。

障害内容

開発用の AWS EC2インスタンスにSSH接続できない

発生原因

先日メンテナンス時に /etc/passwd 内の一部ユーザに設定されている
ホームディレクトリ位置を変更した事がわかりました。

ディレクトリ位置変更でSSH接続に使用する秘密鍵の参照位置が変わり
鍵ファイルを見つけることができず認証が失敗しておりました。

復旧対応

指定ユーザのホームディレクトリ位置をメンテナンス前の状態に戻すように対応。

復旧の流れ

  1. 復旧用のインスタンスを新規作成
  2. 障害インスタンスの停止、ボリュームのデタッチ
  3. 復旧インスタンスに上記ボリュームをアタッチ
  4. 復旧インスタンスの起動、ログイン
  5. 復旧インスタンスにマウント
  6. 復旧インスタンスで修正作業
  7. 復旧インスタンスからアンマウント
  8. 復旧インスタンスの停止、ボリュームのデタッチ
  9. 障害インスタンスに修正したボリュームをアタッチ
  10. 再起動

復旧作業 (詳細)

1. 復旧用のインスタンスを新規作成

AWS EC2のコンソールからインスタンスを1点新規作成します。
障害インスタンスのOSはAmazon Linux 2のため同じOSを設定しました。
また、インスタンスの種類やストレージ容量は t2.nano 8GB にしています。

2. 障害インスタンスの停止、ボリュームのデタッチ

インスタンスを停止させてEC2 ボリュームのコンソールに移動します。
対象のボリュームに掲載されているアタッチ済み情報のインスタンスIDと障害インスタンスのIDが一致していることを確認します。

:exclamation:(重要)このとき「ボリュームID」と「アタッチのパス」をメモ等に記録して下さい。  
001.png

上記完了後にボリュームを選択してアクションからデタッチをします。

3. 復旧インスタンスに上記ボリュームをアタッチ

デタッチ済みのボリュームを選択してアクションからボリュームのアタッチを選択します。
インスタンス名とデバイスを指定する画面でインスタンス名: 復旧用のインスタンス
デバイス: /dev/sdf を指定します。
002.png

4. 復旧インスタンスの起動、ログイン

復旧用インスタンスを起動してSSH接続をします。
接続後、rootユーザにスイッチします。

5. 復旧インスタンスにマウント

llコマンドにて先ほどアタッチした/dev/sdf内容を確認します。

コマンド
ll /dev/ | grep sdf
コマンド結果
lrwxrwxrwx 1 root root           4  2月 20 12:36 sdf -> xvdf
lrwxrwxrwx 1 root root           5  2月 20 12:36 sdf1 -> xvdf1

下記コマンドでマウントまでの作業を行います。

コマンド
mkdir /mnt/data
mount /dev/sdf1 /mnt/data

6. 復旧インスタンスで修正作業

マウント作業を行うと /mnt/data のディレクトリ内が障害インスタンスのボリュームになっています。
今回修正を行うファイルは /mnt/data/etc/passwd のためvi コマンドで開いて修正をおこないます。

参考コマンド
vi /mnt/data/etc/passwd

7. 復旧インスタンスからアンマウント

下記コマンドにて障害インスタンスのボリュームをアンマウントします。

コマンド
umount /dev/sdf1

8. 復旧インスタンスの停止、ボリュームのデタッチ

復旧インスタンスを停止します。
停止後、EC2 ボリュームのコンソールに移動します。
(2)の工程でメモした「ボリュームID」のボリュームを見つけて選択後、アクションからデタッチします。
003.png

9. 障害インスタンスに修正したボリュームをアタッチ

上記ボリュームを障害インスタンスにアタッチします。
デバイスは(2)の工程でメモした「アタッチのパス」を入力してください。
今回 /dev/xvda になります。
004.png

10. 再起動

障害インスタンスを再起動して、SSH接続が正常にできることを確認します。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした