Javaは、1995年にUNIXベンダーとして有名でだったサン・マイクロシステムズによって公開されたプログラミング言語です。
JVMというJavaの仮想マシン上で動くのが特徴で、「一度(プログラムを)書けば、どこでも実行できる」をコンセプトとしたプログラム言語として、発表当時は世界に大きなインパクトを与えました。
Oracle JDKは有償?
2018年9月26日にJava開発者にとって大きな話題となるニュースが流れました。それは、これまでは無償で使えた Oracle JDKが、使用にあたって有償の契約を結ぶ必要があるということです。
このライセンス契約を結ぶことで、長期LTSのサポートを受けられるようになり、セキュリティ問題や不具合の更新パッチを受けられます。
このような方針になっても、Oracle JDK自体のダウンロードは可能であるため、利用することは可能ですが、無料で利用できるのは非商用と開発用途のみに限定されているため、ライセンス契約を結ばずに商用の本番環境に乗せることは禁止事項になっているため注意が必要です。
このようなことから、Javaはこれから有償になるのでは?と話題になりました。
具体的に Oracle JDK に適用されるライセンスは「Oracle Technology Networkライセンス契約」となります。このライセンスは Oracle JDK に限らず Oracleデータベースなどのさまざまな製品に適用されるライセンスで、Oracle 社の製品を使用する場合は、必ず目を通しておいたほうが良いでしょう。
ライセンスの全文は、以下のリンクに記載されていますので詳細はこちらでご確認ください。
「ライセンスの権利及び制限」の所を抜粋すると、次のように書かれており、商用目的では利用出来ないことが明記されています。
オラクルはお客様に、本契約に明示する制限に従って、お客様のアプリケーションの開発、テスト、プロトタイプ作成、及びデモンストレーションのみを目的として(かつ、お客様のアプリケーションが、データ処理、業務、商用又は本番利用を目的として使用されたことがない場合に限られます)、その他のいかなる目的でもなく、本プログラムを内部的に使用するための、非独占的、譲渡不能の限定的なライセンスを許諾します。
Java SE の8無償サポートの終了
2019年 1月、Java SE 8(Java Platform, Standard Edition8)」の無償アップデート・リリースは終了しました。これまでアップデート・リリースを受けたい場合はオラクルから有償サポートを契約する必要があります。
Java SE 8は、ラムダ式などの新しいAPIが多く導入され、古いJavaバージョンのサポート終了タイミングなどが重なり、多くのシステムが移行したバージョンで、その後のバージョンアップが進まず、さらにサポート契約も結ぶこともなく、サポート切れのまま使っているシステムが多くあります。
では、OracleのJava SE 8の有償サポートはいくらするのでしょうか?
Java Standard Editionのサポート価格
Java Standard Editionのサポート及び価格については、こちらのサイトに掲載されています。
ユーザ課金の場合 $2.5 / 月
CPU課金の場合 1CPU =$25 / 月
※ 契約量に応じた割引制度もあり
ユーザー課金は、利用するユーザー1人辺りの価格です。Javaを利用するユーザーが複数いれな、その人数分の課金が必要です。
CPU課金は、CPUコア辺りの金額で、ユーザー数が、不特定多数となる主にサーバー用途でJavaを利用する場合には、CPU課金でサポート契約を結びます。
昨今のサーバーはマルチコアが当たり前でああり、特にサーバー用途の機器ともなれば、CPUの数は4コア以上になることが多いため、CPU課金では少なくとも毎月 $100以上のコストが必要となります。
サポートなしで使うことはリスク
これまで、無償でセキュリティアップデートなどを受けられたのに、上のサポート料金を見ると、高いと思う方もいるでしょう。
サポート契約を結ばずに使い続ける場合、セキュリティホールが見つかっても、パッチが提供されないため、システムの重大な脅威になる可能性があり、セキュリティホールを利用して攻撃された場合、企業の信頼を大きく損なう結果となり、結果的にサポート契約を結ぶよりもはるかに多い損害を生むリスクがあります。
無料で使い続けるには
サポートなしで使い続けるのはリスクですが、Oracleのサポート契約は、システムの規模によっては、その費用は多額になる恐れもあります。
無料で使い続けるための回避策として、Oracle社が主導するコミュニティ版の Open JDKを使う方法があります。
コミュニティが提供する OpenJDKディストリビューションは、長期サポートを提供しておらず、半年ごとにメジャーバージョンアップが行われ、新しいバージョンがリリースされると、前のバージョンはサポート対象外となります。
それ以外にも、RedHatなどが提供するOpenJDKディストリビューションなどもありますが、どれもこれまで通りとは行かず、多少の費用や対策を講じる必要があります。
救世主は Microsoftか?
2021年4月、マイクロソフトは独自のOpenJDKディストリビューションとなる「Microsoft Build of OpenJDK」のプレビューリリースを発表しました。
「Microsoft Build of OpenJDK」は無償で提供され、3年ごとに登場するLTS版のJavaに対応するため長期サポート(LTS)対応のOpenJDKディストリビューションです。
まだプレビュー版ではありますが、3年間はそのLTS版のバージョンに対し、セキュリティパッチやバグ修正版のアップデートが無償で提供されます。
コミュニティが提供する OpenJDKディストリビューションは、半年ごとにサポートが切れるため、企業で使うようなシステムでは、それほど頻繁に更新を行うことが難しく、システム部門の担当者は頭を抱えていました。
しかし「Microsoft Build of OpenJDK」の登場により、少なくとも3年間は Java のバージョンを固定化でき、無償で大手ベンダが提供する長期サポート版を使用できるという安心感を得られる可能性が出てきました。
まとめ
Javaのサポートについて解説してきました。
サポートが切れないようにJavaを使い続けるのは危険であるため、Open JDKを常に最新バージョンに更新しながら使い続けるか、Oracle社とサポート契約を結ぶか、もしくは、Java のサポートがついたクラウド上でアプリケーションを実行するなどして、セキュリティリスクを回避しましょう。
【関連記事】
▶Javaが有償?Javaのバージョンとライセンスを確認しよう
サポートが切れたからと言っても、Javaが動かにくなるわけではなく、そのまま無償で使い続けること自体はできます。
実際、Java SE 8は多くのプラットフォームで問題なく動作することから、システムに不具合はなく問題なく使えているので、有償サポートを受けるまでもないと思っているシステム部門や経営層が少なくありません。