ネットワーク設定で冷や汗

サーバって怖いなぁ…

問題

AWS上のCentOSサーバでElastic IPを設定しているにもかかわらず、(ちょっとした事情があって)

sudo vim /etc/sysconfig/network-scripts/ifcfg-eth0

としてファイルを開き、固定IPアドレス

IPADDR=12.345.678.910

…のように追記して、ネットワーク再起動。

sudo /etc/rc.d/init.d/network restart

するとエラーが発生してネットワーク遮断。
(( ;゚Д゚)))

対処方法

AWSサポートに事情を話してみたところ、
EC2インスタンスではDHCPIPアドレスを取得される設定にして置いて頂かなければ、正しくインスタンスにお繋ぎすることはできません
とのお言葉。


すいません…(´・ω・`)


しかし、以下のような手順で復元することが可能ということを教えていただいた!

  1. インスタンスをSTOP
  2. インスタンスのルートEBSボリュームをDetach
  3. 他のアクティブなインスタンスに「2」のEBSボリュームをAttachしてマウント
  4. 「3」のインスタンスSSH接続してマウント先にアクセス。
  5. 「3」でAttachしたEBSボリュームを「2」のインスタンスにAttachし直す。

実作業

  1. マネージメントコンソールからインスタンスを停止(stop)
  2. インスタンスのrootボリュームのボリュームIDを下の枠のBlock Devices: sda1と表示されているところから取得
  3. 「EBS→Volumes」から「2」で取得したボリュームIDで検索し、右クリックでメニュからボリュームをデタッチ(detach)
  4. ボリュームが正常にデタッチされたのを確認したら(statusがAvailableになる)、次にこのボリュームをアタッチ選択して、既に起動中の他のインスタンスのデバイス(/dev/*)として追加
  5. ボリュームをアタッチされたインスタンス上にSSHしてマウント(下記の「マウントの例」参照)
  6. 必要なファイルを修正
  7. ボリュームをアンマウント(umount /mnt/recover)し、マネージメントコンソールからボリュームをインスタンスからデタッチ
  8. ボリュームを元のインスタンスへアタッチして、インスタンスを起動
マウントの例

$ sudo su
# mkdir /mnt/recover
# mount /dev/sdf /mnt/recover