LoginSignup
1
1

【Rails】HerokuのストレージにAWS S3を設定

Last updated at Posted at 2022-03-07

本番アプリケーションでクラウドストレージを使う設定

aws-sdk-s3 gemを追加する。

Gemfile
・
・
gem 'rails',                   '6.0.4'
gem 'aws-sdk-s3',              '1.46.0', require: false
・
・
・
$ bundle install

AWSでS3でバケットの作成

AWSのIAM(Identity and Access Management)サービスでユーザーを作成

I AMユーザー画面

左側のユーザー選択

ユーザーを追加

ユーザー名には使う目的に近い名前などを設定、AWS 認証情報タイプを選択はアクセスキー - プログラムによるアクセスにチェック

一番右の既存のポリシーに直接アタッチクリック
ポリシーのところは一番上にあるAdministratorAccessにチェック

タグの追加 (オプション)は空のまま進む

ユーザー作成

アクセスキー IDとシークレットアクセスキーが表示されるのでコピー時て保存しておく(csvがダウンロードできるのでそれを保存しておくなど)

バケット作成をクリックして重複のない一意の名前をつけて作成(設定はデフォルト)

Herokuに変数の設定

$ heroku config:set AWS_ACCESS_KEY="accessキー"
$ heroku config:set AWS_SECRET_KEY="secretキー"
$ heroku config:set AWS_REGION="リージョン名"
$ heroku config:set AWS_BUCKET="bucket名"

リージョン名はS3のホーム画面の作成したバケットのところに表示されている。

RailsでストレージオプションにAWSを追加する

config/storage.yml


amazon:
  service: S3
  access_key_id:     <%= ENV['AWS_ACCESS_KEY'] %>
  secret_access_key: <%= ENV['AWS_SECRET_KEY'] %>
  region:            <%= ENV['AWS_REGION'] %>
  bucket:            <%= ENV['AWS_BUCKET'] %>



Active Storageサービス設定パラメータを変更

config/environments/production.rb



config.active_storage.service = :amazon
# localに戻したくなったら
# config.active_storage.service = :local



でデプロイして終わりです

1
1
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
1
1