Special
» 2019年02月12日 10時00分 公開

「安定性」「セキュリティ」「無料」の全ては満たせない:セキュリティパッチ、バグ修正は今後どうなる?――Javaが動くシステムを安価に安定運用するための現実解とは

2017年9月、OracleがJDK/Java SEの提供方法を変更することを発表した。これを受けて、「JDKの有料化」という誤解が生まれてしまったが、実際はそうではない。JDK提供に関する変更点をあらためて確認しつつ、Javaを使い続ける企業に迫られる選択について解説しよう。

[PR/@IT]
PR

Javaを使い続ける企業に迫られる選択

 2017年9月、OracleがJDK(Java Development Kit)/Java SE(Standard Edition)の提供方法を変更することを発表した。これを受けて、Javaを活用したシステムを運用している多くの企業から、「今まで無料で使えていたJDKが有料化されることで、運用コストが増大してしまう」と懸念の声が上がった。

 「JDKの有料化」という誤解は、業界に大きなインパクトを与えたが、実は現在も無料で使えているのが実情だ。では、なぜ有料化という認識が広がったのか。Oracleが発表したJDK提供に関する変更点をあらためて確認してみよう。

 まず、従来は、Oracleから提供される商用JDKバイナリは全て無料で使えていたが、JDK 11以降は、OpenJDKのバイナリのみに限定されることとなった。OpenJDKバイナリは、6カ月ごとに新バージョンがリリースされ、この6カ月間はセキュリティパッチとバグ修正のアップデートが提供される。

JDK/Java SEライフサイクル――5年以上のタイムライン

 また、JDKを商用利用するに当たり、Oracleから無料でLTS(ロングタームサポート)がリリースされなくなった。LTSの提供を受けるには、商用サポート契約が必要となる。

 JDK 8までのバイナリ(Oracle版またはOpenJDK)は、無料のまま無期限で使用し続けることができるが、2019年1月のパブリックアップデート終了後は、Oracleからのアップデートを入手できなくなる。

 パブリックアップデート終了後も、JDK 8以降のLTSリリース用のセキュリティパッチとバグ修正を入手するには、(1)Oracleから商用サポートの契約を購入する、(2)サードパーティーがバックサポートするOpenJDKのバイナリディストリビューションを使用する、(3)OpenJDKのソースコードから独自のバイナリディストリビューションを作成し、自社で更新をバックサポートする――という3つのアプローチから選択することになる。

 つまり、JDK自体が有料化されるのではなく、無料での利用がOpenJDKに限定されるとともに、OracleからのLTSが無料でリリースされなくなるのが変更のポイントだ。

 ただ、この変更によって、JDKを商用利用している企業は、今までと同じように無料でJDKを利用できなくなるのも事実だ。従来のJDKは、セキュリティを確保し、後方互換性を維持しながら長期間安定して無料で利用できるものだったが、今後は、「安定性」「セキュリティ」「無料」の3つの要素から2つを選び、各企業のニーズに応じて、JDKへのアプローチを新たに決めていくことが求められている。

「安定性」「セキュリティ」「無料」の3つの要素から2つを選択することのメリット、デメリット

 例えば、「安定性」と「無料」を選択する場合は、現行バージョンのJDKを使い続けるアプローチとなる。バージョンの切り替えがなく無料のまま安定して利用できるが、アップデートによるセキュリティパッチやバグ修正は入手不可となるため、サイバー攻撃を受けるリスクが大きくなる。

 「セキュリティ」と「無料」を求めるアプローチでは、OpenJDKを選択することで、セキュリティを保ちながら無料で利用し続けることが可能だ。ただし、6カ月ごとに新バージョンのOpenJDKに切り替える作業が必要となる上に、後方互換性が維持されないため、安定したシステム運用が難しくなる。

 そして、「安定性」と「セキュリティ」を重視する場合には、Oracleの商用サポートを有料で契約し、LTSリリースを継続して利用するというアプローチになる。しかし、Oracleの商用サポートの料金体系は、サーバのプロセッサ数に基づいているため、Javaシステムの規模によっては莫大な金額に膨れ上がってしまう恐れがある。

OpenJDKのバイナリディストリビューション「Zulu Enterprise」

 いずれにしても、JDKの利用には何らかの課題を抱えることになる。そこで、こうした課題を解消するもう一つの選択肢として注目されているのが、Azul Systemsが提供するOpenJDKのバイナリディストリビューション「Zulu Enterprise」を活用するアプローチだ。

 Zulu Enterpriseは、OpenJDKベースで構築されており、OpenJDK Community Technology Compatibility Kit(TCK)のテストにより、Java SE仕様への100%互換性を実現している。そのため、既存のJDKからのマイグレーションを容易に実行できるという。

 ディストリビューションは、オープンソースとして無料で無制限にダウンロードして使用することが可能だ。また、有料のサポートプランも用意しており、タイムリーなJavaセキュリティと安定性の更新、およびバグ修正とAzul Systemsのサポート組織への24時間365日のアクセスを提供する。Azul Systemsは、Java専任のエンジニア集団であり、JDKに関する経験が豊富なスタッフが、技術面の詳細な質問やマイグレーションに関する問い合わせにも迅速に回答するという。サポート料金は、サーバ台数に基づく課金制を採用しており、大規模導入向けの無制限ライセンスも用意している。

 さらに、6カ月間のセキュリティパッチとバグ修正のアップデート、LTSの2つに加えて、Zulu Enterpriseでは、安定性を考慮したMTS(ミドルタームサポート)を用意している。これにより、次期LTSバージョンへの移行準備を効率良く行える。

 サポート期間についても、1年間長くシステムが使える長期サポート保証を提供。例えば、2018年末にJava 6のサポートが終了したが、Zulu Enterpriseは2019年末までサポートを提供している。ユーザーの要望に応じて、2020年以降もサポートを延長できるという。

 国内でZulu Enterpriseの販売を手掛けている丸紅情報システムズでは、「日本でもZulu Enterpriseのニーズが高まってきている。Java 6、Java 8などを利用している企業で、セキュリティパッチの提供、サポートを受けるためにZulu Enterpriseへのマイグレーションが進んでいる」としている。

