自動で動かしてるAWS EC2 が急に止まった時の対処法
ダンボールと空き缶で机を自作しました。
どうも。伊藤くんです。
EC2を使って自動でプログラム動かして放置していたんですが、いつの間にかそのプログラムが止まっていました。
なんでや!と思ってsshでアクセスしてviを実行しようとしたら、
E297: Write error in swap file
とか言われて怒られるし。
調べてみたら、どうやらストレージがパンパンになっていたそうな。
原因はログファイル系。/var/log/の中になんかいっぱいログファイルがあるんだけど、そいつらがぶくぶく膨れ上がっていました。
まったくもう。幸せ太りってヤツでしょうか。
中でも、cloud-init.logというファイルがずば抜けて幸せ太りしていました。
なんのログファイルなのかもよくわかりませんが、こいつの中身を消すことで解決します。
しかし、何故か
sudo ‘ ‘ > /var/log/cloud-init.logとか
sudo : > /var/log/cloud-init.log (「:」は0を返すらしい )とか
sudo vi /var/log/cloud-init.log とかで中身空にしようとしたけど、パーミッションがないっつって怒られました。でも、
$ sudo rm /var/log/cloud-init.log
は何故か通ったので、これでcloud-init.logを消せばおkです。
その後、同じ名前の空のファイルを作っといた方がいいかなとも思いましたが、また幸せ太りされては困るので、作るのはやめました。
その後そのままEC2消したりつけたりプログラム動かしたりしましたが、問題なく動きました。
しかし、どういうログファイルで、どんくらい重要度の高いものかよくわからないので、心配な方は新しく同じ名前の空のファイル(cloud-init.log)を同じ場所(/var/log/)に作っておいた方がいいかもしれません。
今回は割とすんなり解決できてよかった・・・。
2019/6/11追記:
上記の方法だと、cloud-init.log以外のファイルも少しずつ幸せ太りしているのにそれらは無視しているので、次第にそいつらがストレージを圧迫し始めました。
なので、以下のコマンドで全てのログファイルの中身を消すことで解決しました。
sudo find /var/log/ -type f -name \* -exec cp -f /dev/null {} \;
以前は勝手に知らないログファイルを消すことにビビってcloud-init.log以外触らないようにしていましたが、ログファイルはただのログをとるだけのファイルなので、多分大丈夫なのでしょう。
試しにこのコマンドの実行後にインスタンス動かしてみましたが、問題なく動作しました。
それに、以前は何故かファイルの中身を消せないからファイルごと消すしかない!とか言ってファイルの存在ごと消していましたが、先ほど調べてみたら簡単に中身を消す方法が出てきたので、今回はその方法で中身だけ消しています。以前は何故この方法が見つけられなかったのでしょうか。そもそも検索すらしなかったのか・・・?
参考サイト : https://qiita.com/Tsukasa_Sato/items/f0a7f029d922883c40a7
コメントを残す