本番アプリケーションでクラウドストレージを使う設定
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
・
・
・
でデプロイして終わりです