0
0

More than 1 year has passed since last update.

AWSのデプロイで躓いた話

Posted at

はじめに

私は某プログラミングスクールに通う初学者です。
学習を始めて数ヶ月経ちますが、まだまだ考えが足らなかったり、トンチンカンな行動を起こしていると思います。
自分が遭遇したエラーや問題解決をした記録として投稿します。

デプロイ

今日はAWSを使ってデプロイしたときのことを書きたいと思います。

今回デプロイしたアプリケーションは、以前にデプロイしていたにも関わらず、色々あって(長いので割愛します)ブラウザで表示できなくなっていることに気づき、スクールのカリキュラムを見ながら作業を行いました。

EC2内でgit pull origin masterを行ったところ、

ターミナル
From https://github.com/xxxx/アプリ名
 * branch            master     -> FETCH_HEAD
Already up to date.

このように返ってきました。
そのままユニコーン軌道コマンド

ターミナル
bundle exec unicorn_rails -c config/unicorn.rb -E production -D

を実行すると

ターミナル
master failed to start, check stderr log for details

と返ってきました。

ターミナル
less log/production.log

コマンドを実行してエラーを探していきます。

ターミナル(エラーログ)
ActionView::Template::Error (The asset "xxxxx.png" is not present in the asset pipeline.

このようなエラーを見つけました。
アセットファイルを正しくコンパイルできていないのが原因のようです。

以下、行なったこと

ターミナル
rails assets:precompile RAILS_ENV=production
ターミナル
ps aux | grep unicorn

psコマンドで現在動いているプロセスの確認をしました。
すると、killされていないプロセスが2つありました。
masterと書いてあるプロセスidをkillします。

ターミナル
kill <確認したunicorn rails masterのプロセスid>

最後にRailsを再起動するコマンドを実行します。

ターミナル
RAILS_SERVE_STATIC_FILES=1 unicorn_rails -c config/unicorn.rb -E production -D

ブラウザ上でアプリケーションを開くと、正常に表示することに成功しました。
エラーが出たときはエラーログを表示するコマンドを実行し、エラー文を見つけ、それに沿って解決策を探す。それができませんでした...

AWSの無料枠

AWSには、12ヶ月間、一定の使用量までは様々なサービスを無料で利用できる」という無料枠があります。
無料期間が終わると、使用量に応じて料金が発生するそうです。
※無料期間内でも、使用量が無料枠を超えると料金が発生します。

例えば、2つ目のアプリケーションをAWSでデプロイする場合、新たにインスタンスを作成しますが、稼働時間による無料枠の使用限度を超えると料金が発生します。
AWSのアカウントを作成してから13ヶ月以上経った場合、インスタンスを起動している状態だと料金が発生するそうです。
2つ目以降のデプロイをしたことがないので、具体的な金額はわからないですが、法外な費用ではないと聞きました。

料金発生を避けるためにできること

  • Elastic IPアドレスを解放する
  • 紐付いているS3バケットを削除する
  • インスタンスを削除する など

終わりに

自分で解決したいのに、調べて実行してを繰り返しているうちにどこまで完了しているのかわからなくなり、メンターさんに教えていただきました。
renderでデプロイをしたこともありますが、AWSは作業工程も多く、難しくて苦手意識を持っています。慣れる日は来るのか...日々学習ですね。
ありがとうございました。

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