LoginSignup
0
0
記事投稿キャンペーン 「Rails強化月間」

AWS EC2でのbundle install中にプロセスが停止する問題の解決方法

Posted at

はじめに

AWSを利用してアプリケーションを公開しています。RailsアプリケーションをEC2にデプロイしている際に、Gemをインストールするためにbundle installを実行したところ、以下のような表示から先に進まなくなってしまいました。

EC2
Installing gem名 gemのバージョン with native extensions
Building native extensions. This could take a while…

原因

しばらく待っても上記の状態から進まなかったため、プロセスを中断し、何が問題かを探るべくログを確認しました。その結果、bundle installが4つのプロセスで並行して実行されていることがわかりました

EC2
 DEBUG [b81b3574] Command: ( export RBENV_ROOT="$HOME/.rbenv" RBENV_VERSION="3.0.3" ; $HOME/.rbenv/bin/rbenv exec bundle install --jobs 4 --quiet )

この情報を基にいろいろと調べたところ、複数のプロセスでbundle installを実行した際に、そのうちのどれか1つでも問題が発生すると、複数のプロセスのすべてが止まってしまうということがわかりました。

そこで、1つのプロセスでbundle installを実行することで、どのGemに問題があるのかを特定できるのではないかと考えました。

実施した対応

複数のプロセスでの実行ではなく、1つずつbundle installを実行するように変更しました。

EC2
bundle install --jobs=1

結果

エラーの原因となっているGemを特定するために上記の対応を行いましたが、結果的にこれでbundle installが成功しました

原因を調査

一つずつbundle installを実行したことで問題が解消されたという結果から、個々のGemに不具合は存在しなかったのではないかと考えました。

そこで、bundle installがうまくいかなかった原因を調べたところ、以下のような可能性があることがわかりました。

  • EC2インスタンスのリソース不足
  • 並列でインストールを行った場合、Gemの依存関係が適切に処理されないことがある
  • 並列処理が原因でプログラムが予期せぬ挙動を示し、エラーやバグが発生する可能性がある

おわりに

今回は、AWSのEC2インスタンスでbundle installを実行した際に直面したトラブルと、それに対する解決方法について共有させていただきました。同じ問題でお困りの方がいらっしゃれば、この記事が一助となれば幸いです。

最後までお読みいただきまして、ありがとうございました!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0