目次
0. Introduction
-
対象となる読者
- Heroku の各サービスの有料プランをアップグレードしたいと思っている方
- Heroku の無料プランから有料プランへアップグレードしたいと思っている方
-
本記事の価値
- Heroku の各サービスの有料プランをアップグレードすることができます。
-
前提
- Heroku でアプリケーション開発をしている方、運用している方
1. dyno タイプのアップグレード
Heroku には、様々な dyno タイプが存在します。値段が異なるので、環境に合った dyno タイプを選択してください。ここでは、アプリ名’test-app’を’standard-2x’タイプに変更します。
# 0. 環境変数にアプリ名をセット
export $HEROKU_APP_NAME=test-app
# プロセスタイプの現在の dyno タイプを表示する
heroku ps
# Dynoタイプを変更する.
heroku ps:type web=standard-2x -a $HEROKU_APP_NAME
2. Heroku Postgres のアップグレード
メジャー PostgreSQL バージョンのアップグレードは、Heroku CLI 経由でのみ実行できます。DB のアップグレードは、別の DB を作成して移行(copy)する流れになります。
# 1. 現状の状況確認
heroku pg:info -a $HEROKU_APP_NAME
# 2. pgのstandard-0を追加
heroku addons:create heroku-postgresql:standard-0 -a $HEROKU_APP_NAME
# こんな感じの環境変数が生成される => HEROKU_POSTGRESQL_OLIVE_URL
# 3. pgをwaitする
heroku pg:wait -a $HEROKU_APP_NAME
# 4. メンテナンスモードにする
heroku maintenance:on -a $HEROKU_APP_NAME
# 5. データをコピーする
heroku pg:copy DATABASE_URL HEROKU_POSTGRESQL_OLIVE_URL -a $HEROKU_APP_NAME
# 6. dbの参照先を変更する
heroku pg:promote HEROKU_POSTGRESQL_OLIVE_URL -a $HEROKU_APP_NAME
# 7. 変更されたか確認
heroku pg:info -a $HEROKU_APP_NAME
# 8. メンテナンスモード解除
heroku maintenance:off -a $HEROKU_APP_NAME
3. Heroku Redis プランのアップグレード
Redis プランのアップグレードをします。インスタンスをアップグレードする時は、別のインスタンスにデータを移行(copy)する流れになります。
# 1. 現状の状況確認
heroku redis:info -a $HEROKU_APP_NAME
# 2. Hobby DevからPremium-0へアップグレード
heroku addons:upgrade redis-encircled-XXXXX heroku-redis:premium-0 -a $HEROKU_APP_NAME
# 3. 環境変数を変更(SSL接続経由 redis to rediss) ※自動的に変わっている場合もあり
heroku config:set REDIS_URL=rediss://XXXX:YYYY -a $HEROKU_APP_NAME
Redis プランのアップグレード時の注意点
-
Premium、Private、Shield の各プランで、Heroku Redis バージョン 6.0 以降にはセキュアクライアントが必要です。バージョン 6 にアップグレードする場合は、TLS をサポートするようにクライアントを設定する必要があります。
-
Redis6、Heroku であれば Premium プラン以上では TLS 接続が必須ですが、Heroku 内部では SSL 認証をルーターというレイヤでやるので、Redis との接続のところで TLS 接続されていません。
-
対策 ①: SSL 接続の Verify モードを、OpenSSL::SSL::VERIFY_NONE にします.
-
対策 ②: rediss://にします.
- redis:// スタンドアロン Redis サーバ
- rediss:// SSL 接続経由のスタンドアロン Redis サーバ
- redis-socket:// Unix ドメインソケット経由のスタンドアロン Redis サーバ
- redis-sentinel:// Redis Sentinel サーバ
4. Heroku Papertrail プランのアップグレード
Papertrail は、ホストされたログの集約と管理を提供します。アプリケーションとプラットフォームのログに関するリアルタイムのテール、検索、アラートができます。ここでは、Papertrail プランのアップグレードを行います。
# 1. 現状の状況確認
heroku addons:open papertrail
# 2. ChokladからFixaへアップグレード ※再起動するので注意
heroku addons:upgrade papertrail:fixa -a $HEROKU_APP_NAME