はじめに
はじめまして、u-tanickです。今のところSIerの中の人として地味に働いてます。
で、Java 11がとうとうリリースされましたね!
2017年の9月のJava 9リリース前後から、Javaのリリースサイクルが早くなったり、Java EEがオープンコミュニティに譲渡されたりと、いろいろドタバタし続けていましたが、ひとまず区切りのJava 11が出たということで、自分が見聞きした情報を元に、Java 11以降のJDKの長期商用サポート(有償) についてまとめておきたいと思います。(自分向けの備忘録にもなると思って書いてみたら長い。。。)
あと、Javaを極力無償で使いたい人向けの情報として、下の方に JDKの無償サポートについて として簡単にその観点でのまとめも書いておきました。
極力公式情報など出自のはっきりしたを情報を元にしてはいますが、間違いとかあったらご指摘ください。
JDKの長期商用サポートの提供ベンダー
本投稿では、JDKの長期商用サポート(以下LTS:Long Term Support)の提供元として主な選択肢になると思われる次の4社についてまとめていきます。
- Oracle
- IBM
- RedHat
- Azul Systems
各社が提供するLTSについて、下記の観点で簡単にまとめます。
- サポート対象
- サポート期間
- 費用
LTSの比較(サマリ版)
こまごまと説明する前に、ひとまず表形式でJDKの長期サポートの全体感をざっくり整理します。ここはサマリなので、各サポート対象となるJDKやサポート内容の詳細について本編(次節以降)とか、そこの参考URLの先などをお読みください。
ベンダー | サポート対象JDK | サポート期間 | 費用 ※1 |
---|---|---|---|
Oracle | Oracle JDK | 5+3年 | 3,000円/プロセッサー |
IBM | IBM SDK or Java Technology | ミドルウェア製品に依存 ※2 | 製品のサポート料金に含まれる |
IBM | AdoptOpenJDK with Eclipse OpenJ9 | 5年 | 54,800円/プロセッサー |
RedHat | OpenJDK ※3 | Oracleに準ずる ※4 | RHELのサポート料金に含まれる |
AzulSystems | Zulu Enterprise | 8+2年 | $13,200/25システム |
- ※1 この表では、一番基準となる金額のみ記載しています。プロセッサー数などによって金額が変わる場合があります。
- ※2 IBMの製品購入が前提と考えられている模様。Docker Hubからのみ単独入手も可能です。サポート期間などはベンダーに要確認。
- ※3 RedHat Enterprise Linuxの利用が前提となります。
- ※4 Oracleのサポート期間外でも、RedHatから独自にセキュリティパッチが提供される可能性があるとのことです。ベンダーに要確認。
各ベンダーがサポートするJDKの説明については、これより下をお読みください。
Oracle
サポート対象
Oracleは、次のJDKに対してLTSを提供します。
- Oracle JDK
Oracle JDK とは、Open JDKの特定のバージョンをOracleがビルドして提供するJDKです。機能レベルでOpenJDKとの互換性があります。Oracle製のミドルウェア(WebLogic, OracleDB)を利用する場合は、このJDKの利用が前提となります。
Java 11以降、Oracle JDKは3年ごとのリリースとなります。Java自体は6か月ごとのリリースとなるため、Java 11の次のOracle JDKは、Java 17と番号が飛びます。
Oracle JDK は、本番用とは有償ですが、開発・テスト・検証・デモの用途は無償で利用が可能です。
サポート期間
Oracle JDK のLTSは、下記2種類のサポート期間の合計となる8年間となります。(※)
- Premier Support 5年
- Extended Support 3年
時系列で表現した図としては、参考URL:Java SE の新しいリリースモデル:p.17 をご参照ください。
参考URLは、ベンダー毎のまとめ単位で記載しています。
※ Oracleの有償サポートには、Sustaining Supportという無期限のサポートもありますが、現実的には期限の決められている上記サポートの期間内にバージョンアップ対応をすることが多いのではと考えたため、ここではあえて外しました。
費用
Oracle JDK のサポート費用は、Java SE Subscription (2018年6月策定)に従います。Java SE Subscription は、サーバーサイドでの利用と、クライアントサイドでの利用で料金テーブルが分かれています。多くのWebシステムやバッチシステムでは、サーバーサイドでの利用の料金テーブルを意識することになると思いますので、ここではサーバーサイドの表のみを記載します。
サーバーサイドでの利用
<料金表>
数 | 単位 | 月額 |
---|---|---|
1-99 | プロセッサー | 3,000円 |
100-249 | プロセッサー | 2,850円 |
250-490 | プロセッサー | 2,700円 |
500-999 | プロセッサー | 2,400円 |
1,000-2,999 | プロセッサー | 2,100円 |
3,000-9,999 | プロセッサー | 1,800円 |
10,000-19,999 | プロセッサー | 1,500円 |
20,000+ | 個別問合せ | 個別問合せ |
参考URL:Java有償保守サービス Java SE Subscription(NTTデータ先端技術株式会社)より
参考URL
-
Java SE の新しいリリースモデル
-
Oracle Java SE サポート・ロードマップ
-
Java有償保守サービス Java SE Subscription(NTTデータ先端技術株式会社)
IBM
サポート対象
IBMは、次の2種類のJDKに対してLTSを提供します。
-
IBM SDK or Java Technology
- AdoptOpenJDK with Eclipse OpenJ9
IBM SDK or Java Technology とは、IBMの製品(WebSphere, DB2)に含めて提供されるIBM謹製のJDKです。開発用途は無償で利用可能のようです。
AdoptOpenJDK with Eclipse OpenJ9 とは、AdoptOpenJDKというオープンソースプロジェクトから提供されるJDKです。これは、OpenJDKのJVMを、IBMが開発してきた技術であるEclipse OpenJ9(現在はこれもオープンソース化された)に差し替えてビルドされたJDKになります。
IBMは、上記2種類のJDKについて、Oracle JDKと同じバージョン(Java 11, Java 17, ...)に対してLTSを提供する方針のようです。
これらのJDKは、サーバーサイドでの利用のみが想定されているため、それ以外の用途(クライアントサイド、組み込み)においては、サポート外となるようです。
ちなみに、AdoptOpenJDK with HotSpotという、JVMをOpenJDKの本来仕様のままビルドしたJDKも提供されていますが、そちらについては、IBMのLTSは提供されません。
サポート期間
IBMが提供するLTSの期間は、JDKにより異なります。
IBM SDK or Java Technology
IBMの製品(WebSphere, DB2)とセットで利用することがほぼと考えらることから、8年以上のサポートが提供される見込みです。
AdoptOpenJDK with OpenJ9
IBM Support for Runtimes という枠で 5年間の商用サポートが提供されます。
IBMが提供するサポート期間を時系列で表現した図としては、参考URL:オープンソースで提供される第二のJVM:OpenJ9とIBM Javaについて:p.18 をご参照ください。それぞれのJDKに対するサポートの概要は下記になります。
AdoptOpenJDKについては、もともとオープンソースプロジェクトということもあり、コミュニティサポートとして無償で4年間のサポートがあるようです。
費用
サポート費用は、2種類のJDKともに同じ料金テーブルが適用されます。
年額 | 単位 |
---|---|
54,800円 | プロセッサー数 |
単位のプロセッサー数は、実環境ではCPUのコア数。仮想化環境では、割り当てたCPU数となります。
参考URL
-
オープンソースで提供される第二のJVM:OpenJ9とIBM Javaについて
-
AdoptOpenJDKのDLページ
-
AdoptOpenJDKのサポートのページ
RedHat
サポート対象
RedHatは、次のJDKに対してLTSを提供します。
- OpenJDK(ただし、RedHat Enterprise Linuxでの利用に限る)
このOpenJDKは、RHELのパッケージとして提供されているものであり、RHEL上でyumを利用してインストールすることになります。
RedHatもIBMと同じく、Oracle JDKと同じバージョン(Java 11, Java 17, ...)に対してLTSを提供する方針のようです。
サポート期間
RedHatが提供するOpenJDKのLTSは、RHEL自体のサポートサブスクリプションに含まれますが、そのサポート期間については、Oracle社の影響を受け、RHELのサポート期間とは異なる期間が適用されます。
これについては、参考URL:OpenJDK Life Cycle and Support Policy をご覧ください。
費用
OpenJDKのサポート費用は、RHELのサポート費用に含まれるようです。
参考URL
-
Red HatのOpenJDKのサポート
-
OpenJDK Life Cycle and Support Policy
Azul Systems
サポート対象
Azul Systemsは、次のJDKに対してLTSを提供します。
-
Zulu Enterprise
- Zulu Embeded
Zulu とは、Azul Systemsが独自にビルドして提供するOpenJDKです。
Zulu Enterprise とは、Zuluに対して、LTSオプションを付与した名称です。Zulu と Zulu Enterprise はバイナリとしては同じものになります。
Zulu Embeded とは、Azul Systemsが独自にビルドして提供する組み込み向けのJDKです。
Zuluは、Microsoft Azureのクラウド基盤で利用されているJDKでもあるようです。
Azul Systemsも他社と同じく、Oracle JDKと同じバージョン(Java 11, Java 17, ...)に対してLTSを提供する方針のようです。
Azul Systemsのエンジニア部隊は、海外のみのため、現時点での問い合わせは英語で行う必要があるようです。
(利用相談などは日本法人で対応されそうです)
Azul Systemsは、Zuluの他に、Zingという低レイテンシ高速処理向けの独自JVMも提供しています。ただし、本投稿では、OpenJDKの近傍製品を整理対象とするため、Zingについては記述していません。
サポート期間
Azul Systemsが提供するLTSの期間は、下記合計の10年間となります。
- Production Support 8年
- Extended Support 2年
Azul Systemsの独自サポートとしては、LTS以外のバージョンについても、1年ごとにリリースされるもの(Java 13 Java 15, ...)に対して中期サポート(以下、MTS:Middle Tarm Support)を提供する、というものがあります。MTSのサポート種別ごとの期限は下記となります。
- Production Support 次のLTS版リリースの1年半後まで(3年半 or 2年半)
- Extended Support 1年
時系列で表現した図としては、参考URL:Zulu Enterprise Java Support Options:2枚目の図 をご参照ください。
費用
JDKの種類や、サーバーサイド・クライアントサイドで料金テーブルは分かれていないようです。料金テーブルの適用単位は、Javaアプリケーションが稼働しているシステム数となっています。また、サポートレベルによって、StandardとPremiumの2つのテーブルが用意されています。
最大システム数 | 年額(Standard Support) | 年額(Premium Support) |
---|---|---|
25 | $13,200 | N/A |
100 | $31,600 | $37,900 |
1,000 | $94,900 | $113,900 |
無制限 | $284,600 | $341,500 |
参考URL
-
AzulSystemsのサイト(日本向け)
-
Zulu Enterprise Java Support Options
JDKの無償サポートについて
おまけ、ではないですが、OpenJDKを極力無償で使いたい場合の選択肢についても簡単にまとめてみます。
JDK | サポート期間 | サポート提供 | レベル |
---|---|---|---|
OpenJDK | 半年 | コミュニティ | ベストエフォート |
AdoptOpenJDK ※1 | 4年 | コミュニティ | ベストエフォート |
Zulu @ Microsoft Azure ※2 | Zulu Enterpriseに依存 | Azul Systems | Zulu Enterprise |
※1
AdoptOpenJDKは、IBMの箇所でも軽く触れていますが、JVMによって次の2種類があります。
- AdoptOpenJDK with HotSpot
- AdoptOpenJDK with Eclipse OpenJ9
無償のJDKとして採用する場合でも、どちらの種類を選択するのかについては検討が必要になります。
※2
Java 11がリリースされた直後の発表で、Microsoft Azure自体にも利用されていることなどから、ZuluをAzure状のVMで利用する場合に対して、無償のTLTSが提供されることが決まりました。
https://azure.microsoft.com/en-us/blog/microsoft-and-azul-systems-bring-free-java-lts-support-to-azure/
今後、他のパブリッククラウド(AWS、GCPなど)でもAzureと同様に何らかのJDKのLTSが提供されるかもしれません。この辺は要チェックかと思います。(2018年9月26日時点はAzureのみ)
以下、個人的な感想(超雑記)
RedHat Enterprise Linux 使ってる場合、OSサポート買えばOKで楽やね。
ただそん時に、OracleとかIBMとかの製品を使ってると、製品サポートが各ベンダー提供のJDKサポートを含んでるので、OSのサポートとは別に金がかかってしまうね。クラウド環境上とかだと計算式が変わってくる場合もあるとか聞くし、あたりまえやけど見積もり時点からちゃんと抑えとくのが大切やね。
CentOS × Tomcat/Nginx みたいな低コスト重視の場合は、OpenJDKで半年に一回アップデートするか、AdoptOpenJDKの無償サポート4年が一番金がかからない感じやね。それでもちょっと不安ならAdoptOpenJDKのIBMサポートとかZulu EnterpriseとかのLTSを買えばいいんじゃないかってとこか。個人的にはZulu Enterpriseが安い長いでいい塩梅な印象を受けるね。
みたいな感じかなぁ。
長々とお読みいただきありがとうございます。
以上です。