Skip Navigation
Show nav
Dev Center
  • Get Started
  • ドキュメント
  • Changelog
  • Search
  • Get Started
    • Node.js
    • Ruby on Rails
    • Ruby
    • Python
    • Java
    • PHP
    • Go
    • Scala
    • Clojure
    • .NET
  • ドキュメント
  • Changelog
  • More
    Additional Resources
    • Home
    • Elements
    • Products
    • Pricing
    • Careers
    • Help
    • Status
    • Events
    • Podcasts
    • Compliance Center
    Heroku Blog

    Heroku Blog

    Find out what's new with Heroku on our blog.

    Visit Blog
  • Log inorSign up
View categories

Categories

  • Heroku のアーキテクチャ
    • Dyno (アプリコンテナ)
      • Dyno Management
      • Dyno Concepts
      • Dyno Behavior
      • Dyno Reference
      • Dyno Troubleshooting
    • スタック (オペレーティングシステムイメージ)
    • ネットワーキングと DNS
    • プラットフォームポリシー
    • プラットフォームの原則
  • Developer Tools
    • コマンドライン
    • Heroku VS Code Extension
  • デプロイ
    • Git を使用したデプロイ
    • Docker によるデプロイ
    • デプロイ統合
  • 継続的デリバリーとインテグレーション
    • 継続的統合
  • 言語サポート
    • Node.js
      • Working with Node.js
      • Node.js Behavior in Heroku
      • Troubleshooting Node.js Apps
    • Ruby
      • Rails のサポート
      • Bundler の使用
      • Working with Ruby
      • Ruby Behavior in Heroku
      • Troubleshooting Ruby Apps
    • Python
      • Working with Python
      • Python でのバックグランドジョブ
      • Python Behavior in Heroku
      • Django の使用
    • Java
      • Java Behavior in Heroku
      • Working with Java
      • Maven の使用
      • Spring Boot の使用
      • Troubleshooting Java Apps
    • PHP
      • PHP Behavior in Heroku
      • Working with PHP
    • Go
      • Go の依存関係管理
    • Scala
    • Clojure
    • .NET
      • Working with .NET
  • データベースとデータ管理
    • Heroku Postgres
      • Postgres の基礎
      • Postgres スターターガイド
      • Postgres のパフォーマンス
      • Postgres のデータ転送と保持
      • Postgres の可用性
      • Postgres の特別なトピック
      • Migrating to Heroku Postgres
    • Heroku Data For Redis
    • Apache Kafka on Heroku
    • その他のデータストア
  • AI
    • Working with AI
    • Heroku Inference
      • Inference API
      • Quick Start Guides
      • AI Models
      • Inference Essentials
    • Vector Database
    • Model Context Protocol
  • モニタリングとメトリクス
    • ログ記録
  • アプリのパフォーマンス
  • アドオン
    • すべてのアドオン
  • 共同作業
  • セキュリティ
    • アプリのセキュリティ
    • ID と認証
      • シングルサインオン (SSO)
    • Private Space
      • インフラストラクチャネットワーキング
    • コンプライアンス
  • Heroku Enterprise
    • Enterprise Accounts
    • Enterprise Team
    • Heroku Connect (Salesforce 同期)
      • Heroku Connect の管理
      • Heroku Connect のリファレンス
      • Heroku Connect のトラブルシューティング
  • パターンとベストプラクティス
  • Heroku の拡張
    • Platform API
    • アプリの Webhook
    • Heroku Labs
    • アドオンのビルド
      • アドオン開発のタスク
      • アドオン API
      • アドオンのガイドラインと要件
    • CLI プラグインのビルド
    • 開発ビルドパック
    • Dev Center
  • アカウントと請求
  • トラブルシューティングとサポート
  • Salesforce とのインテグレーション
  • データベースとデータ管理
  • Heroku Data For Redis
  • Heroku Data for Redis バージョンのアップグレード

Heroku Data for Redis バージョンのアップグレード

日本語 — Switch to English

この記事の英語版に更新があります。ご覧の翻訳には含まれていない変更点があるかもしれません。

最終更新日 2023年09月20日(水)

Table of Contents

  • redis:upgrade を使用したアップグレード
  • フォークを使用したアップグレード

Heroku Data for Redis はデフォルトで、当該プラットフォームでサポートされている Redis の最新の安定バージョンになります。新しく作成された Heroku Data for Redis インスタンスは、常に最新バージョンを使用します (現在は 7.0)。詳細なバージョン情報は、「バージョンサポートおよびレガシーインフラストラクチャ​」を参照してください。

既存の Redis アドオンのバージョンをアップグレードする方法は 2 通りあります。

  1. heroku redis:upgrade​ コマンドを使用してインプレースでアップグレード​します。
  2. --fork​ を使用して新しい Heroku Data for Redis アドオンを作成し、プロモートします​。

インプレースアップグレードの実行はほとんどのケースに適しています。

