げんきちの秘密基地

エンジニアリングが世の中の思いを実現してきた歴史に気づき、29歳未経験からWEBエンジニアとして転生!【Danger】綺麗事を割と本気で言ってきます【GitHub】https://github.com/0840kg【Twitter】https://twitter.com/0840kg

ES2インスタンスを停止したら起こったエラーまとめ

ぞす!げんきちです!\\\\٩( 'ω' )و ////

 

「いや、誰だよ」って方は、下記リンクを見てやってください。

  1. はじめまして!げんきちです! - げんきちの秘密基地

  2. 僕がエンジニアになりたい理由 - げんきちの秘密基地

目次〜

f:id:Genkichi:20190312235615p:plain

 

きっかけ

capistranoを使って自動デプロイをしようとしました。

$  bundle exec cap production deploy

中略

 bundler:instal

ここで止まりました。

途中でイジるのが怖くて、そのまま寝ました。

朝になっても止まってました...orz

 

仕方なくcontrol + cしました。

再び自動デプロイしようとしました。

$  bundle exec cap production deploy

[Deprecation Notice] Future versions of Capistrano will not load the Git SCM
plugin by default. To silence this deprecation warning, add the following to
your Capfile after `require "capistrano/deploy"`:

    require "capistrano/scm/git"
    install_plugin Capistrano::SCM::Git

ここで止まりました。

先ほど中断したbundler:instal以前のものは処理が終わってるから表示がされていないのだとしたら、同じbundler:instalで止まっていることになります。

何にしても、うまくいかないことはわかりました。

 

ES2インスタンスの停止

先輩に聞いてみると、インスタンスを停止→開始したら直ったと。

ファミコン...?

と思いつつもやってみました。

 

f:id:Genkichi:20190312105911j:plain

 

MYSQLエラー

$  bundle exec cap production deploy

中略

deploy:migrating
      01 $HOME/.rbenv/bin/rbenv exec bundle exec rake db:migrate
      01 rake aborted!
      01 Mysql2::Error: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111)

bundler:instalは無事に通過しましたが、今度はmigratingでエラーです。

 

ES2インスタンスの停止 ≒ ローカルでPCの電源を落とすこと。

つまり、MYSQLを動かしてあげる必要があります。

 

以下のコマンドで動かせます。 

sudo service mysqld start

 

以下のコマンドで確認できます。

sudo service mysqld status 

ERR_EMPTY_RESPONSE

f:id:Genkichi:20190312115200j:plain

ERR_EMPTY_RESPONSE: ウェブサイトからデータが送信されませんでした。サイトが停止している可能性があります。

 

インスタンスを停止→開始すると、正常にサーバが動くまでタイムラグが生じるみたいです。

2度ほど経験して、いずれも1時間くらいで勝手に動くようになりました。

実務だったら機会ロスがやばい的な話は一旦忘れます。

 

ERR_CONNECTION_REFUSED

f:id:Genkichi:20190312120058j:plain

ERR_CONNECTION_RESET: 問題が発生し、ページへの接続が中断されました。

 

support.google.com

 

確認してみると、nginxが動いていませんでした。

$ ps -ef | grep nginx
ec2-user  8507  8428  0 00:32 pts/0    00:00:00 grep --color=auto nginx

 

以下のコマンドで動かせます。 

sudo service nginx restart
Stopping nginx:                                            [FAILED]
Starting nginx:                                            [  OK  ]

 

以下のコマンドで確認できます。

$ ps -ef | grep nginx
root      8529     1  0 00:32 ?        00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
nginx     8531  8529  0 00:32 ?        00:00:00 nginx: worker process                   
ec2-user  8533  8428  0 00:32 pts/0    00:00:00 grep --color=auto nginx

 

おまけ

unicornの再起動は下記のコマンドで実行できます。

$ cd /var/www/アプリケーション名/current

$ bundle exec unicorn -c /var/www/アプリケーション名/current/config/unicorn.rb -E production -D

 

まとめ

EC2インスタンスを止めると、再開始しただけでは以下のエラーが出ます。

 

MYSQLエラー

・ERR_EMPTY_RESPONSE

・ERR_CONNECTION_RESET

 

追記

EC2インスタンスの停止→開始後、下記の手順で進めるとサーバーを再起動すると、タイムラグが生じないことがわかりました。

 

nginxの再起動

MySQLの再起動

unicornの再起動

 

<一日一新>

佐五右衛門別邸 特製上親子丼。砂肝コリコリ。

 

<学習進捗>

学習開始からの期間 :92日
今日までの合計時間:905h
今日までに到達すべき目標時間:838h
目標との解離:67h
10,000時間」まで、

 

残り・・・9,095時間!」

 

以上です。

読んでくれた方々、ありがとうございました!((_ _ (´ω` )ペコ。

genkichi.hateblo.jp

genkichi.hateblo.jp

 

f:id:www08056561815:20190224095507g:plain

twitter.com