はじめに
クラウドサービスとSaaSが主流となった現代において、従来のGPLライセンスでは対応できない「SaaSの抜け穴」を塞ぐために生まれたAGPL v3(GNU Affero General Public License version 3)。
最も強力なコピーレフトライセンスとして知られ、ネットワーク経由でのサービス提供時にもソースコード公開を義務付ける革新的なライセンスです。
企業での採用には特に慎重な検討が必要ですが、オープンソースの理念を徹底したい場合には最適な選択肢となります。
AGPL v3ライセンスとは
AGPL v3は、Free Software Foundation(FSF)によって開発された最も強力なコピーレフト型オープンソースライセンスです。
正式には「GNU Affero General Public License version 3」と呼ばれ、2007年にGPL v3と同時にリリースされました。
GPL v3をベースとしつつ、ネットワーク経由でのサービス提供(SaaSなど)に対してもソースコード公開義務を課すという画期的な特徴を持ちます。
主な特徴
1. 最強のコピーレフト
AGPL v3は「最強のコピーレフト」と呼ばれます。従来のGPLライセンスの「配布時のソース公開義務」に加えて、ネットワーク経由でのサービス提供時にもソースコード公開義務を課します。
2. SaaSの抜け穴を封じる
- GPL v3:バイナリ配布時のみソース公開義務
- AGPL v3:ネットワーク経由でのサービス提供時もソース公開義務
- クラウドサービス、Webアプリケーション、APIサービスすべてが対象
3. GPL v3のすべての機能を継承
- 特許保護:Apache-2.0と同様の特許ライセンス付与
- DRM対策:デジタル制限管理への対抗措置
- Tivoization対策:ハードウェアでの改変制限を禁止
- 国際対応:各国の法制度に対応
4. ネットワーク対話条項(第13条)
AGPL v3の核心となる条項:
“あなたがこのプログラムの改変版をコンピュータネットワーク経由で他のユーザーと対話させる場合、対応するソースコードをネットワーク経由で提供しなければならない”
AGPL v3ライセンスの全文
AGPL v3ライセンスの全文は、GPL v3とほぼ同じ長さ(約5,800語)で、第13条「ネットワーク対話を通じたリモート利用」が追加されています。公式の全文はGNU Affero General Public License v3.0で確認できます。
主要セクションの構成:
GNU AFFERO GENERAL PUBLIC LICENSE
Version 3, 19 November 2007
TERMS AND CONDITIONS
0. Definitions.
1. Source Code.
2. Basic Permissions.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
4. Conveying Verbatim Copies.
5. Conveying Modified Source Versions.
6. Conveying Non-Source Forms.
7. Additional Terms.
8. Termination.
9. Acceptance Not Required for Having Copies.
10. Automatic Licensing of Downstream Recipients.
11. Patents.
12. No Surrender of Others' Freedom.
13. Remote Network Interaction; Use with the GNU General Public License. ← AGPL固有
14. Revised Versions of this License.
15. Disclaimer of Warranty.
16. Limitation of Liability.
17. Interpretation of Sections 15 and 16.
※日本語訳についてはこちらをご参照ください。
何ができるのか
自由な利用
- 個人利用・商用利用問わず使用可能
- 改変・カスタマイズが自由
- FSFが定義する4つの自由を保証:
- 実行の自由:あらゆる目的でプログラムを実行する権利
- 研究の自由:ソースコードを読んで仕組みを理解し学習する権利
- 改変の自由:必要に応じてプログラムを変更する権利
- 配布の自由:元版も改変版も他者と共有する権利
配布・再配布(ソースコード公開必須)
- 元のソースコードの配布
- 改変したバージョンの配布
- ネットワーク経由でのサービス提供
- ただし、すべてAGPL v3ライセンスで公開が必須
特許の無償利用
- 貢献者が持つ関連特許の自動ライセンス
- 特許訴訟からの保護機能
AGPL v3のコピーレフトの仕組み
AGPL v3の最強コピーレフトメカニズムについて詳しく説明します:
1. 強化された感染力(Enhanced Viral Effect)
AGPL v3ソフトウェアを含むプロジェクトは、ネットワーク経由でのサービス提供時も全体がAGPL v3になります:
従来の配布
- 静的リンク:アプリケーション全体がAGPL v3
- 動的リンク:密結合している場合は派生作品
- バイナリ配布:ソースコード提供義務
ネットワーク対話(第13条)
- Webアプリケーション:ユーザーがブラウザでアクセス → ソース公開義務
- APIサービス:他のシステムがAPI経由でアクセス → ソース公開義務
- クラウドサービス:ユーザーがネットワーク経由で利用 → ソース公開義務
2. ネットワーク対話の定義
第13条で定義される「ネットワーク対話」:
- コンピュータネットワーク経由でのユーザーとの対話
- リモートからプログラムの機能を利用する行為
- Webブラウザ、API、コマンドラインツールなどすべて含む
3. ソースコード提供の方法
ネットワーク対話時のソース提供:
ユーザーがAGPLソフトウェアにアクセス
↓
サービス提供者は以下を提供する義務:
- 改変版のソースコード
- インストール・実行に必要な情報
- ネットワーク経由でのアクセス方法
- 無料でのダウンロード提供
注意すべき点
1. SaaSビジネスへの根本的影響
AGPL v3ソフトウェアを使用したSaaSは、サービス提供と同時にソースコード公開が必須となります。従来のクラウドビジネスモデルが成立しない可能性があります。
2. 企業での採用が極めて困難
技術的な問題:
- 競合他社への完全な技術開示
- ビジネス優位性の消失
- 顧客データ処理ロジックの公開リスク
法的な問題:
- 複雑な遵守要件
- 国際展開時の法制度差異
- 特許・営業秘密との衝突
3. ライセンス互換性の極度の制限
互換性のあるライセンス:
- GPL v3(部分的)
- Apache-2.0(一方向の互換性)
- BSD、MIT(AGPL v3に統合可能)
互換性のないライセンス:
- GPL v2(v2 onlyの場合)
- ほぼ全てのプロプライエタリライセンス
- 多くの商用ライブラリ
4. クラウドインフラへの影響
クラウドプロバイダーの懸念:
- AWS、Azure、GCPなどでのサービス提供時の義務
- インフラ管理コードの公開リスク
- マネージドサービスでの採用回避
5. 監査・コンプライアンスの複雑さ
- ネットワーク対話の境界判定の困難さ
- 内部システムと外部サービスの線引き
- 継続的なソースコード公開の管理負荷
他のライセンスとの比較
ライセンス | ソース公開義務 | SaaS時の公開 | 特許保護 | コピーレフト | 企業採用難易度 |
---|---|---|---|---|---|
AGPL v3 | あり | あり | あり | 最強 | 極めて困難 |
GPL v3 | あり | なし | あり | 強い | 困難 |
LGPL v3 | 部分的 | なし | あり | 弱い | 普通 |
Apache-2.0 | なし | なし | あり | なし | 容易 |
MIT | なし | なし | なし | なし | 容易 |
実際の使用例
AGPL v3ライセンスを採用している主要プロジェクト:
データベース・ストレージ
- MongoDB – NoSQLデータベース(2018年10月にAGPL v3からServer Side Public License(SSPL)に変更済み)
開発ツール・プラットフォーム
注意:MongoDBは2018年にAGPL v3からより制限的なServer Side Public License(SSPL)に変更し、Grafanaは逆に2021年にApache-2.0からAGPL v3に変更しています。これらのライセンス変更は、現代のクラウド・SaaS環境における複雑な課題を示しています。
開発者として気をつけること
プロジェクトでAGPL v3ライセンスを採用する場合
1. LICENSEファイルの作成
# プロジェクトルートに配置
curl https://www.gnu.org/licenses/agpl-3.0.txt > LICENSE
2. ソースファイルへのヘッダー追加
/*
* Copyright (C) [year] [fullname]
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
3. README.mdでの明確な説明
## License
This project is licensed under the GNU Affero General Public License v3.0 - see the [LICENSE](LICENSE) file for details.
### ⚠️ Important Notice for Service Providers
If you run this software to provide a service to others over a network,
you MUST provide the source code to your users. This includes:
- Web applications
- API services
- Cloud services
- Any network-accessible service
### Freedom to use, study, share and improve
This software respects your freedom. You can:
- Use it for any purpose
- Study how it works and adapt it to your needs
- Share copies with others (source code required)
- Improve the software and share your improvements with others
- **Provide services over a network (source code disclosure required)**
All derivative works and network services must also be licensed under AGPL v3.0.
4. ソースコード提供の仕組み構築
ネットワークサービス提供時のソース公開準備:
# ソース提供の準備例
├── myservice/
│ ├── src/ # サービスのソースコード
│ ├── LICENSE # AGPL v3ライセンス
│ ├── COPYING # AGPL v3ライセンス(GNU慣例)
│ ├── README.md # ビルド・デプロイ方法
│ ├── docker/ # コンテナ設定
│ ├── docs/ # ドキュメント
│ └── source-download/ # ユーザー向けソース提供ページ
5. Web UI でのソース提供リンク
<!-- サービスのフッターなどに配置 -->
<footer>
<p>
This service uses AGPL v3.0 licensed software.
<a href="/source-code" target="_blank">Download source code</a>
</p>
</footer>
AGPL v3ライセンスのソフトウェアを利用する場合
1. 利用前の慎重な検討
企業での利用チェックリスト:
- [ ] 法務部門との相談完了
- [ ] ソースコード公開の影響評価完了
- [ ] 競合優位性への影響評価完了
- [ ] 顧客・パートナーへの影響確認完了
- [ ] 代替ソリューションの検討完了
2. ソースコード公開の準備
AGPL v3ソフトウェアを使用したサービス提供時:
// Express.js での例
app.get('/source-code', (req, res) => {
res.render('source-download', {
title: 'Source Code Download',
version: process.env.VERSION,
downloadUrl: '/downloads/source.tar.gz',
repositoryUrl: 'https://github.com/yourorg/yourservice'
});
});
// ソースコード提供API
app.get('/api/source-info', (req, res) => {
res.json({
license: 'AGPL-3.0',
version: process.env.VERSION,
sourceUrl: '/downloads/source.tar.gz',
lastModified: new Date().toISOString()
});
});
3. 内製システムでの利用判断
内製システムでの利用ガイドライン:
社内のみ利用 → 通常は公開義務なし
※ただし、子会社・関連会社も含む場合は要注意
社外提供あり → 即座に公開義務発生
- 顧客向けサービス
- パートナー向けAPI
- 外部委託先でのアクセス
4. デプロイメント時の考慮事項
# docker-compose.yml での例
version: '3.8'
services:
app:
build: .
environment:
- LICENSE_NOTICE=AGPL-3.0
- SOURCE_URL=https://github.com/yourorg/yourapp
labels:
- "traefik.http.routers.app.rule=Host(`yourapp.com`)"
- "license=AGPL-3.0"
source-server:
image: nginx
volumes:
- ./source-dist:/usr/share/nginx/html
labels:
- "traefik.http.routers.source.rule=Host(`source.yourapp.com`)"
GPL v3との主要な違い
1. ネットワーク対話条項(第13条)
- GPL v3:ネットワーク経由でのサービス提供は配布にあたらない
- AGPL v3:ネットワーク経由でのサービス提供時もソースコード公開義務
2. 適用範囲の拡大
- GPL v3:バイナリ配布時のみ
- AGPL v3:バイナリ配布 + ネットワークサービス提供時
3. SaaSビジネスへの影響
- GPL v3:SaaSで使用しても公開義務なし(SaaSの抜け穴)
- AGPL v3:SaaSで使用すると即座に公開義務発生
4. 企業での採用難易度
- GPL v3:困難だが検討可能
- AGPL v3:極めて困難、多くの企業で採用不可
5. GPL v3との互換性
特殊な互換性関係:
- AGPL v3 → GPL v3:不可
- GPL v3 → AGPL v3:可能(コードをAGPL v3でリライセンス)
ビジネスモデルへの影響
AGPL v3に適したビジネスモデル
1. オープンコアモデル(制限付き)
- コア機能:AGPL v3で公開
- 商用機能:別ライセンス(プロプライエタリ)で提供
- 課題:コア機能のSaaS提供時もソース公開必須
2. デュアルライセンス
- コミュニティ版:AGPL v3
- 商用版:プロプライエタリライセンス
- SaaS提供時は商用ライセンス購入が実質必須
3. オンプレミス・セルフホスト前提モデル
- ソフトウェアは顧客環境にインストール
- サポート・カスタマイズ・トレーニングで収益
- ネットワーク対話が発生しないため公開義務なし
4. コンサルティング・インテグレーションモデル
- ソフトウェア自体は無料提供
- 導入支援・カスタマイズ・運用支援で収益
- 顧客環境での動作のため公開義務回避
AGPL v3に適さないビジネスモデル
1. 従来的なSaaSモデル
- クラウドサービスとして提供不可
- 競合他社への完全な技術開示
- ビジネス優位性の消失
2. プラットフォームビジネス
- APIプラットフォーム提供不可
- マーケットプレイス運営困難
- 技術的差別化要因の消失
3. エンタープライズSaaS
- 大企業向けクラウドサービス提供不可
- セキュリティ・コンプライアンス要件との衝突
- カスタマイゼーション情報の公開リスク
4. マルチテナントサービス
- 顧客固有のカスタマイゼーション公開リスク
- データ処理ロジックの開示
- 競合優位性の完全な消失
企業での対応策
1. AGPL回避戦略
技術的回避:
- AGPL v3ライブラリの置き換え
- 機能的に同等な代替ライブラリの採用
- 内製化による回避
アーキテクチャ分離:
- AGPLコンポーネントを独立したプロセスに分離
- APIを通じた疎結合な連携
- マイクロサービス化による影響範囲の限定
2. ライセンス監査の強化
# 依存関係のライセンス確認ツール例
npm install -g license-checker
license-checker --onlyAllow 'MIT;BSD;Apache-2.0;ISC' --failOn 'AGPL-3.0'
# Python環境での確認
pip install pip-licenses
pip-licenses --format=table --with-license-file
3. 開発者教育の徹底
- AGPL v3ライセンスの影響範囲の理解
- ライブラリ選定時のライセンス確認の徹底
- 代替ライブラリの選択肢の教育
4. 法務・知的財産部門との連携
- AGPL v3ソフトウェア利用の事前承認制
- ライセンス違反時の対応プロセス策定
- 定期的なライセンス監査の実施
まとめ
AGPL v3ライセンスは、現代のクラウド・SaaS時代において最も強力なコピーレフトライセンスです。従来のGPLでは対応できなかった「SaaSの抜け穴」を塞ぎ、ネットワーク経由でのサービス提供時にもソースコード公開を義務付けます。
AGPL v3を選ぶべき場合:
- オープンソースの理念を徹底したいプロジェクト
- SaaS化による商用利用を防ぎたい場合
- コミュニティ主導の開発を強力に推進したい場合
- 競合他社によるクラウドサービス化を阻止したい場合
AGPL v3を避けるべき場合:
- SaaSビジネスモデルを予定している場合
- 企業での商用利用が想定される場合
- クラウドプラットフォームでの提供を予定している場合
- 技術的優位性がビジネスの核心である場合
AGPL v3は「最強のコピーレフト」である反面、商用利用における制約も最大級です。ライセンス選択は単なる技術的判断ではなく、ビジネス戦略や哲学的価値観を含む極めて重要な決定です。AGPL v3の理念と制約を十分に理解し、プロジェクトの目標と照らし合わせて慎重に判断しましょう。
用語解説
※1 SaaSの抜け穴:従来のGPLライセンスでは、ソフトウェアをネットワーク経由でサービスとして提供する場合に配布とみなされず、ソースコード公開義務が発生しない問題。
※2 ネットワーク対話:コンピュータネットワークを通じてユーザーがソフトウェアの機能を利用する行為。Webアプリケーション、API、クラウドサービスなどが含まれる。
※3 Server Side Public License(SSPL):MongoDB社が開発したライセンス。AGPLよりもさらに制限的で、クラウドプロバイダーによる商用サービス提供を明確に禁止する。
※4 Tivoization:ハードウェアでソフトウェアの改変を技術的に制限すること。TiVo社のデジタル録画機に由来。
この記事は一般的な情報提供を目的としており、法的アドバイスではありません。AGPL v3ライセンスの適用については、必ず専門家にご相談ください。