[レポート] DEV325-R1: 最近のAWSにおけるJavaエコシステムの機能紹介とハンズオン #reinvent

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

はじめに

本記事はAWS re:Invent 2018のセッション「DEV325-R1 Hands-on in the AWS Java Ecosystem」のレポートです。

The AWS SDK for Java 2.0 includes a number of new features and performance improvements. Using real code examples, we'll build a serverless application that makes use of the SDKs new HTTP2-based event-streaming APIs and deploy it using AWS Java tooling introduced in 2018. You'll learn what's new in 2.0 and the benefits of upgrading, as well as how to take advantage of new tooling in AWS's already rich Java ecosystem.

発表では以下の機能についての紹介とデモが行われました。

  • AWS SDK for Java(v2)
  • HTTP/2 双方向ストリーミング
  • Cloud Development Kit(CDK)
  • Toolkit for JetBrains
  • AWS LambdaのSDK初期化高速化
  • Amazon Corretto(AmazonのサポートするOpenJDK)

スピーカー

  • Kyle Thomson - Senior Software Development Engineer
  • Sam Fink - Software Development Engineer, AWS

レポート

AWS Toolkit for JetBrains

JetBrainsのIDEでAWS Toolkitが利用できるようになりました。

現在は開発者向けのプレビュー版が利用可能です。

アーリーアクセス版のJetBrains plugin repositoryはこちらです。 また、ソースからビルドすることが可能です。

以下のようにビルドしてIDEにプラグインをインストールすることで利用可能になります。

git clone git@github.com:aws/aws-toolkit-jetbrains.git
cd aws-toolkit-jetbrains
./gradlew buildPlugin

AWS Toolkit for JetBrainsはオープンソースで、We need you!とのことです。

aws/aws-toolkit-jetbrains: AWS Toolkit for JetBrains - a plugin for interacting with AWS from JetBrains IDEs

機能について

AWS Toolkitは以下の機能にフォーカスしています。

  • サーバーレス
    • AWS Lambda
    • AWS SAM CLI Integration
    • Local debugging
  • 基本的なリソースとクレデンシャルの管理
  • サーバーレスアプリケーションサポート(comming soon!)

セッションでは以下の流れでデモが行われました。

  1. サーバレスアプリケーションの雛形をIDEから自動生成
  2. 設定からLambdaの入力リソースを選択し、テスト実行
  3. IDEからAWS Lambdaへのデプロイ
  4. IDEからデプロイしたLambdaを実行

AWS Java SDK v2

AWS Java SDK v2が2018年11月19日にGAとなりました。

セッションでは以下の機能紹介が行われました。

  • ブロッキングしない非同期サービスのクライアント
  • BuilderパターンによるImmutability
  • HTTPクライアントを指定
  • Consumerビルダーパターンでの設定
  • SDKの起動高速化
    • これによりAWS Lambdaでの利用がしやすくなった
    • 実行時はJacksonのオブジェクトマッパーを削除
    • HTTPクライアントとしてURLConnectionを利用
    • コンパイル時にリソースを作成
  • モジュール化

また、ローカルのマイクで入力した音声をリアルタイムでAmazon Transcribeに送り、書き起こしたテキストをリアルタイムにコンソールに出力するデモがありました。

Amazon TranscribeのSDKを利用したストリーミングのJavaコードの例はこちらで紹介されています。

その他の変更点は1.11 to 2.0 Changelogを参照ください。

Cloud Development Kit(CDK)

CDKによってJavaのコードからCFnのテンプレートを生成するデモがありました。

CDKでは弊社ブログでも紹介していますのでこちらも参照ください。

【awslabs探訪】AWS Cloud Development Kit (AWS CDK)を使ってみた

また、re:Invent 2018でもCDKのセッションがありました。弊社レポートブログはこちらです。

[レポート] DEV372 – Infrastructure Is Code with the AWS Cloud Development Kit #reinvent

Amazon Corretto

AmazonがOpenJDKの実装をサポートします。

  • マルチプラットフォーム
  • 無料
  • LTS Support
    • Corretto 8は2023まで
    • Corretto 11は(少なくとも)2024まで
  • 現在はプレビュー版で、2019 Q1にGAの予定
  • オープンソース(GitHub
  • More Info(Amazon Corretto

まとめ

最近のAWSにおけるJavaエコシステムの機能紹介についてのセッションでした。以下の内容についての言及がありました。

  • AWS SDK for Java(v2)
  • HTTP/2 双方向ストリーミング
  • Cloud Development Kit(CDK)
  • Toolkit for JetBrains
  • AWS LambdaのSDK初期化高速化
  • Amazon Corretto(AmazonのサポートするOpenJDK)