6万台を超えるサーバでJavaを利用していた銀行がZulu Enterpriseを採用

 ここで、代表的なマイグレーション事例として、グローバルで事業を展開している銀行のケースを紹介しよう。

 この銀行は、全世界で十数拠点を構え、6万台を超えるサーバでJavaを利用していた。2017年9月に、OracleからJavaの開発と提供方法を変更することがアナウンスされたことを受け、従来のJDKからのマイグレーションを検討。最終的にZulu Enterpriseを選定した理由については、(1)移行期間中のJavaに対する「ベスト・エフォート・サポート」を提供、(2)Javaの問題の根本原因を調査、(3)Javaの脆弱(ぜいじゃく)性への疑問やセキュリティ上の質問に回答、(4)移行に必要なZulu Enterpriseのバージョンを提案、(5)Zulu EnterpriseがJavaで発見されたバグによっても影響を受ける場合は、Azul Systemsがバグ修正に対応、(6)無制限利用の価格設定――の6点を挙げている。

 Zulu Enterpriseへの移行に当たっては、JVMを使用している全てのシステム所有者に対してチェックシートを準備。(1)オペレーティングシステム、(2)64bitまたは32bitか、(3)アプリケーションタイプ、(4)Javaバージョンおよびベンダー、(5)Javaの更新レベル、(6)Javaの設定、(7)Java SE以外の追加コンポーネント――の7項目について確認し、全サーバの棚卸しを実施した。

 棚卸しの結果、Javaのバージョンは、Java 8が65%、Java 7が28%、Java 6が7%である他、幾つかのシステムでJava 5以下が実行されており、2009年10月のサポート終了後、少なくとも9年間は更新されていないことが明らかになった。また、Javaアプリケーションの97%以上がHotSpot JVMを使用。幾つかのアプリケーションは、すでに何らかのOpenJDK上で動作していた。これらの結果を踏まえて、HotSpot JVMからAzul SystemsのZulu JVMへの移行を、アプリケーションのアップグレードの一環として実施したという。

 システム全体の分析開始から移行が完了するまでに要した期間は合計7カ月。実際の移行プロジェクトは、まず「フェーズ1」として、OpenJDKまたは正式に検証されたフレームワークとアプリケーションサーバですでに実行されているアプリケーション(全システムの85%以上)の移行を1カ月以内で終了。「フェーズ2」では、追加の作業が必要なシステムの移行を3カ月で実施。このフェーズでの最大の移行作業は、プロセス中にJavaバージョンを変更したアプリケーションの移行だったという。

まずは自動化ツールで、全サーバ資産の棚卸しから始めてみよう

 今回紹介したマイグレーション事例で最も重要なポイントは、移行前に全サーバ資産の棚卸しを実施したことだ。多くの企業が、社内にあるサーバの状況が把握できていないのが実情で、ここがJDKのマイグレーションに向けた障壁になっているケースも少なくないという。そこで、丸紅情報システムズでは、サーバ資産の棚卸し作業を自動化するツールとして、VistaNetが取り扱っている「OpsRamp」を提供している。

 OpsRampは、オンプレミスやマルチクラウドにある、分散されたIT資産を効率的に一元管理し、ITオペレーションを自動化するクラウドベースのプラットフォームだ。サーバやPCにエージェントをインストールすることで、各サーバ/PCが使用しているOSやアプリケーション、ハードウェアなどの情報を自動的に収集、管理できる。前述の事例のような大規模システムでは、情報確認のためにオペレーターが数万台のサーバに1台ずつコマンドを入力していると膨大な時間がかかってしまうが、OpsRampであれば、サーバ/PCにコマンドを一斉配信して、必要な情報を自動取得することが可能だ。

 例えば、Javaのバージョンを取得するコマンドを配信すれば、各サーバ/PCで使われているJavaの種類やバージョン、インストールした日時まで一括で可視化できる。収集したデータはエクスポートすることも可能で、大量のサーバ/PCの情報をExcel上で編集して、見やすく一覧表にまとめることもできるという。

Javaのバージョンを取得するコマンドの実行結果。OpsRampでは、コマンドを各サーバ/PCに一斉に配信、実行し、この結果を一覧で表示、確認できる

 丸紅情報システムズでは、Zulu Enterpriseへのマイグレーションを支援するソリューションの一つとして、OpsRampのみの提供も行っているという。JDKのマイグレーションを検討しているものの、一歩が踏み出せないという企業は、まずはサーバ資産の棚卸しから始め、既存のJavaシステムの維持に必要なビジネスインパクトを把握してみてはいかがだろうか。

Copyright © ITmedia, Inc. All Rights Reserved.


提供:丸紅情報システムズ株式会社
アイティメディア営業企画/制作:@IT 編集部/掲載内容有効期限:2019年3月11日

関連セミナー

Oracle Javaの維持コストを「グッ」と抑え、安心で安全なシステムを実現するAzul SystemsのオープンソースJDKをご紹介します

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。