Premium、Private、Shield の各プランでは、Heroku Data for Redis バージョン 6.0 以降に TLS 接続が必要​です。TLS をサポートするようにクライアントを設定する​必要があります。このプロセスでは、アプリを通常の動作に戻す​前にアプリケーションを更新およびデプロイする必要がある場合があります。 Mini プランでは TLS の使用はオプションですが、REDIS_TLS_URL​ 環境設定の使用を通じて推奨されています。

 

Heroku Data for Redis のバージョンの代わりにプランをアップグレードする手順については、「Heroku Data for Redis​」を参照してください。

redis:upgrade を使用したアップグレード

プランが本番プランである (mini​ を除くすべて) 場合、このコマンドは、Redis バージョンのインプレースアップグレードを実行するために実行できるメンテナンスを作成します。内部的には、このプロセスは目的のアップグレードバージョンにフォロワーを準備し、そのインスタンスをリーダーとしてプロモートする、ユーザーがトリガーするメンテナンスを作成します。

アドオンが mini​ プランである場合、mini​ プランではメンテナンスウィンドウがサポートされていない​ため、アップグレードはメンテナンスなしですぐに行われます。

新しいインスタンスをプロモートするときに、アプリケーションでフェイルオーバー自体と並行して Redis への書き込みを続行すると、データが失われる可能性があります。この影響を最小限にするために、アプリをメンテナンスモードにし、Redis アドオンに書き込むジョブまたは外部タスクをすべて一時停止します。

手順 1: アップグレードを準備する

redis:upgrade​ コマンドは、アップグレード用のアドオンを準備し、実行するメンテナンスを作成します。

$ heroku redis:upgrade redis-addon-name --version 7.0 --app example-app

▸ WARNING: Irreversible action.
▸ Redis database will be upgraded to 7.0. This cannot be undone.
▸ To proceed, type example-app or re-run this command with --confirm example-app

>example-app

Requesting upgrade of redis-addon-name to 7.0... Your Redis version is being upgraded to 7.0. The system is preparing a maintenance.  Once the maintenance is ready you can run it with heroku data:maintenances:run. See: https://devcenter.heroku.com/articles/data-maintenance-cli-commands#heroku-data-maintenances-run.

アドオンが mini​ プランである場合、heroku redis:upgrade​ によってアップグレードがすぐにトリガーされます。mini​プランで、データの損失を最小限にする必要がある場合は、このステップの前にアプリをメンテナンスモード​にしてください。

手順 2: メンテナンスが作成されるのを待機する

heroku data:maintenances:info​ コマンドを実行するためのデータメンテナンス CLI プラグイン​をインストールします。

heroku data:maintenances:info​ コマンド​を使用して、メンテナンスが作成されたことを確認できます。アップグレード元のバージョンによっては、システムでメンテナンスを準備するために最大 15 分かかることがあります。

メンテナンスが作成されると、メンテナンスのステータス ready​ が表示されます。

heroku data:maintenances:info redis-addon-name  -a example-app
Fetching maintenance... done
addon_attachments: REDIS_ADDON_URL
addon_description: premium HA
addon_kind:        heroku-redis
addon_name:        redis-addon-name
addon_plan:        premium-0
addon_window:      Tuesdays 18:30 to 22:30 UTC
app_name:          example-app
method:            failover
reason:            customer_request
required_by:       2023-03-29T17:26:56.220+00:00
scheduled_for:     2023-03-14T18:30:00.000+00:00
server_created_at: 2023-03-01T16:51:27.021+00:00
status:            ready
window:            Tuesdays 18:30 to 22:30 UTC

手順 3: 新しい更新を防止する (推奨)

メンテナンスを実行する準備ができたら、アプリをメンテナンスモード​にして、アップグレード中に新しいデータが Redis に書き込まれないようにすることで、データの損失を最小限に抑えます。スケジューラージョブが実行されている場合は、無効にします。

$ heroku maintenance:on

メンテナンスモードでは、どの dyno も自動的にスケールダウンされません。Redis にデータを書き込んでいる接続がないことを保証するために、キューイングジョブ用の Worker dyno など、Web 以外の dyno をスケールダウンしてください。

手順 4: アップグレードを実行する

準備したメンテナンスを実行して、Redis のインプレースアップグレードを実行できます。

$ heroku data:maintenances:run redis-addon-name  --app example-app
Triggering maintenance... maintenance triggered

メンテナンスの完了には数秒かかります。info コマンドでメンテナンスのステータスが completed​ と表示されたら、メンテナンスが完了したことがわかります。

heroku data:maintenances:info redis-addon-name  -a example-app
Fetching maintenance... done
addon_attachments:    REDIS_ADDON_URL
addon_description:    premium HA
addon_kind:           heroku-redis
addon_name:           redis-addon-name
addon_plan:           premium-0
addon_window:         Tuesdays 18:30 to 22:30 UTC
app_name:             example-app
completed_at:         2023-03-03T17:06:16.358+00:00
duration_approximate: ~ less than a minute
duration_seconds:     8
method:               failover
reason:               customer_request
required_by:          2023-03-31T17:02:32.773+00:00
scheduled_for:        2023-03-03T17:06:06.701+00:00
server_created_at:    2023-03-01T17:35:52.572+00:00
started_at:           2023-03-03T17:06:08.341+00:00
status:               completed
window:               Tuesdays 18:30 to 22:30 UTC

