In this article
Apache License 2.0を解説
Apache License 2.0とは?
Apacheソフトウェアライセンスでは、プロプライエタリソフトウェアの一部としてコードを使用する場合を含め、ほぼあらゆる目的でコードを再利用できます。他のオープンソースライセンスと同様に、Apacheライセンスは、エンドユーザーが自分のプロジェクトでソフトウェアをどのように利用できるかを定めています。広く使われているオープンソースライセンスであり、他の寛容なライセンスと同様、プロプライエタリプロジェクトでのオープンソースソフトウェアの利用を促すことから、人気が高まり続けています。
Apache Licenseの許可事項と制限事項(利用規約)
Apache Licenseでは、ユーザーは元のオープンソースコードを変更、配布、サブライセンスできます。また、商用利用、保証、特許に関する申し立ても認められています。このライセンスの利用規約はコード自体に制限を設けていませんが、エンドユーザーは、いかなる理由であってもオープンソースの貢献者に責任を問うことはできません。
Apache Licenseを使用する際、開発者は元の著作権表示とライセンス本文のコピーを含める必要があります。また場合によっては、帰属表示や元のコードに加えた重要な変更の開示を記載したNOTICEファイルのコピーも必要です。コードに加えた大幅な変更を開示することは、Apache Licenseと、他の寛容型オープンソースソフトウェアライセンスにおける制限との大きな違いです。
Apache License 2.0の歴史
1995年、Apache Software Foundation(ASF、旧称Apache Group)から、最初のApache Licenseがオープンソースソフトウェアライセンスとして公開されました。Apache Software Foundation(ASF)は、あらゆる種類のアプリケーションでオープンソースコンポーネントの利用を促進するために、このライセンスを作成しました。
現在、オープンソースソフトウェアのコンポーネントでApache Licenseの最初のバージョンが使われることはほとんどありません。2004年にASFがApache Licenseバージョン2.0を作成し、BSDライセンスモデルから移行したためです。この新しいバージョンでは、ライセンス本文に含まれる一部の概念が明確化され、ユーザーに特許権が付与されたほか、Apacheへの帰属表示に関する広告条項が削除されました。その結果、エンドユーザーはオープンソースコードをより自由に商用利用できるようになりました。
Apache 2.0はどの種類のライセンスですか?
Apache 2.0は寛容型ライセンスであり、コードの利用に関する制限がほとんどありません。これは、ユーザーに同じソフトウェアライセンスでコードを配布することを求めるコピーレフトライセンスとは異なります。Apache Licenseでは、再配布するコードにApacheが求める適切なドキュメントが含まれていれば、エンドユーザーは元のコードの一部を任意のライセンスの下で変更できます。ぜひ、知っておきたいソフトウェアライセンスの種類に関するガイドもご覧ください。
Apache Licenseはどのような場合に使うべきですか?
オープンソース開発者がApache Licenseを選ぶと、プロジェクトをすばやく市場に投入し、商用アプリケーションでオープンソースコンポーネントを使いたい大手ソフトウェア企業に届けることができます。このライセンスでは、企業にコード変更の開示を求めず、特許権も付与されるため、企業が利用を検討する可能性のあるオープンソースソフトウェアの配布に適しています。また、Apacheという名称自体が、何十年にもわたって業界で存在感を示してきた財団の信頼性を背景に、利用を検討しているユーザーに安心感を与えます。
Apache License 2.0とMITライセンスの比較
Apache LicenseとMITライセンスはおおむね似ていますが、重要な違いがいくつかあります。まず、Apache 2.0のライセンス本文はMITライセンスよりも詳細で、法律用語も多く含まれています。MITライセンスは、開発者がソフトウェアを配布する際に使える、最もシンプルで分かりやすいオープンソースライセンスを目指しています。
もう1つの大きな違いは、Apache Licenseでは、開発者が元のソースコードに加えた大幅な変更を開示する必要があることです。変更後のソースコード自体を公開する必要はありませんが、変更した旨の通知は必要です。ただし、変更していないコードにはApache Licenseを引き続き適用する必要があります。
MITライセンスとは異なり、Apache Licenseの下で変更されたオープンソースソフトウェアは、エンドユーザーが特許を取得することも認められています。変更したバージョンがApacheの承認を受けていると示唆しない限り、特許権は全世界で有効で、永続的かつ取消不能、非独占的です。Apache Licenseの文面では特許権の明示的な付与が明確に示されていますが、MITライセンスでは特許権の扱いがより曖昧です。
Apache LicenseとAGPLの比較
GNU Affero General Public License(AGPL)は、Free Software Foundation(FSF)が作成したGPLv3の派生ライセンスで、これを使用するすべてのソフトウェアに完全なコピーレフトの適用を求めます。これは、ApacheやMITのような寛容型ライセンスとは正反対のアプローチです。これらのライセンスは、プロプライエタリな用途を含め、あらゆる目的でオープンソースソフトウェアを変更・再配布することを促進します。
AGPLと他のコピーレフトライセンスとの大きな違いは、開発者がソフトウェアを明示的に配布していない場合(たとえばバックエンドサーバーにのみデプロイしている場合)にもAGPLの使用を求めることで、抜け穴をふさいでいる点です。そのため、AGPLは利用可能なオープンソースライセンスの中でも特に制限が厳しいものの1つです。

Snykでオープンソースライセンスを管理
現在、ほとんどの開発チームがオープンソースソフトウェア(OSS)を使用しているため、OSSのライセンスやポリシーを適切に追跡することが重要です。たとえば、ライセンスの下で配布されるオープンソースコンポーネントを利用するソフトウェアプロジェクトでは、Apache Licenseに必要なドキュメントを含める必要があります。何百ものオープンソース依存関係を使う数十ものソフトウェアプロジェクト全体で、これらを管理するのは容易ではありません。
Snyk Open Sourceを使うと、使用中のライセンスの種類を問わず、開発チームはプロジェクト全体のオープンソースライセンスを把握できます。ポリシー適用の自動化ときめ細かな管理により、オープンソースライセンス違反のリスクを低減できます。

Snykでは、ライセンスの有効期限や更新要件も可視化できます。大規模な組織では、これらの管理が複雑になりがちです。ライセンスを効率よく管理することで、開発者はオープンソースポリシーに準拠しながら、迅速にソフトウェアを開発できます。