Heroku アップグレード

Heroku の各サービスの有料プランをアップグレードすることができます。

images/cards/Heroku_logo.svg.webp

目次

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

参考

関連記事