EC2インスタンスにSSHできないときって、今回は何の手違いか、.sshディレクトリごと削除しちゃって。
あーあ、自分は nginxユーザーのホームは /home/nginx だと思ってたんだけど、/var/www/vhosts だったんだ。
誰がこんなクソみたいな設定したんだ! オレだ!
authorized_keys がないと、SSHでログインできないじゃないか。
やること:
SSHできないEC2インスタンス(INS-A)からボリューム(VOL-A)を取り出し、別のEC2インスタンス(INS-B)からボリューム内のファイルの問題となっているファイルを修正する。
インスタンス(INS-A)を停止し、ボリューム(VOL-A)をデタッチする
「EC2 -> インスタンス」から、インスタンス(INS-A)を選択して停止
停止したインスタンス(INS-A)の「ルートデバイス」を選択
「EBS ID」をクリックすれば対象のボリューム(VOL-A)へ「EC2 -> ボリューム」から、対象のボリューム(VOL-A)を選んで「アクション -> ボリュームのデタッチ」
これで、インスタンス(INS-A)からボリューム(VOL-A)が取り除かれた。
別のインスタンス(INS-B)に取り外したボリューム(VOL-A)をアタッチ。
「EC2 -> ボリューム」から、先程取り除いたボリューム(VOL-A)を選択
「アクション -> ボリュームのアタッチ」空きドライブに割り当てる(デフォルトでは「/dev/sdf」)
これでボリューム(VOL-A)が別のECインスタンス(INS-B)にアタッチされた。
別のEC2インスタンス(INS-B)にログイン。
# df -h
# lsblk
# mkdir /mnt/vol01
# mount /dev/xvdf1 /mnt/vol01
# df -h
作業が終わったらアンマウント。
# umount /mnt/vol01
インスタンス(INS-B)からボリューム(VOL-A)をデタッチ
インスタンス(INS-A)にボリューム(VOL-A)をアタッチ(/dev/xvda)して起動
「EC2 -> ボリューム」からボリューム(VOL-A)を選択
「アクション -> ボリュームのアタッチ」を選択
デバイスの値を最初と同じ「/dev/xvda」にしてから「アタッチ」