🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
unicorn

Unicornは、汎用のRackアプリケーションサーバ。RackとWebサーバーの機能を併せ持ちます。レスポンス処理や、Nginx単体がRackの機能をサポートしていない事から、一般的にはNginx+Unicorn+Railsの構成を取って用います。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

1回答

829閲覧

【Rails5.2】【EC2】AWSへのデプロイ時におけるunicorn導入時のエラーについて

yastinbieber

総合スコア49

unicorn

Unicornは、汎用のRackアプリケーションサーバ。RackとWebサーバーの機能を併せ持ちます。レスポンス処理や、Nginx単体がRackの機能をサポートしていない事から、一般的にはNginx+Unicorn+Railsの構成を取って用います。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2021/01/13 05:19

編集2021/01/13 05:27

前提・実現したいこと

連日すみません。
RailsアプリをAWSにデプロイする際のunicorn設定の部分でご質問がございます。

こちらのサイトを参考にunicorn導入を進めているのですが、
rails db:create RAILS_ENV=productionを実行したところ不明なエラーを吐かれてしまい止まってしまっております。

発生している問題・エラーメッセージ

[ec2-user@ip-172-31-36-245 git_toreka]$ rails db:create RAILS_ENV=production rails aborted! ActiveSupport::MessageEncryptor::InvalidMessage: ActiveSupport::MessageEncryptor::InvalidMessage /var/www/git_toreka/config/environment.rb:5:in `<top (required)>' /var/www/git_toreka/bin/rails:9:in `<top (required)>' /var/www/git_toreka/bin/spring:15:in `<top (required)>' bin/rails:3:in `load' bin/rails:3:in `<main>' Caused by: OpenSSL::Cipher::CipherError: /var/www/git_toreka/config/environment.rb:5:in `<top (required)>' /var/www/git_toreka/bin/rails:9:in `<top (required)>' /var/www/git_toreka/bin/spring:15:in `<top (required)>' bin/rails:3:in `load' bin/rails:3:in `<main>' Tasks: TOP => db:create => db:load_config => environment (See full trace by running task with --trace) [ec2-user@ip-172-31-36-245 git_toreka]$

試したこと

エラー文を検索にかけてみたところmaster.keyが本番環境にセットされていないことが原因かと推測できたのでそちらをセットすることにしてみました
参考
①ローカルにあるconfig/master.keyの内容をコピー

fxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

②その内容をEC2の本番環境にて反映させる(shared/configに)

[ec2-user@ip-172-31-36-245 git_toreka]$ cd shared/config -bash: cd: shared/config: No such file or directory

するとディレクトリが存在しないと言われてしまいます。
本来はディレクトリを移動しmaster.keyを本番環境にも反映させたいのですがやり方が不明の状態です。

恐れ入りますがどなたかこのエラーの解決策をご教示いただけますと幸いです。

またそもそも解決する上での着眼点が違うなどもありましたらご教示ください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

sharedは作成していなければ存在しないです。
多くの場合はcapistranoでデプロイする際に作成するのですが、恐らくまだ手動でソースを配置しただけなのではないでしょうか。
それであればローカルとディレクトリ構成は同じなのでconfigの配下に置けば良いと思います。

投稿2021/01/13 08:38

yu_1985

総合スコア7588

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yastinbieber

2021/01/13 09:29

いつもありがとうございます。 通常capistranoでのデプロイ時に作成するものなのですね。 今回の場合、この後capistranoを導入する予定なのですが、 その時改めて設定をしなくても良いようにこの段階でsharedディレクトリは作成しておくべきなのでしょうか。 それとも現段階では、 [ec2-user@ip-172-31-36-245 git_toreka]$ cd config [ec2-user@ip-172-31-36-245 config]$ このような形でconfigに移動をしてそこにmaster.keyを作成すべきなのでしょうか?
yu_1985

2021/01/13 09:44

今回はrails db:create をしたいだけだと思いますけど、そもそもの話としてこの段階で手動でdb:createをする意味自体があまりないのではと思います。 記事を見るとどうせ後でcapistranoでデプロイするので、DB作成もmasger.key配置もその時に全部まとめてやってしまえばいいのでは? 参考サイトではcapistranoにそこまでやらせてないみたいですけど。 どうしてもその段階でやりたいなら、とりあえずconfigディレクトリの下に手動でmaster.keyを配置してdb:createを実行し、その後配置しているソースを一旦全部削除することをおすすめします。 もちろん、あとからcapistranoでデプロイするということを前提にするならば、の話です。
yastinbieber

2021/01/13 10:07

なるほど… 概要が掴めてきました。 この時点でのdb:createはそこまで必須というものではなかったのですね。 ありがとうございます。参考になりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問