AWS
SSH
EC2

ssh keyの紛失等でアクセスできないEC2インスタンスのデータにアクセスする方法

全部ここに書いてありますが、要するにアクセス不可能なインスタンスのEBSを一旦デタッチし、他のEC2インスタンスにアタッチすればよいです。


1. アクセスできなくなったインスタンスを停止

image.png

2. インスタンスのボリュームをデタッチ

  • EC2ダッシュボードのナビゲーションペインから「ボリューム」を選択
  • 該当のボリュームを右クリック => 「ボリュームをデタッチ」

image.png

3. 元のインスタンスと同じAZに新しいインスタンスを立てる

  • インスタンスを立てる際、「ステップ4: ストレージの追加」で先程デタッチしたEBSを新しいインスタンスに追加します。
  • [スナップショット]欄でEBSのIDを入力すると出てくるはずです。
  • 同じAZでなければアタッチできません! image.png

4. 新しいEC2インスタンスにssh接続し、ディスクの状態を見る

[ec2-user@ip-000-00-00-000 ~]$ sudo fdisk -l
WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.

Disk /dev/xvda: 8589 MB, 8589934592 bytes, 16777216 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: gpt


#         Start          End    Size  Type            Name
 1         4096     16777182      8G  Linux filesyste Linux
128         2048         4095      1M  BIOS boot parti BIOS Boot Partition

Disk /dev/xvdb: 8589 MB, 8589934592 bytes, 16777216 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x00000000

    Device Boot      Start         End      Blocks   Id  System
/dev/xvdb1   *       16065    16777182     8380559   83  Linux

この場合、/dev/xvdb1 が手動で追加したEBSになります。

5. ディスクをマウントする

# 適当にマウントポイントを作成
[ec2-user@ip-000-00-00-000 ~]$ mkdir ebs
# マウント
[ec2-user@ip-000-00-00-000 ~]$ sudo mount /dev/xvdb1 ebs

6. 中身を見てみる

[ec2-user@ip-000-00-00-000 ~]$ ls ebs
bin  boot  dev  etc  home  initrd.img  initrd.img.old  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var  vmlinuz  vmlinuz.old

無事データが見えています。
あとは煮るなり焼くなりお好きにどうぞ。