はじめに
Railsなどを中心に勉強中のエンジニア初心者が他の記事を参考にしたり、実際に実装してみたりして、アウトプットの一環としてまとめたものです。
間違っていることもあると思われるので、その際は指摘いただけると幸いです。
Heroku上でアプリケーションを稼働させる
Railsアプリケーションでアップロードした画像がAWS S3に保存されるように設定し、そのアプリケーションをHeroku上で本番稼働させる想定で記載する。
Active Storage
の実行環境、AWSのアカウント情報、およびS3のバケット作成などは済んでいる前提で記載する。
storage.yml
の編集
設定ファイルにAWSのアカウント情報および、S3のバケット情報を記載する。
※AWSのアカウント情報やS3のバケット情報などについては、セキュリティ的な観点から環境変数に持たせて読み込むようにする。
config/storage.yml
# Use rails credentials:edit to set the AWS secrets (as aws:access_key_id|secret_access_key)
amazon:
service: S3
access_key_id: <%= ENV['AWS_ACCESS_KEY_ID'] %>
secret_access_key: <%= ENV['AWS_SECRET_ACCESS_KEY'] %>
region: <%= ENV['AWS_REGION'] %>
bucket: <%= ENV['AWS_S3_BUCKET'] %>
Herokuへ環境変数を設定
アプリケーションを稼働させるHeroku環境へ環境変数を登録して、デプロイすればOK!
Herokuへのデプロイ方法は別記事参照(https://qiita.com/sekkey_777/items/edc879476c101343c813)
# access_key_id および secret_access_key の登録
$ heroku config:set AWS_ACCESS_KEY_ID=xxx AWS_SECRET_ACCESS_KEY=yyy
# region および bucket の登録
$ heroku config:set AWS_REGION=aaa AWS_S3_BUCKET=bbb
参考