Aws::Sigv4::Errors::MissingCredentialsError
アプリを自動デプロイした際、下記のようなエラーが出現。
※アプリのサーバには、EC2、unicorn、Nginxを利用
Aws::Sigv4::Errors::MissingCredentialsError: Cannot load `Rails.config.active_storage.service`:
missing credentials, provide credentials with one of the following options:
- :access_key_id and :secret_access_key
- :credentials
- :credentials_provider
※上記のエラー内容は下記の方法にて確認した。
(ターミナルにて、EC2にログインし下記コマンドを入力。)
[ec2-user@ip-000-00-0-000 アプリ名]$ cd current
[ec2-user@ip-000-00-0-000 current]$ cd log
[ec2-user@ip-000-00-0-000 log]$ cat unicorn.stderr.log
結論
EC2の環境変数にAWSのアクセスキーが設定がされておらず、デプロイ時にActive storageが読み込まれなかった事が原因。
【EC2に環境変数の設定を行う方法】
EC2にログインした状態で下記コマンドを入力。
[ec2-user@ip-000-00-00-000 ~]$ sudo vim /etc/environment
i を入力し、入力モードに変更。
AWS_ACCESS_KEY_ID='Access key ID'
AWS_SECRET_ACCESS_KEY='Secret access key'
アクセスキーの入力が完了したら、「esc」キー → 「:wq」の順に入力。
設定した環境変数が反映されているかを確認する為、exitコマンドにてログアウト。
[ec2-user@ip-172-31-23-189 ~]$ exit