slontが2016年9月3日に投稿(2016年10月1日更新)

0. はじめに

ブログにアクセスできなかった障害ですが、先ほどサーバの復旧が完了しました。

昨日からブログが見れなかったようで、訪問された方にはご迷惑をお掛けしました。先ほど復旧が完了しました。

同じような現象でお困りの方へ参考になればと、対処方法を書かせて頂きます。


1. 環境

  • OS: Ubuntu14.04


2. 現象

本日ブログにアクセスした際、503エラーで画面が真っ白になっているのに気付き、何事かとAWSを確認しました。

すると、ELBのヘルスチェックで、インスタンスからの応答がないため、ステータスがOutOfServiceになっていました。ところが、AWS上ではインスタンス自体は正常になっていたため、どうしたものかと色々調べていました。

セキュリティグループをいじって直接インスタンスにアクセスしたところ、確かにpingやsshが通らないことを確認したため、インスタンスを再起動しました(これがいけなかった)。

その後、何度起動してもインスタンスステータスのチェックで引っ掛かるようになりました。シスログを見ると、以下のエラーが吐かれていました。

ci-info: +++++++++++++++++++++++Net device info++++++++++++++++++++++++  
ci-info: +--------+-------+-----------+-----------+-------------------+  
ci-info: | Device | Up | Address | Mask | Hw-Address |  
ci-info: +--------+-------+-----------+-----------+-------------------+  
ci-info: | lo | True | 127.0.0.1 | 255.0.0.0 | . |  
ci-info: | eth0 | False | . | . | xx:xx:xx:xx:xx:xx |  
ci-info: +--------+-------+-----------+-----------+-------------------+  
ci-info: !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Route info failed!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!  
2016-09-03 13:01:30,245 - url_helper.py[WARNING]: Calling 'http://169.254.169.254/2009-04-04/meta-data/instance-id' failed [0/120s]: request error [HTTPConnectionPool(host='169.254.169.254', port=80): Max retries exceeded with url: /2009-04-04/meta-data/instance-id (Caused by <class 'socket.error'>: [Errno 101] Network is unreachable)]  

調べていると、Ubuntu14.04でのcloud-initのバグらしいことが判明。

データの救出とサーバの復旧に取り掛かります。


3. 対処

とりあえず前述の記事を参考に、AMIを作って別インスタンスを立てましたが、同じく起動せず。

インスタンスが立たない→アクセス出来ない→設定を変えられない

という状況のため、以下の手順でデータの救出と設定変更を試みました。

  1. 一旦新しくUbuntuインスタンスを立てる
  2. 現行のインスタンスからボリュームをデタッチ
  3. 2のボリュームを、1で立てたインスタンスにアタッチ
  4. インスタンスを再起動してSSHログイン
  5. 4でアタッチしたボリュームを適当なディレクトリにマウント
  6. /etc/network/interfaces へ以下を追記
    auto eth0
    iface eth0 inet dhcp
  7. 以下をコメントアウト
    source /etc/network/interfaces.d/*.cfg
  8. インスタンスを停止
  9. ボリュームをデタッチし、もとのインスタンスにルートボリュームでアタッチ(Ubuntuは/dev/sda1
  10. インスタンスを再起動

これで、元の環境を復元して、ネットワークの設定も変更することが出来ました。


4. おわりに

ブログ見れなくなったのに気付いた時は焦りました笑 でもまあこういった障害があるととても勉強になるので、良い機会だったかもしれません。

↑気に入ったらシェアしてね↑
プロフィール
slont

slont

元金融エンジニア。メイン言語はJava, HTML, JavaScript, Python, Kotlinあたり。SECCONやCTF、NLP、機械学習に興味あり。金融日記購読4年。巷で話題の変態紳士。美女ソムリエ始めてました。 お仕事の依頼はTwitterからお願いします。

comments powered by Disqus
Back to top