殿堂入り記事

マルチプラットフォームで利用可能なOpenJDKのAmazon Correttoが発表されました!

マルチプラットフォーム(ubuntu、RHEL、Windows、MacOS)対応のLTSがついたOpenJDK互換のJavaリリースのアナウンスです!
2018.11.14

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

しばらく前に、Amazon LinuxでのJavaのLTSが発表され大きな話題となりました。

Amazon LinuxでのJavaのLTS (Long-Term Support)提供について

「ほぇー、AWSもやりおるやんけ!!」と感慨にふけっていたら、それの100倍ぐらい衝撃的なニュースが、Javaの神様James Goslingのツイートで飛び込んできました。

「無償」かつ「AWS以外でも使えるマルチプラットフォーム」かつ「LTS(Long-Term Support)」つきのOpenJDKをAWSが提供するとのことです。

現在はプレビュー版ですが、対応プラットフォームには、現在、Amazon Linux 2以外に、Microsoft Windows、macOS、Dockerイメージが用意されており、正式リリース時には、UbuntuやRed Hat Enterprise Linuxも対応予定とのこと。

まぁ、もうJavaいれるときは全部これでええやん的な気持ちになる、ごついアナウンスです。

Introducing Amazon Corretto, a No-Cost Distribution of OpenJDK with Long-Term Support | AWS Open Source Blog

Amazon Corretto きたか…!!

  ( ゚д゚) ガタッ
  /   ヾ
__L| / ̄ ̄ ̄/_
  \/   /

Amazon Correttoとは

Javaの生みの親、James Gosling(現在AWS所属)の談話が紹介されいます。

“Amazon has a long and deep history with Java. I’m thrilled to see the work of our internal mission-critical Java team being made available to the rest of the world” — James Gosling

今回発表されたのは、AWSが提供する、無償でマルチプラットフォーム対応の、プロダクションレディーなOpenJDKビルドです。現在はまだプレビュー版です。

Corretto 8の利用(OpenJDK 8互換)

Corretto 8は、2018年11月14日時点、下記4つのプラットフォームにて、プレビュー版が提供されています。MacやWindowsが含まれているのは正直ビビりました。

Downloads for Amazon Corretto 8 - Amazon Corretto 8

  • Amazon Linux 2 JDK
  • Amazon Linux 2 JRE
  • Windows MSI
  • Mac PKG

これらのGA(General Availability)は2019年1Q予定。GA時には、UbuntuやRed Hat Enterprise Linuxも含まれる予定となっています。

Corretto 11の利用(OpenJDK 11互換)

Corretto 11は、2018年11月14日時点ではまだ提供されていません。2019年4月までテストが続けられる予定です。

JavaSEとの互換性

互換性の確保のため、Correttoの各リリースでJavaの互換性を確認するTechnology Compatibility Kit(Technology Compatibility Kit)が実行されます。OpenJDKで利用できない機能(Java Flight Recorderなど)を利用している場合を除いて、全てJava SEの代替として利用できます。

今後のサポート予定

少なくとも、以下の時期までの無償配布が予定されています。OpenJDKの新開発拡張機能などもすべて含まれます。

  • Corretto 8 → 2023年6月
  • Corretto 11 → 2024年6月

また、2019年中には、Amazon Linux2上のデフォルトのOpenJDKに、Correttoを採用予定です。

ソースコードはこちらで公開されています。

corretto

プレビュー版をインストールしてみた

そんなわけで、プレビュー版をインストールしてみました。

MacOS版

Downloads for Amazon Corretto 8 - Amazon Corretto 8

こちらから、Mac版のPKGファイルをダウンロードします。サイズは約103MB。

なんか、新鮮なAWS仕様のインストーラーが起動します。

インストール完了後、Runtimeにamazon-correttoの文字が!previewと明記されてますね。

$ java -version
openjdk version "1.8.0_192"
OpenJDK Runtime Environment (build 1.8.0_192-amazon-corretto-preview-b12)
OpenJDK 64-Bit Server VM (build 25.192-b12, mixed mode)

Docker版

こちらで、Dockerfileが公開されてました。

corretto/corretto-8-docker: Docker-related Corretto

Dockerfileはこんな感じ。いうても、Amazon Linux2にAmazon Correttoのバイナリをインストールしているだけですね。

Dockerfile

FROM amazonlinux:2
RUN yes | yum update \
 && yes | yum install wget \
 && wget https://d3pxv6yz143wms.cloudfront.net/java-1.8.0-amazon-corretto-1.8.0_192.b12-1.amzn2.x86_64.rpm \
 && wget https://d3pxv6yz143wms.cloudfront.net/java-1.8.0-amazon-corretto-devel-1.8.0_192.b12-1.amzn2.x86_64.rpm \
 && yes | yum remove wget \
 && rpm -K java-1.8.0-amazon-corretto-1.8.0_192.b12-1.amzn2.x86_64.rpm \
 && rpm -K java-1.8.0-amazon-corretto-devel-1.8.0_192.b12-1.amzn2.x86_64.rpm \
 && yes | yum localinstall *.rpm
CMD ["/bin/bash"]

ビルドして、Corretto 8が使えます。

$ docker image build -t corretto8:1.0 .
$ docker container run -it corretto8:1.0
bash-4.2# java -version
openjdk version "1.8.0_192"
OpenJDK Runtime Environment (build 1.8.0_192-amazon-corretto-preview-b12)
OpenJDK 64-Bit Server VM (build 25.192-b12, mixed mode)
bash-4.2#

その他リソース

界隈の驚きの様子

現在、Correttoハッシュタグが賑わっております。

correttoに関するTwitterニュース

AWSがマルチプラットフォームなOpenJDKを出すことの純粋な驚き

OracleJDKの有償化が発表されてから、「次のJava、一体なににすんねん?」という議論は常に紛糾していました。しばらく前、2018年9月にMicrosoft Azure上での実行目的でJavaのLTSが発表(参考:Microsoft Azure上での実行目的ならJavaの長期サポート(LTS)を無料提供、MacやWindowsでの開発用途もOK。マイクロソフトとAzul Systemsが提携で - Publickey)されたときは、「やばいな、Microsoft チートやろ」と思ったものですが、その後にAmazon LinuxでのLTS発表。

ここらへんまでは、各パブリッククラウドプラットフォームでのサポートということで、囲い込み的な戦略としてありだなぁと思ってたんですが、ここに来て、AWSが主要なプラットフォームをカバーしたどこでも使えるOpenJDK互換のAmazon Correttoをリリースしたのは、まじでえげつないなと。どっからそんなパワー出てくるんやと。

つい4ヶ月ほど前に顧客から「AWSでJava使いたいんやけど、なんにしたらええんやろ?」と聞かれたときに、「うぅーん、どうしたもんすかねぇ」と答えていたのが嘘のようです。まじでこの界隈、動きが早すぎる。

おそらく、他のプラットフォーマーも追従してくるものと思われますが、まずはJava利用の有力な選択肢として、Amazon Correttoは必ず考慮にいれておいて良いと思います。

それでは、今日はこのへんで。濱田(@hamako9999)でした。