手順 5: 通常の動作を再開する

手順 1 でメンテナンスモードをオンにして dyno をダウンスケールした場合、アプリケーションをもう一度アクティブにする必要があります。

通常のアプリケーション動作を再開するには、Web dyno 以外のスケールを元のレベルに戻します次に、メンテナンスモードをオフにします。

$ heroku maintenance:off

フォークを使用したアップグレード

手順 1: 新しい更新を防止する

新しい Redis インスタンスへの完全なデータ転送を保証するために、アップグレードプロセス中はアプリに新しいデータが書き込まれないようにする必要があります。アプリをメンテナンスモード​にします。スケジューラージョブが実行されている場合は、無効にします。

$ heroku maintenance:on

メンテナンスモードでは、どの dyno も自動的にスケールダウンされません。Redis にデータを書き込んでいる接続がないことを保証するために、キューイングジョブ用の Worker dyno など、Web 以外の dyno をスケールダウンしてください。

手順 2: フォークを作成する

新しい更新を防止したら、Redis インスタンスのフォークを作成します。heroku config:get REDIS_URL​を使用して、現在の Redis インスタンスの接続情報 (rediss://:<password>@<hostname>:<port>​) を取得できます。次のコマンドは、古い Heroku Data for Redis アドオンインスタンスの URL からデータをフォークして、Heroku Data for Redis アドオンインスタンスを作成します。

$ heroku addons:create heroku-redis:premium-0 --fork rediss://:<password>@<hostname>:<port> -a example-app
Creating heroku-redis:premium-0 on ⬢ example-app... $15/month
Your add-on is being provisioned and will be available shortly
redis-spherical-37410 is being created in the background. The app will restart when complete...
Use heroku addons:info redis-spherical-37410 to check creation progress
Use heroku addons:docs heroku-redis to view documentation

このプロセスは、heroku redis:info​ を使用して実行できます。

Heroku では暗号化の使用が推奨されており、フォーク作成時の URL には redis://​ ではなく rediss://​ が使用されます。ほとんどのデータベースでは、Heroku Data for Redis インスタンスは、クリアテキストポートの 6479​ ではなくポート 6480​ で rediss://​ サービスを公開します。Mini の場合はポートが異なり、(ポートを含む) TLS 接続文字列は TLS_URL​ 環境設定で確認できます。

 

フォークコマンドでは、エビクションポリシーなどのカスタマイズされた設定はコピーされません。たとえば、heroku redis:timeout​ を使用して接続タイムアウトをカスタマイズした場合、タイムアウトはフォークにコピーされません。

手順 3: フォークをプロモートする

フォークしたインスタンスにデータが転送されたら、インスタンスをプロモートする必要があります。heroku redis:info​で、フォークした Redis インスタンスが使用可能であることを確認します。出力に含まれるこのインスタンスの名前 (例: ​redis-spherical-37410​) をメモします。次のように、この名前を使用してフォークをプロモートします。

$ heroku redis:promote redis-spherical-37410 -a example-app
Promoting redis-spherical-37410 to REDIS_URL on example-app

フォーク済みの Redis インスタンスをプロモートすると、REDIS_URL​ 環境設定が更新され、アプリケーションが再起動します。

手順 4: 通常の動作を再開する

通常のアプリケーション動作を再開するには、Web dyno 以外のスケールを元のレベルに戻します次に、メンテナンスモードをオフにします。

$ heroku maintenance:off

古い Redis アドオンは、バージョンアップグレードではアプリケーションから自動的に削除されません。不要な場合は、heroku addons:destroy​ で削除します。

関連カテゴリー

  • Heroku Data For Redis
暗号化鍵を使用した Heroku Data for Redis の暗号化 Heroku Data for Redis と Private Space

Information & Support

  • Getting Started
  • Documentation
  • Changelog
  • Compliance Center
  • Training & Education
  • Blog
  • Support Channels
  • Status

Language Reference

  • Node.js
  • Ruby
  • Java
  • PHP
  • Python
  • Go
  • Scala
  • Clojure
  • .NET

Other Resources

  • Careers
  • Elements
  • Products
  • Pricing
  • RSS
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku Blog
    • Heroku News Blog
    • Heroku Engineering Blog
  • Twitter
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku
    • Heroku Status
  • Github
  • LinkedIn
  • © 2025 Salesforce, Inc. All rights reserved. Various trademarks held by their respective owners. Salesforce Tower, 415 Mission Street, 3rd Floor, San Francisco, CA 94105, United States
  • heroku.com
  • Legal
  • Terms of Service
  • Privacy Information
  • Responsible Disclosure
  • Trust
  • Contact
  • Cookie Preferences
  • Your Privacy Choices