Cloud9のEC2(Amazon Linux)にJava(Amazon Corretto 11)をインストール

AWS

最近コードを書かなければいけない状況になってきました。せっかくの機会なので、開発言語を何にしようかと適当に調べながら考えていると、下記に最適な開発言語を選択すればいいのでは?という結論になりました。

Amazon CodeGuru

一言でいうと下記となります。要はAI(機械学習)に開発のサポートをしてもらう感じだと思います。

Q: Amazon CodeGuru とは何ですか?

Amazon CodeGuru は機械学習を利用したデベロッパーツールで、コードの品質を向上し、アプリケーションの最もコストがかかっているコード行を特定するためのインテリジェントな推奨事項を提供します。

Amazon CodeGuru のよくある質問 – アマゾン ウェブ サービス

さらに、CodeGuruにはReviewerとProfilerの2つのコンポーネントがあります。Reviewerはコード内の重大な問題や見つけにくいバグを特定し、Profilerは実稼働状態のアプリケーションにおいて、コードを改善してコストを節約する方法を推奨してくれます。

当然、任意のアプリケーションに適用できるわけではなく、下記の条件(引用)を満たす必要があります。つまり簡単に言えば、Java言語でアプリケーションを開発する必要があります。

Amazon CodeGuru Reviewer

Q: サポートされているプログラミング言語とソースコードリポジトリを教えてください。

Amazon CodeGuru Reviewer は現在、GitHub、GitHub Enterprise、Bitbucket、および AWS CodeCommit リポジトリに保存されている Java コードをサポートしています。

Amazon CodeGuru のよくある質問 – アマゾン ウェブ サービス

Amazon CodeGuru Profiler

Q: サポートされているプログラミング言語は何ですか?

現在、Amazon CodeGuru Profiler では、Java、Scala、Kotlin 他の、JVM アプリケーションをサポートしています。

Amazon CodeGuru のよくある質問 – アマゾン ウェブ サービス

Lambdaのランタイム

Lambdaのランタイムを調べたところ下記(Java 11 Corretto)を選択することができました。

Amazon Corretto 11

Amazon Corretto 11」とはAWSが提供する、無料のOpenJDKディストリビューション(Java 11)です。上記のように、LambdaのランタイムにJava(Amazon Corretto 11)が選択できるので、下記で開発環境であるCloud9にも同様のJava(Amazon Corretto 11)をインストールして、Javaで書いたLambdaのコードを、同じランタイムでローカル実行できるようにします。

Cloud9の環境の作成

下記のようにEC2インスタンスは「Amazon Linux」にします。ちなみに、 セキュリティを意識して、「Session Manager」(System Manager)を利用した「No-Ingress EC2」として起動しています。

Java(Amazon Corretto 11)のインストール

Javaのバージョンの確認(インストール前)

すでにJavaはインストール済でしたが、当然「Amazon Corretto 11」ではありません。というか「Java 11」でもありません。

$ java -version
java version "1.7.0_261"
OpenJDK Runtime Environment (amzn-2.6.22.1.83.amzn1-x86_64 u261-b02)
OpenJDK 64-Bit Server VM (build 24.261-b02, mixed mode)Code language: JavaScript (javascript)

Linuxのリリースバージョンの確認

OSも確認しますが、当然「Amazon Linux」です。「Amazon Linux 2」では無いので注意が必要です。(「Amazon Corretto 11」は「Amazon Linux 2」用のパッケージもあります)

$ cat /etc/system-release
Amazon Linux AMI release 2018.03

インストールパッケージの確認

下記が「Amazon Linux」にインストールするパッケージ(RPM) になります。

Downloads for Amazon Corretto 11 – Amazon Corretto

Java(Amazon Corretto 11)のインストール

「yum」コマンドでインストールします。

$ sudo yum -y localinstall https://corretto.aws/downloads/latest/amazon-corretto-11-x64-linux-jdk.rpm
...Code language: JavaScript (javascript)

Javaのバージョンの確認(インストール後)

「Amazon Corretto 11」になりました。

$ java -version
openjdk version "11.0.8" 2020-07-14 LTS
OpenJDK Runtime Environment Corretto-11.0.8.10.1 (build 11.0.8+10-LTS)
OpenJDK 64-Bit Server VM Corretto-11.0.8.10.1 (build 11.0.8+10-LTS, mixed mode)Code language: JavaScript (javascript)

まとめ

ということで、「Amazon CodeGuru」のサポートを受けながら「AWS Lambda」を「AWS Cloud9」でローカル開発(実行)するために「Amazon Corretto 11」をインストールしました。久しぶりのJava開発です!