Redisのライセンスとは?種類とビジネス利用の注意点
Redisは、インメモリデータストアとして、その高速性と柔軟性から広く利用されています。しかし、そのライセンスは複数存在し、ビジネス利用においては注意が必要です。本記事では、Redisのライセンスの種類、それぞれの特徴、そしてビジネス利用における注意点について詳細に解説します。
1. Redisとは何か? その魅力と用途
Redis (Remote Dictionary Server) は、キーバリューストア型のインメモリデータストアであり、オプションでディスクへの永続化も可能です。他のデータベースと比較して、その高速性と多様なデータ構造のサポートが特徴です。
1.1. Redisの主な特徴
- インメモリ処理: データをメモリ上に展開するため、非常に高速な読み書きが可能です。
- 多様なデータ構造: キーバリューストアとして単純な文字列だけでなく、リスト、セット、ハッシュ、ソート済みセット、ビットマップ、ハイパーログログ、ジオスペーシャルインデックスなど、様々なデータ構造をサポートしています。
- 永続化: メモリ上のデータを定期的にディスクに書き出すことで、障害発生時のデータ損失を軽減できます。RDB (Redis Database) と AOF (Append Only File) の2種類の永続化方式があります。
- 高可用性: Redis SentinelやRedis Clusterを利用することで、システムの可用性を高めることができます。
- Luaスクリプト: Luaスクリプトを実行することで、複雑な処理をサーバーサイドで実行できます。
- Pub/Sub: パブリッシュ/サブスクライブモデルをサポートしており、リアルタイムなメッセージングシステムを構築できます。
1.2. Redisの主な用途
Redisはその特徴から、以下のような用途で広く利用されています。
- キャッシュ: データベースの負荷を軽減するために、頻繁にアクセスされるデータをキャッシュとして保存します。
- セッション管理: Webアプリケーションのセッションデータを保存します。
- リアルタイム分析: ストリームデータをリアルタイムに処理し、分析結果を保存します。
- メッセージキュー: 非同期処理のために、メッセージをキューとして保存します。
- ランキング: ユーザーのスコアなどをソート済みセットに保存し、リアルタイムなランキングを表示します。
- 地理空間インデックス: 地理的な位置情報を保存し、特定の場所からの距離に基づいて検索を行います。
2. Redisのライセンスの歴史と現状
Redisのライセンスは、開発の歴史と共に変化してきました。初期の頃はBSDライセンスでしたが、その後、変更を経て現在は2種類のライセンスが存在します。
2.1. 初期のBSDライセンス (3条項BSDライセンス)
Redisの初期のバージョンは、3条項BSDライセンスのもとで公開されていました。BSDライセンスは、非常に寛容なライセンスであり、商用利用、変更、配布を自由に行うことができます。ただし、再配布時には著作権表示と免責条項を含める必要があります。
2.2. Redis Source Available License v2.0 (RSALv2)
2020年、Redis Labs (現Redis Inc.) は、RedisのライセンスをRedis Source Available License v2.0 (RSALv2) に変更しました。RSALv2は、商用利用を制限する条項を含むSource Availableライセンスです。具体的には、Redisをデータベース、キャッシュエンジン、ストリームエンジン、メッセージキューとして提供する商用製品やサービスを構築することを禁じています。
2.3. Server Side Public License v1 (SSPLv1)
同時に、Redis LabsはRedisをServer Side Public License v1 (SSPLv1) の下でも公開しました。SSPLv1は、AGPL (Affero General Public License) をベースにしたライセンスであり、ネットワーク経由でサービスを提供する場合には、そのサービスのソースコード全体を公開することを義務付けています。
2.4. ライセンス変更の背景
Redis Labsがライセンスを変更した背景には、クラウドプロバイダーがRedisをマネージドサービスとして提供し、収益を上げているにも関わらず、Redisの開発に貢献していないという問題がありました。ライセンス変更は、Redis LabsがRedisの開発を継続するための資金を確保し、コミュニティへの貢献を促進することを目的としています。
2.5. 現在のRedisのライセンス
現在、Redisは以下の2種類のライセンスで提供されています。
- Redis Source Available License v2.0 (RSALv2): 商用利用を制限するSource Availableライセンス。
- Server Side Public License v1 (SSPLv1): ネットワーク経由でサービスを提供する場合には、ソースコードの公開を義務付けるライセンス。
2.6. コミュニティ版Redis (Redis Open Source)
ライセンス変更後も、コミュニティによって開発されているRedis Open Sourceが存在します。Redis Open Sourceは、BSDライセンスのまま開発が継続されており、商用利用の制限はありません。ただし、Redis Open SourceはRedis Inc.が提供するRedis Enterpriseと比較して、機能やサポートが限定される場合があります。
3. 各ライセンスの詳細な解説
ここでは、RedisのライセンスであるRSALv2とSSPLv1、そしてRedis Open Sourceが利用するBSDライセンスについて、それぞれ詳細に解説します。
3.1. Redis Source Available License v2.0 (RSALv2)
RSALv2は、Redis Inc.が開発したライセンスであり、以下の条項が含まれています。
- 使用許諾: Redisの利用、複製、変更、配布を許可します。
- 制限事項: Redisをデータベース、キャッシュエンジン、ストリームエンジン、メッセージキューとして提供する商用製品やサービスを構築することを禁じます。
- 著作権表示: Redisの著作権表示を保持する必要があります。
- 免責条項: Redisの使用によって生じた損害について、Redis Inc.は責任を負いません。
RSALv2の最大のポイントは、商用利用の制限です。例えば、Redisを組み込んだアプリケーションを開発し、そのアプリケーションを有償で販売することは問題ありません。しかし、Redisをマネージドサービスとして提供し、そのサービスを有償で提供することは禁止されています。
RSALv2の具体的な例:
- 許可される利用:
- Redisをアプリケーションの内部的なキャッシュとして利用する。
- RedisをWebアプリケーションのセッションストアとして利用する。
- Redisをランキングシステムのデータストアとして利用する。
- Redisを組み込んだアプリケーションを有償で販売する。
- 許可されない利用:
- RedisをマネージドRedisサービスとして提供する。
- Redisをデータベースサービスの一部として提供する。
- Redisをキャッシュエンジンサービスとして提供する。
- Redisをメッセージキューサービスとして提供する。
3.2. Server Side Public License v1 (SSPLv1)
SSPLv1は、AGPLをベースにしたライセンスであり、以下の条項が含まれています。
- 使用許諾: Redisの利用、複製、変更、配布を許可します。
- ソースコードの公開: Redisをネットワーク経由でサービスとして提供する場合、そのサービスのソースコード全体を公開する必要があります。
- 著作権表示: Redisの著作権表示を保持する必要があります。
- 免責条項: Redisの使用によって生じた損害について、Redis Inc.は責任を負いません。
SSPLv1の最大のポイントは、ネットワーク経由でサービスを提供する場合には、ソースコード全体を公開する必要があるという点です。これは、Redisをマネージドサービスとして提供する場合だけでなく、Redisを利用するWebアプリケーションを公開する場合にも適用される可能性があります。
SSPLv1の具体的な例:
- ソースコードの公開が必要な場合:
- Redisをバックエンドに利用するWebアプリケーションを公開し、ユーザーが利用できるようにする。
- RedisをマネージドRedisサービスとして提供する。
- ソースコードの公開が不要な場合:
- Redisを個人の開発環境で使用する。
- Redisを社内システムで使用する。
- Redisを組み込んだアプリケーションをオフラインで配布する。
3.3. BSDライセンス (3条項BSDライセンス)
Redis Open Sourceは、BSDライセンス (3条項BSDライセンス) のもとで公開されています。BSDライセンスは、非常に寛容なライセンスであり、以下の条項が含まれています。
- 使用許諾: Redisの利用、複製、変更、配布を許可します。
- 著作権表示: Redisの著作権表示を保持する必要があります。
- 免責条項: Redisの使用によって生じた損害について、開発者は責任を負いません。
BSDライセンスは、商用利用、変更、配布を自由に行うことができます。そのため、Redis Open Sourceは、商用利用を目的とする場合にも、安心して利用することができます。
4. ビジネス利用における注意点
Redisをビジネス利用する際には、ライセンスを十分に理解し、適切なライセンスを選択する必要があります。ここでは、ビジネス利用における注意点を解説します。
4.1. 商用利用の範囲を明確にする
まず、Redisをどのような目的で使用するのか、商用利用の範囲を明確にする必要があります。
- Redisをアプリケーションの内部的なコンポーネントとして利用する場合: RSALv2またはBSDライセンスのRedis Open Sourceを利用できます。
- Redisをマネージドサービスとして提供する場合: SSPLv1のRedisを利用し、ソースコードを公開するか、Redis Inc.から商用ライセンスを取得する必要があります。
- Redisをデータベース、キャッシュエンジン、ストリームエンジン、メッセージキューとして提供する商用製品やサービスを構築する場合: RSALv2のRedisは利用できません。SSPLv1のRedisを利用し、ソースコードを公開するか、Redis Inc.から商用ライセンスを取得する必要があります。
4.2. ライセンス違反のリスクを回避する
ライセンス違反は、法的な問題に発展する可能性があります。そのため、Redisのライセンスを十分に理解し、違反のリスクを回避する必要があります。
- RSALv2の制限事項を遵守する: Redisをデータベース、キャッシュエンジン、ストリームエンジン、メッセージキューとして提供する商用製品やサービスを構築しないように注意する必要があります。
- SSPLv1のソースコード公開義務を遵守する: Redisをネットワーク経由でサービスとして提供する場合には、ソースコード全体を公開する必要があります。
- 不安な場合は専門家に相談する: ライセンスについて不明な点がある場合は、弁護士などの専門家に相談することをおすすめします。
4.3. Redis Open Sourceの利用を検討する
商用利用に制限がないRedis Open Sourceの利用を検討することも可能です。ただし、Redis Open SourceはRedis Inc.が提供するRedis Enterpriseと比較して、機能やサポートが限定される場合があります。
4.4. Redis Inc.の商用ライセンスを検討する
商用利用の制限を回避したい場合や、Redis Enterpriseの機能を利用したい場合には、Redis Inc.から商用ライセンスを取得することを検討してください。商用ライセンスを取得することで、Redisの商用利用に関する制限が緩和され、Redis Enterpriseのサポートを受けることができます。
5. Redisの選択肢: Redis Open Source vs. Redis Enterprise
Redisを利用する上で、Redis Open SourceとRedis Enterpriseという2つの選択肢があります。それぞれの特徴を比較し、自社のニーズに合った選択肢を選択することが重要です。
5.1. Redis Open Source
- ライセンス: BSDライセンス
- 料金: 無料
- 機能: 基本的なRedisの機能
- サポート: コミュニティによるサポート
- メリット:
- 商用利用の制限がない
- 無料で利用できる
- デメリット:
- Redis Enterpriseと比較して機能が限定される
- コミュニティによるサポートのみ
5.2. Redis Enterprise
- ライセンス: 商用ライセンス (Redis Inc.から購入)
- 料金: 有料
- 機能: Redis Open Sourceの機能に加えて、エンタープライズ向けの高度な機能 (Active-Active Geo-Distribution, Redis Modulesなど)
- サポート: Redis Inc.による商用サポート
- メリット:
- エンタープライズ向けの高度な機能が利用できる
- Redis Inc.による商用サポートを受けられる
- 商用利用に関する制限が緩和される
- デメリット:
- 有料である
5.3. どちらを選ぶべきか?
どちらを選択すべきかは、以下の要素を考慮して判断する必要があります。
- 予算: 無料で利用したい場合はRedis Open Source、予算に余裕がある場合はRedis Enterprise。
- 必要な機能: 基本的な機能で十分な場合はRedis Open Source、エンタープライズ向けの高度な機能が必要な場合はRedis Enterprise。
- サポート: コミュニティによるサポートで十分な場合はRedis Open Source、商用サポートが必要な場合はRedis Enterprise。
- 商用利用の範囲: 商用利用の制限を回避したい場合はRedis Open Source、商用ライセンスを取得すればRedis Enterpriseも利用可能。
6. まとめ: Redisのライセンスを理解し、適切な利用を
Redisは、その高速性と柔軟性から、多くの企業で利用されています。しかし、そのライセンスは複雑であり、ビジネス利用においては注意が必要です。
- Redisには、RSALv2, SSPLv1, BSDライセンスの3種類のライセンスが存在します。
- RSALv2は商用利用を制限するSource Availableライセンスです。
- SSPLv1はネットワーク経由でサービスを提供する場合には、ソースコードの公開を義務付けるライセンスです。
- BSDライセンスは、商用利用、変更、配布を自由に行うことができる寛容なライセンスです。
- Redisをビジネス利用する際には、ライセンスを十分に理解し、適切なライセンスを選択する必要があります。
- Redis Open SourceとRedis Enterpriseという2つの選択肢があり、自社のニーズに合った選択肢を選択することが重要です。
本記事が、Redisのライセンスに関する理解を深め、適切な利用を促進する一助となれば幸いです。