SlideShare a Scribd company logo
1 of 90
Download to read offline
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Serverless時代の
Javaについて
AWS Presents, Battle against Massive Load
using Your Super Sonic Lambda Function!
1
@_kensh
Kensuke Shimokawa
Amazon Web Services Japan
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Who?
2
•Name
• 下川 賢介
• Kensuke Shimokawa
•Company
• Amazon Web Services Japan
•Role
• Serverless Specialist
Solutions Architect
@_kensh
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
agenda
3
•Serverless って何ですか?
•Serverless Java チューニング
•まとめ
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 4
Serverless って何ですか?
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Amazon では、、、
モノリス
2001 2002
マイクロサービス
+ 2 ピザルール
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
役割の違い
モノリス
(全てを担当)
マイクロサービス
(単一機能を担当)
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
マイクロサービス アーキテクチャの例
7
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 8
マイクロサービスの特徴
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
モノリスのデリバリーパイプライン
9
開発者 サービス
デリバリーパイプライン
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
マイクロサービスのデリバリーパイプライン
10
開発者 サービス デリバリーパイプライン
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
モノリスのスケール
11
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
マイクロサービス のスケール
12
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 13
Javaでマイクロサービスというと
SpringBoot ですよね?
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
起動に時間がかかる? (本日の主題でもある)
14
• コンテナやServerlessは素早くスケールさせたい。
• ポイントは適度に⼩さい単位への分割
• → よりライトウエイトに、よりロジックだけに
• → プレーンなJavaに
• → 定型機能は特化型フレームワークで
AWS Lambda + Java
という選択肢はどうですか?
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 15
HTTPS event
Amazon API Gateway AWS Lambda
Serverlessにするとマイクロサービスが作りやすい
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 16
サービスで考慮すること
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
サービス運用者の気持ち
17
インフラを
管理したくない
サービスを
スケールさせたい
コスト効率を上げたい
高可用性や
セキュリティ要件
を満たしたい
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 18
AWS Lambdaについて
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
AWS Lambda
19
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
(注意)Java Lambda Expressionのことではありません!
20
() -> System.out.println("Zero parameter lambda");
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
AWS Lambda
21
インフラの
プロビジョニング不要
自動でスケール
使った分だけの
お支払い
高可用性かつ安全
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 22
WEBサーバー
アプリケーション
サーバー
HTTPS HTTP
これまでの環境
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 23
HTTPS event
Amazon API Gateway AWS Lambda
Serverlessにすると
ロジック
ロジック
ロジック
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
動作の仕組み
24
f(x) = {…}
呼び出し元 処理対象
例・API呼び出し
・データ変更イベント
・ファイル配置イベント…
例・DBアクセス
・ファイル出力
・別の処理を呼び出し…
負荷に応じて
処理を多重化
リソース管理 リトライ ログ出力
g(x) = {…}
h(x) = {…}
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Sample Code
25
package example;
import example.Event;
import example.Response;
import com.amazonaws.services.lambda.runtime.Context;
public class Handler {
public Response myHandler(Event event, Context context) {
Response response = new Response();
String json = getJsonResponse(event);
response.setBody(json);
response.setStatusCode(200);
return response;
}
}
完全修飾クラス名::メソッド名
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Sample Code
26
この関数を呼び
出すサービス
Runtime言語の指定
Java 11 も選択可能
完全修飾クラス名::メソッド名
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
実はJava以外のRuntimeも利用できます。
27
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 28
ColdStart について
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 29
Amazon API Gateway AWS Lambda
ColdStart と WarmStart
① ① ①
ColdStart
② ②
②
ColdStart
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 30
Amazon API Gateway AWS Lambda
ColdStart と WarmStart
③ ③ ③
WarmStart
② ②
②
ColdStart
3 requests, 2 concurrency
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 31
でも、ColdStartってJavaだけ?
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
ColdStartを強制的に発生させる
32
for i in {1..100}
do
serverless deploy -f hello --force > /dev/null
curl -s -o /dev/null ¥
-w "%{time_starttransfer}¥n” <API URL>
done
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 33
Serverless Java チューニング
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Lambda の Life Cycle
34
Warm StartCold Start
コンテナ
生成
パッケージ
ロード
パッケージ
展開
ランタイム
起動
初期化
関数・メソッド
起動
デプロイ
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Lambda の Life Cycle
35
Warm StartCold Start
コンテナ
生成
パッケージ
ロード
パッケージ
展開
ランタイム
起動
初期化
関数・メソッド
起動
デプロイ
Zipサイズ最小化
遅延ロード
依存最小化
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
不要ライブラリを依存から排除
(Zipサイズ最小化+依存最小化)
36
dependencies {
runtimeOnly group: 'org.springframework’,
name: 'spring-core', version: '2.5'
runtimeOnly 'org.springframework:spring-core:2.5',
'org.springframework:spring-aop:2.5'
runtimeOnly(
[group: 'org.springframework', name: 'spring-core', version: '2.5'],
[group: 'org.springframework', name: 'spring-aop', version: '2.5']
)
runtimeOnly('org.hibernate:hibernate:3.0.5') {
transitive = true
}
runtimeOnly group: 'org.hibernate', name: 'hibernate', version: '3.0.5’,
transitive: true
runtimeOnly(group: 'org.hibernate', name: 'hibernate', version: '3.0.5') {
transitive = true
}
(snip)
少なくする
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
プレーンJavaで書く(さらに、Zipサイズ最小化)
37
public class Handler {
public Response myHandler(Map<String, Object> event,
Context context) {
Response response = new Response();
String json = getJsonResponse(event);
response.setBody(json);
response.setStatusCode(200);
return response;
}
}
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
AWS Lambdaのベストプラクティス
38
https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/best-practices.html
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 39
プレーンJavaでは機能横断的な
要件を満たせないのでは?
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
機能横断的要件(あるいは非機能要件)
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
機能横断的要件(あるいは非機能要件) by Spring Boot
41
Spring Boot Actuator
ログ
Spring Security
認証認可
Layer7攻撃対策
パスワードポリシーメトリクス
トレース
FAT jar
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 42
Amazon API Gateway AWS Lambda
FAT jarでLambdaを動かそうとすると
FAT jar
FAT jar
FAT jar
ColdStart Latencyが増大
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Jarを痩せ細らせたい
43
FAT jar
Skinny jar
アプリケーションロジック
依存ライブラリ
アプリケーションサーバー
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
機能横断的要件(あるいは非機能要件) by AWS Lambda
44
ログ 認証認可
Layer7攻撃対策
パスワードポリシーメトリクス
トレース
Skinny jar
AWS X-Ray AWS WAFAWS Lambda
Amazon CloudWatch Amazon Cognito
Amazon
API Gateway
ロジック
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 45
You	aren't	gonna need	it
最初から機能追加すべきではない。
Martin Fowler
YAGNI
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
機能横断的要件(あるいは非機能要件) by AWS Lambda
46
ログ
メトリクス
AWS Lambda
Amazon CloudWatch
必要最低限から構築できる。
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 47
Amazon API Gateway AWS Lambda
Skinny jarでLambdaを動かすと
ColdStartが抑制される
Skinny jar
Skinny ja
Skinny
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 48
それでもFrameworkを使いたい。
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
まずはプリミティブな構成から考えていく
49
AWS SDK for Java
最小構成
https://docs.aws.amazon.com/ja_jp/sdk-for-java/v2/developer-guide
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
アイデアとしては、
50
AWS SDK for Java
最小構成 + compile-time DI
https://dagger.dev/
Dagger は完全に静的な,
compile-time
dependency injection
framework
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
run-time dependency injection
51
Warm StartCold Start
コンテナ
生成
パッケージ
ロード
パッケージ
展開
ランタイム
起動
初期化
関数・メソッド
起動
デプロイ
run-time
通常のDI
o constructor
o static field
o handler
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
compile-time dependency injection
52
Warm StartCold Start
コンテナ
生成
パッケージ
ロード
パッケージ
展開
ランタイム
起動
初期化
関数・メソッド
起動
デプロイ
compile-time
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 53
これで満足?
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
最近のFrameworkの規模感
54
出典 https://dmitrykornilov.net/2018/09/07/helidon-takes-flight/
やっぱり手慣れた
Spring Bootで開発したい!
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 55
Spring Boot を Lambdaにのせる
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 56
FAT jar
Skinny jar
アプリケーションロジック
依存ライブラリ
アプリケーションサーバー
AWS SDK for Java
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 57
アプリケーションロジック
依存ライブラリ
アプリケーションサーバー
Thin jar
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 58
Thin jar = ロジック +
− アプリケーションサーバー
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 59
aws-serverless-java-container
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
aws-serverless-java-container
60
https://github.com/awslabs/aws-serverless-java-container
コ
ー
ドは
こ
ち
ら
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 61
https://aws.amazon.com/blogs/opensource/java-apis-aws-lambda
導
入
方
法
は
こ
ち
ら
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
アプリデプロイ(抜粋)
62
git clone
mvn package
sam package
sam deploy
AWS SAM
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
aws-serverless-java-container
63
Amazon
API Gateway
AWS Lambda
クライアント
aws-serverless-java-container
Request
Response
Event
HttpServletRequest
HttpServletResponse
Return Value
Thin jar No App Server
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
置き換え可能
対応Framework
64
AWS Lambda
aws-serverless-java-container
Thin jar No App Server
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 65
マイクロフレームワークで高速化
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
最近のFrameworkの規模感(再掲)
66
出典 https://dmitrykornilov.net/2018/09/07/helidon-takes-flight/
マイクロフレームワーク
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 67
compile-time
dependency injection
と AOP
GraalVM
に対応
宣言的
リアクティブ
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 68
GraalVMについて
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
GraalVMの簡単な紹介
69
• Oracle が開発している新たな JVM。JDK8 の代⽤として利⽤できる。
• Java 以外の⾔語も取り扱える Polyglot な JVM で、⾔語間通信ができる。
• ネイティブコードをバイナリとして⽣成できる。
-> Lambda で利⽤することで、Java のコールドスタートの軽減が⾒込まれる。
• ※AWS Lambdaのカスタムランタイムを利⽤したランタイム実装はAWSサ
ポート対象外
• マイクロサービス向けの Java フレームワーク (Micronaut, Quarkus 等) と相
性が良い。
-> メモリのフットプリントを抑えることができる。
• ※Micronaut, QuarkusはAWSサポート対象外
• 2019/05/09 に GA し Twitter が本番環境で採⽤。Community Edition と
Enterprise Edition がある。
• Community Edition のライセンスはクラスパス例外付きの GPL v2.0。
-> OpenJDK 等と同様に、利⽤のみであれば GPL は適⽤されない。
• ※GraalVMはOracle製品であり、AWSサポート対象外
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
GraalVMの簡単な紹介
70
実行可能な環境
提供する言語
https://www.graalvm.org/docs/
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
GraalVMの仕組み
71
LLVM言語
インタプリタ言語
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
HotSpot VM - これまでの標準的な JVM 実装
72
HotSpot VM
C1 C2
Java Source Code
AOT Compile
Java Byte Code
JIT Compile
(パフォーマンスに影響する部分を動的コンパイル)
Interpreter 実⾏
Native Code
javac
・C1 :
素早い起動が求められる GUI アプリ向けの
JIT コンパイラ (クライアントアプリ向け)
・C2 :
⻑時間実⾏されるサーバーサイド向けの
JIT コンパイラ
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
GraalVM 全体図
73
HotSpot VM
C1 JVMCI
Java Source Code
AOT Compile
Java Byte Code
Interpreter 実⾏
javac
Graal
Source Code
(インタプリタ⾔語)
Source Code
(LLVM 対応⾔語)
Sulong
AST Compile
LLVM Compile Truffle AST
Truffle 互換
Compiler
JIT Compile
Substrate VM
静的コンパイル
Native Code
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
GraalVM 全体図
74
HotSpot VM
C1 JVMCI
Java Source Code
AOT Compile
Java Byte Code
Interpreter 実⾏
javac
Graal
Source Code
(インタプリタ⾔語)
Source Code
(LLVM 対応⾔語)
Sulong
AST Compile
LLVM Compile Truffle AST
Truffle 互換
Compiler
JIT Compile
Substrate VM
静的コンパイル
Native Code
・Truffle :
Graal がインタプリタ⾔語を解釈するために満
たすべき要件をまとめたフレームワーク。
・Truffle AST :
Graal が解釈可能なインタプリタ⾔語の構造化
形式。
・Sulong :
LLVM の Bitcode を Truffle AST に変換する
プログラム。
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
GraalVM 全体図
75
HotSpot VM
C1 JVMCI
Java Source Code
AOT Compile
Java Byte Code
Interpreter 実⾏
javac
Graal
Source Code
(インタプリタ⾔語)
Source Code
(LLVM 対応⾔語)
Sulong
AST Compile
LLVM Compile Truffle AST
Truffle 互換
Compiler
JIT Compile
Substrate VM
静的コンパイル
Native Code
・Graal :
JVMCI 経由で JIT コンパイルを⾏う Java ベースの
プログラム。
・JVMCI (JVM Compiler Interface) :
HotSpot VM の JIT コンパイル関連リソースにアク
セスするためのインタフェース。
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
GraalVM 全体図
76
HotSpot VM
C1 JVMCI
Java Source Code
AOT Compile
Java Byte Code
Interpreter 実⾏
javac
Graal
Source Code
(インタプリタ⾔語)
Source Code
(LLVM 対応⾔語)
Sulong
AST Compile
LLVM Compile Truffle AST
Truffle 互換
Compiler
JIT Compile
Substrate VM
静的コンパイル
Native Code
・Substrate VM :
実⾏可能なネイティブコードにコンパイルすることがで
きる。そのため、事前に Java のバイトコードをバイナ
リ化することができる。
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
GraalVM ✖ Micronaut を取り込む
77
Warm StartCold Start
コンテナ
生成
パッケージ
ロード
パッケージ
展開
ランタイム
起動
初期化
関数・メソッド
起動
デプロイ
compile-time
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
JVM起動不要なNativeカスタムランタイム
78
AWS Lambda
aws-serverless-java-container
Native
Modules
ランタイムでは
や、ビジネス固有
のロジックは、
Nativeとして
実行される。
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
GraalVM ✖ Micronaut のデプロイ(抜粋)
79
git clone
gradle compile
docker build
sam package
sam deploy
AWS SAM
https://github.com/awslabs/aws-serverless-java-container/tree/master/samples/micronaut/pet-store
javac GraalVM
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
GraalVM ✖ SpringBoot はできないの?
80
Warm StartCold Start
コンテナ
生成
パッケージ
ロード
パッケージ
展開
ランタイム
起動
初期化
関数・メソッド
起動
デプロイ
compile-time
GraalVMの制約により現在は困難。
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
GraalVMの制約
81
項目 サポート
Dynamic Class Loading / Unloading Not supported
Reflection Requires Configuration
Dynamic Proxy Requires Configuration
InvokeDynamic Bytecode and Method
Handles
Not supported
Finalizers Not supported
Security Manager Not supported
https://github.com/oracle/graal/blob/master/substratevm/LIMITATIONS.md
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 82
まとめ
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Javaでサービスを作る場合
83
モノリス マイクロサービス
• 開発サイクルを高速にまわしたい
• バックエンドリソースを効率よく使いたい
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Javaでマイクロサービスを作る場合
84
SpringBoot FAT jar AWS Lambda
• サーバーを管理したくない。
• スケールを管理したくない。
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
AWS Lambda のランタイムをJavaにする場合
85
FAT jar Skinny jar
• ColdStartを抑制したい。
• ロジックにフォーカスしたい。
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
AWS Lambdaで フレームワークを使う場合
86
Docker Container
aws-serverless-
java-container
• 既存のSpringBoot資産を活かしたい。
• エンジニアはSpringBootでの開発に慣れている。
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
aws-serverless-java-containerを使う場合
87
javacで
バイトコードに
GraalVMで
Nativeに
• ColdStartの遅延を解消したい。
• 開発コードに手を入れたくない
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
AWS Lambdaで GraalVM を使う場合
88
SpringBoot Micronaut
• GraalVM対応フレームワークにしたい。
• DI / AOPも対応したい。
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
AWS Lambda + JAVA で Serverless開発しましょう!!
89
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Thank you!
AWS Presents, Battle against Massive Load
using Your Super Sonic Lambda Function!
90
@_kensh

More Related Content

What's hot

マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!mosa siru
 
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design PatternAWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design PatternAmazon Web Services Japan
 
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話JustSystems Corporation
 
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかシリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかAtsushi Nakada
 
マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018
マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018
マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018Yusuke Suzuki
 
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをなAmazon Web Services Japan
 
AngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
AngularとSpring Bootで作るSPA + RESTful Web ServiceアプリケーションAngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
AngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーションssuser070fa9
 
20210526 AWS Expert Online マルチアカウント管理の基本
20210526 AWS Expert Online マルチアカウント管理の基本20210526 AWS Expert Online マルチアカウント管理の基本
20210526 AWS Expert Online マルチアカウント管理の基本Amazon Web Services Japan
 
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)Trainocate Japan, Ltd.
 
20190206 AWS Black Belt Online Seminar Amazon SageMaker Basic Session
20190206 AWS Black Belt Online Seminar Amazon SageMaker Basic Session20190206 AWS Black Belt Online Seminar Amazon SageMaker Basic Session
20190206 AWS Black Belt Online Seminar Amazon SageMaker Basic SessionAmazon Web Services Japan
 
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)NTT DATA Technology & Innovation
 
DynamoDBの初心者に伝えたい初めて触るときの勘所
DynamoDBの初心者に伝えたい初めて触るときの勘所DynamoDBの初心者に伝えたい初めて触るときの勘所
DynamoDBの初心者に伝えたい初めて触るときの勘所Ryo Sasaki
 
Redisの特徴と活用方法について
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法についてYuji Otani
 
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)NTT DATA OSS Professional Services
 
AWS Black Belt Online Seminar 2017 Amazon DynamoDB
AWS Black Belt Online Seminar 2017 Amazon DynamoDB AWS Black Belt Online Seminar 2017 Amazon DynamoDB
AWS Black Belt Online Seminar 2017 Amazon DynamoDB Amazon Web Services Japan
 
20190514 AWS Black Belt Online Seminar Amazon API Gateway
20190514 AWS Black Belt Online Seminar Amazon API Gateway 20190514 AWS Black Belt Online Seminar Amazon API Gateway
20190514 AWS Black Belt Online Seminar Amazon API Gateway Amazon Web Services Japan
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪Takuto Wada
 
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理NTT DATA Technology & Innovation
 

What's hot (20)

マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
 
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design PatternAWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
 
KeycloakでAPI認可に入門する
KeycloakでAPI認可に入門するKeycloakでAPI認可に入門する
KeycloakでAPI認可に入門する
 
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
 
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかシリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
 
マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018
マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018
マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018
 
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
 
AngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
AngularとSpring Bootで作るSPA + RESTful Web ServiceアプリケーションAngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
AngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
 
20210526 AWS Expert Online マルチアカウント管理の基本
20210526 AWS Expert Online マルチアカウント管理の基本20210526 AWS Expert Online マルチアカウント管理の基本
20210526 AWS Expert Online マルチアカウント管理の基本
 
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
 
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajpAt least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
 
20190206 AWS Black Belt Online Seminar Amazon SageMaker Basic Session
20190206 AWS Black Belt Online Seminar Amazon SageMaker Basic Session20190206 AWS Black Belt Online Seminar Amazon SageMaker Basic Session
20190206 AWS Black Belt Online Seminar Amazon SageMaker Basic Session
 
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)
 
DynamoDBの初心者に伝えたい初めて触るときの勘所
DynamoDBの初心者に伝えたい初めて触るときの勘所DynamoDBの初心者に伝えたい初めて触るときの勘所
DynamoDBの初心者に伝えたい初めて触るときの勘所
 
Redisの特徴と活用方法について
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法について
 
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
 
AWS Black Belt Online Seminar 2017 Amazon DynamoDB
AWS Black Belt Online Seminar 2017 Amazon DynamoDB AWS Black Belt Online Seminar 2017 Amazon DynamoDB
AWS Black Belt Online Seminar 2017 Amazon DynamoDB
 
20190514 AWS Black Belt Online Seminar Amazon API Gateway
20190514 AWS Black Belt Online Seminar Amazon API Gateway 20190514 AWS Black Belt Online Seminar Amazon API Gateway
20190514 AWS Black Belt Online Seminar Amazon API Gateway
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪
 
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
 

Similar to Serverless時代のJavaについて

20200728 AWS Black Belt Online Seminar What's New in Serverless
20200728 AWS Black Belt Online Seminar What's New in Serverless20200728 AWS Black Belt Online Seminar What's New in Serverless
20200728 AWS Black Belt Online Seminar What's New in ServerlessAmazon Web Services Japan
 
Management & Governance on AWS こんなこともできます
Management & Governance on AWS こんなこともできますManagement & Governance on AWS こんなこともできます
Management & Governance on AWS こんなこともできますAmazon Web Services Japan
 
20190410 AWS Black Belt Online Seminar Amazon Elastic Container Service for K...
20190410 AWS Black Belt Online Seminar Amazon Elastic Container Service for K...20190410 AWS Black Belt Online Seminar Amazon Elastic Container Service for K...
20190410 AWS Black Belt Online Seminar Amazon Elastic Container Service for K...Amazon Web Services Japan
 
[最新版は別にございます! Descriptionをご確認ください] AWS Black Belt Online Seminar AWS re:Inven...
[最新版は別にございます! Descriptionをご確認ください] AWS Black Belt Online Seminar AWS re:Inven...[最新版は別にございます! Descriptionをご確認ください] AWS Black Belt Online Seminar AWS re:Inven...
[最新版は別にございます! Descriptionをご確認ください] AWS Black Belt Online Seminar AWS re:Inven...Amazon Web Services Japan
 
[最新版(12/5 最新版) が別にございます! Descriptionをご確認ください] AWS Black Belt Online Seminar A...
[最新版(12/5 最新版) が別にございます! Descriptionをご確認ください] AWS Black Belt Online Seminar A...[最新版(12/5 最新版) が別にございます! Descriptionをご確認ください] AWS Black Belt Online Seminar A...
[最新版(12/5 最新版) が別にございます! Descriptionをご確認ください] AWS Black Belt Online Seminar A...Amazon Web Services Japan
 
【12/5 最新版】AWS Black Belt Online Seminar AWS re:Invent 2018 アップデート情報
【12/5 最新版】AWS Black Belt Online Seminar AWS re:Invent 2018 アップデート情報【12/5 最新版】AWS Black Belt Online Seminar AWS re:Invent 2018 アップデート情報
【12/5 最新版】AWS Black Belt Online Seminar AWS re:Invent 2018 アップデート情報Amazon Web Services Japan
 
AWS Black Belt Online Seminar 2018 AWS Well-Architected Framework
AWS Black Belt Online Seminar 2018 AWS Well-Architected FrameworkAWS Black Belt Online Seminar 2018 AWS Well-Architected Framework
AWS Black Belt Online Seminar 2018 AWS Well-Architected FrameworkAmazon Web Services Japan
 
"Kong Summit, Japan 2022" パートナーセッション:Kong on AWS で実現するスケーラブルな API 基盤の構築
"Kong Summit, Japan 2022" パートナーセッション:Kong on AWS で実現するスケーラブルな API 基盤の構築"Kong Summit, Japan 2022" パートナーセッション:Kong on AWS で実現するスケーラブルな API 基盤の構築
"Kong Summit, Japan 2022" パートナーセッション:Kong on AWS で実現するスケーラブルな API 基盤の構築Junji Nishihara
 
[CTO Night & Day 2019] CTO のための一歩進んだコンテナ入門 #ctonight
[CTO Night & Day 2019] CTO のための一歩進んだコンテナ入門 #ctonight[CTO Night & Day 2019] CTO のための一歩進んだコンテナ入門 #ctonight
[CTO Night & Day 2019] CTO のための一歩進んだコンテナ入門 #ctonightAmazon Web Services Japan
 
20180221 AWS Black Belt Online Seminar AWS Lambda@Edge
20180221 AWS Black Belt Online Seminar AWS Lambda@Edge20180221 AWS Black Belt Online Seminar AWS Lambda@Edge
20180221 AWS Black Belt Online Seminar AWS Lambda@EdgeAmazon Web Services Japan
 
20180613 AWS Black Belt Online Seminar AWS Cloud9 入門
20180613 AWS Black Belt Online Seminar AWS Cloud9 入門20180613 AWS Black Belt Online Seminar AWS Cloud9 入門
20180613 AWS Black Belt Online Seminar AWS Cloud9 入門Amazon Web Services Japan
 
20201118 AWS Black Belt Online Seminar 形で考えるサーバーレス設計 サーバーレスユースケースパターン解説
20201118 AWS Black Belt Online Seminar 形で考えるサーバーレス設計 サーバーレスユースケースパターン解説20201118 AWS Black Belt Online Seminar 形で考えるサーバーレス設計 サーバーレスユースケースパターン解説
20201118 AWS Black Belt Online Seminar 形で考えるサーバーレス設計 サーバーレスユースケースパターン解説Amazon Web Services Japan
 
(AWS DevOps祭り 2018) AWS Management Toolsサービスアプデートのご紹介
(AWS DevOps祭り 2018) AWS Management Toolsサービスアプデートのご紹介(AWS DevOps祭り 2018) AWS Management Toolsサービスアプデートのご紹介
(AWS DevOps祭り 2018) AWS Management Toolsサービスアプデートのご紹介Yukitaka Ohmura
 
20151030 オープンデータとセキュリティon aws
20151030 オープンデータとセキュリティon aws20151030 オープンデータとセキュリティon aws
20151030 オープンデータとセキュリティon awstakaoka susumu
 
AlexaのSmart HomeをAWSで作る方法
AlexaのSmart HomeをAWSで作る方法AlexaのSmart HomeをAWSで作る方法
AlexaのSmart HomeをAWSで作る方法Jun Ichikawa
 
IVS CTO Night And Day 2018 Winter - AWS Well-Architected Framework
IVS CTO Night And Day 2018 Winter - AWS Well-Architected Framework IVS CTO Night And Day 2018 Winter - AWS Well-Architected Framework
IVS CTO Night And Day 2018 Winter - AWS Well-Architected Framework Amazon Web Services Japan
 
20190619 AWS Black Belt Online Seminar Dive Deep into AWS Chalice
20190619 AWS Black Belt Online Seminar Dive Deep into AWS Chalice20190619 AWS Black Belt Online Seminar Dive Deep into AWS Chalice
20190619 AWS Black Belt Online Seminar Dive Deep into AWS ChaliceAmazon Web Services Japan
 
20190130 AWS Well-Architectedの活用方法とレビューの進め方をお伝えしていきたい
20190130 AWS Well-Architectedの活用方法とレビューの進め方をお伝えしていきたい20190130 AWS Well-Architectedの活用方法とレビューの進め方をお伝えしていきたい
20190130 AWS Well-Architectedの活用方法とレビューの進め方をお伝えしていきたいAmazon Web Services Japan
 

Similar to Serverless時代のJavaについて (20)

20200728 AWS Black Belt Online Seminar What's New in Serverless
20200728 AWS Black Belt Online Seminar What's New in Serverless20200728 AWS Black Belt Online Seminar What's New in Serverless
20200728 AWS Black Belt Online Seminar What's New in Serverless
 
Management & Governance on AWS こんなこともできます
Management & Governance on AWS こんなこともできますManagement & Governance on AWS こんなこともできます
Management & Governance on AWS こんなこともできます
 
20190410 AWS Black Belt Online Seminar Amazon Elastic Container Service for K...
20190410 AWS Black Belt Online Seminar Amazon Elastic Container Service for K...20190410 AWS Black Belt Online Seminar Amazon Elastic Container Service for K...
20190410 AWS Black Belt Online Seminar Amazon Elastic Container Service for K...
 
[最新版は別にございます! Descriptionをご確認ください] AWS Black Belt Online Seminar AWS re:Inven...
[最新版は別にございます! Descriptionをご確認ください] AWS Black Belt Online Seminar AWS re:Inven...[最新版は別にございます! Descriptionをご確認ください] AWS Black Belt Online Seminar AWS re:Inven...
[最新版は別にございます! Descriptionをご確認ください] AWS Black Belt Online Seminar AWS re:Inven...
 
[最新版(12/5 最新版) が別にございます! Descriptionをご確認ください] AWS Black Belt Online Seminar A...
[最新版(12/5 最新版) が別にございます! Descriptionをご確認ください] AWS Black Belt Online Seminar A...[最新版(12/5 最新版) が別にございます! Descriptionをご確認ください] AWS Black Belt Online Seminar A...
[最新版(12/5 最新版) が別にございます! Descriptionをご確認ください] AWS Black Belt Online Seminar A...
 
【12/5 最新版】AWS Black Belt Online Seminar AWS re:Invent 2018 アップデート情報
【12/5 最新版】AWS Black Belt Online Seminar AWS re:Invent 2018 アップデート情報【12/5 最新版】AWS Black Belt Online Seminar AWS re:Invent 2018 アップデート情報
【12/5 最新版】AWS Black Belt Online Seminar AWS re:Invent 2018 アップデート情報
 
AWS Black Belt Online Seminar 2018 AWS Well-Architected Framework
AWS Black Belt Online Seminar 2018 AWS Well-Architected FrameworkAWS Black Belt Online Seminar 2018 AWS Well-Architected Framework
AWS Black Belt Online Seminar 2018 AWS Well-Architected Framework
 
"Kong Summit, Japan 2022" パートナーセッション:Kong on AWS で実現するスケーラブルな API 基盤の構築
"Kong Summit, Japan 2022" パートナーセッション:Kong on AWS で実現するスケーラブルな API 基盤の構築"Kong Summit, Japan 2022" パートナーセッション:Kong on AWS で実現するスケーラブルな API 基盤の構築
"Kong Summit, Japan 2022" パートナーセッション:Kong on AWS で実現するスケーラブルな API 基盤の構築
 
[CTO Night & Day 2019] CTO のための一歩進んだコンテナ入門 #ctonight
[CTO Night & Day 2019] CTO のための一歩進んだコンテナ入門 #ctonight[CTO Night & Day 2019] CTO のための一歩進んだコンテナ入門 #ctonight
[CTO Night & Day 2019] CTO のための一歩進んだコンテナ入門 #ctonight
 
AWS All Stars ~Lightning Talks x 13~
AWS All Stars ~Lightning Talks x 13~AWS All Stars ~Lightning Talks x 13~
AWS All Stars ~Lightning Talks x 13~
 
20180221 AWS Black Belt Online Seminar AWS Lambda@Edge
20180221 AWS Black Belt Online Seminar AWS Lambda@Edge20180221 AWS Black Belt Online Seminar AWS Lambda@Edge
20180221 AWS Black Belt Online Seminar AWS Lambda@Edge
 
20180613 AWS Black Belt Online Seminar AWS Cloud9 入門
20180613 AWS Black Belt Online Seminar AWS Cloud9 入門20180613 AWS Black Belt Online Seminar AWS Cloud9 入門
20180613 AWS Black Belt Online Seminar AWS Cloud9 入門
 
AWS Black Belt Online Seminar AWS Amplify
AWS Black Belt Online Seminar AWS AmplifyAWS Black Belt Online Seminar AWS Amplify
AWS Black Belt Online Seminar AWS Amplify
 
20201118 AWS Black Belt Online Seminar 形で考えるサーバーレス設計 サーバーレスユースケースパターン解説
20201118 AWS Black Belt Online Seminar 形で考えるサーバーレス設計 サーバーレスユースケースパターン解説20201118 AWS Black Belt Online Seminar 形で考えるサーバーレス設計 サーバーレスユースケースパターン解説
20201118 AWS Black Belt Online Seminar 形で考えるサーバーレス設計 サーバーレスユースケースパターン解説
 
(AWS DevOps祭り 2018) AWS Management Toolsサービスアプデートのご紹介
(AWS DevOps祭り 2018) AWS Management Toolsサービスアプデートのご紹介(AWS DevOps祭り 2018) AWS Management Toolsサービスアプデートのご紹介
(AWS DevOps祭り 2018) AWS Management Toolsサービスアプデートのご紹介
 
20151030 オープンデータとセキュリティon aws
20151030 オープンデータとセキュリティon aws20151030 オープンデータとセキュリティon aws
20151030 オープンデータとセキュリティon aws
 
AlexaのSmart HomeをAWSで作る方法
AlexaのSmart HomeをAWSで作る方法AlexaのSmart HomeをAWSで作る方法
AlexaのSmart HomeをAWSで作る方法
 
IVS CTO Night And Day 2018 Winter - AWS Well-Architected Framework
IVS CTO Night And Day 2018 Winter - AWS Well-Architected Framework IVS CTO Night And Day 2018 Winter - AWS Well-Architected Framework
IVS CTO Night And Day 2018 Winter - AWS Well-Architected Framework
 
20190619 AWS Black Belt Online Seminar Dive Deep into AWS Chalice
20190619 AWS Black Belt Online Seminar Dive Deep into AWS Chalice20190619 AWS Black Belt Online Seminar Dive Deep into AWS Chalice
20190619 AWS Black Belt Online Seminar Dive Deep into AWS Chalice
 
20190130 AWS Well-Architectedの活用方法とレビューの進め方をお伝えしていきたい
20190130 AWS Well-Architectedの活用方法とレビューの進め方をお伝えしていきたい20190130 AWS Well-Architectedの活用方法とレビューの進め方をお伝えしていきたい
20190130 AWS Well-Architectedの活用方法とレビューの進め方をお伝えしていきたい
 

More from Amazon Web Services Japan

202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)
202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)
202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)Amazon Web Services Japan
 
202205 AWS Black Belt Online Seminar Amazon FSx for OpenZFS
202205 AWS Black Belt Online Seminar Amazon FSx for OpenZFS202205 AWS Black Belt Online Seminar Amazon FSx for OpenZFS
202205 AWS Black Belt Online Seminar Amazon FSx for OpenZFSAmazon Web Services Japan
 
202204 AWS Black Belt Online Seminar AWS IoT Device Defender
202204 AWS Black Belt Online Seminar AWS IoT Device Defender202204 AWS Black Belt Online Seminar AWS IoT Device Defender
202204 AWS Black Belt Online Seminar AWS IoT Device DefenderAmazon Web Services Japan
 
202204 AWS Black Belt Online Seminar Amazon Connect を活用したオンコール対応の実現
202204 AWS Black Belt Online Seminar Amazon Connect を活用したオンコール対応の実現202204 AWS Black Belt Online Seminar Amazon Connect を活用したオンコール対応の実現
202204 AWS Black Belt Online Seminar Amazon Connect を活用したオンコール対応の実現Amazon Web Services Japan
 
202204 AWS Black Belt Online Seminar Amazon Connect Salesforce連携(第1回 CTI Adap...
202204 AWS Black Belt Online Seminar Amazon Connect Salesforce連携(第1回 CTI Adap...202204 AWS Black Belt Online Seminar Amazon Connect Salesforce連携(第1回 CTI Adap...
202204 AWS Black Belt Online Seminar Amazon Connect Salesforce連携(第1回 CTI Adap...Amazon Web Services Japan
 
Amazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデート
Amazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデートAmazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデート
Amazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデートAmazon Web Services Japan
 
20220409 AWS BLEA 開発にあたって検討したこと
20220409 AWS BLEA 開発にあたって検討したこと20220409 AWS BLEA 開発にあたって検討したこと
20220409 AWS BLEA 開発にあたって検討したことAmazon Web Services Japan
 
202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用
202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用
202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用Amazon Web Services Japan
 
202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf
202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf
202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdfAmazon Web Services Japan
 
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介Amazon Web Services Japan
 
Amazon QuickSight の組み込み方法をちょっぴりDD
Amazon QuickSight の組み込み方法をちょっぴりDDAmazon QuickSight の組み込み方法をちょっぴりDD
Amazon QuickSight の組み込み方法をちょっぴりDDAmazon Web Services Japan
 
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチAmazon Web Services Japan
 
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介Amazon Web Services Japan
 
202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles
202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles
202202 AWS Black Belt Online Seminar Amazon Connect Customer ProfilesAmazon Web Services Japan
 
Amazon Game Tech Night #24 KPIダッシュボードを最速で用意するために
Amazon Game Tech Night #24 KPIダッシュボードを最速で用意するためにAmazon Game Tech Night #24 KPIダッシュボードを最速で用意するために
Amazon Game Tech Night #24 KPIダッシュボードを最速で用意するためにAmazon Web Services Japan
 
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨Amazon Web Services Japan
 
[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介
[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介
[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介Amazon Web Services Japan
 
202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介
202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介
202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介Amazon Web Services Japan
 
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...Amazon Web Services Japan
 
202112 AWS Black Belt Online Seminar 店内の「今」をお届けする小売業向けリアルタイム配信基盤のレシピ
202112 AWS Black Belt Online Seminar 店内の「今」をお届けする小売業向けリアルタイム配信基盤のレシピ202112 AWS Black Belt Online Seminar 店内の「今」をお届けする小売業向けリアルタイム配信基盤のレシピ
202112 AWS Black Belt Online Seminar 店内の「今」をお届けする小売業向けリアルタイム配信基盤のレシピAmazon Web Services Japan
 

More from Amazon Web Services Japan (20)

202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)
202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)
202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)
 
202205 AWS Black Belt Online Seminar Amazon FSx for OpenZFS
202205 AWS Black Belt Online Seminar Amazon FSx for OpenZFS202205 AWS Black Belt Online Seminar Amazon FSx for OpenZFS
202205 AWS Black Belt Online Seminar Amazon FSx for OpenZFS
 
202204 AWS Black Belt Online Seminar AWS IoT Device Defender
202204 AWS Black Belt Online Seminar AWS IoT Device Defender202204 AWS Black Belt Online Seminar AWS IoT Device Defender
202204 AWS Black Belt Online Seminar AWS IoT Device Defender
 
202204 AWS Black Belt Online Seminar Amazon Connect を活用したオンコール対応の実現
202204 AWS Black Belt Online Seminar Amazon Connect を活用したオンコール対応の実現202204 AWS Black Belt Online Seminar Amazon Connect を活用したオンコール対応の実現
202204 AWS Black Belt Online Seminar Amazon Connect を活用したオンコール対応の実現
 
202204 AWS Black Belt Online Seminar Amazon Connect Salesforce連携(第1回 CTI Adap...
202204 AWS Black Belt Online Seminar Amazon Connect Salesforce連携(第1回 CTI Adap...202204 AWS Black Belt Online Seminar Amazon Connect Salesforce連携(第1回 CTI Adap...
202204 AWS Black Belt Online Seminar Amazon Connect Salesforce連携(第1回 CTI Adap...
 
Amazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデート
Amazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデートAmazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデート
Amazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデート
 
20220409 AWS BLEA 開発にあたって検討したこと
20220409 AWS BLEA 開発にあたって検討したこと20220409 AWS BLEA 開発にあたって検討したこと
20220409 AWS BLEA 開発にあたって検討したこと
 
202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用
202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用
202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用
 
202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf
202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf
202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf
 
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
 
Amazon QuickSight の組み込み方法をちょっぴりDD
Amazon QuickSight の組み込み方法をちょっぴりDDAmazon QuickSight の組み込み方法をちょっぴりDD
Amazon QuickSight の組み込み方法をちょっぴりDD
 
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
 
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
 
202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles
202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles
202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles
 
Amazon Game Tech Night #24 KPIダッシュボードを最速で用意するために
Amazon Game Tech Night #24 KPIダッシュボードを最速で用意するためにAmazon Game Tech Night #24 KPIダッシュボードを最速で用意するために
Amazon Game Tech Night #24 KPIダッシュボードを最速で用意するために
 
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨
 
[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介
[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介
[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介
 
202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介
202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介
202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介
 
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...
 
202112 AWS Black Belt Online Seminar 店内の「今」をお届けする小売業向けリアルタイム配信基盤のレシピ
202112 AWS Black Belt Online Seminar 店内の「今」をお届けする小売業向けリアルタイム配信基盤のレシピ202112 AWS Black Belt Online Seminar 店内の「今」をお届けする小売業向けリアルタイム配信基盤のレシピ
202112 AWS Black Belt Online Seminar 店内の「今」をお届けする小売業向けリアルタイム配信基盤のレシピ
 

Recently uploaded

CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 

Recently uploaded (9)

CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 

Serverless時代のJavaについて

  • 1. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Serverless時代の Javaについて AWS Presents, Battle against Massive Load using Your Super Sonic Lambda Function! 1 @_kensh Kensuke Shimokawa Amazon Web Services Japan
  • 2. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Who? 2 •Name • 下川 賢介 • Kensuke Shimokawa •Company • Amazon Web Services Japan •Role • Serverless Specialist Solutions Architect @_kensh
  • 3. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. agenda 3 •Serverless って何ですか? •Serverless Java チューニング •まとめ
  • 4. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 4 Serverless って何ですか?
  • 5. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon では、、、 モノリス 2001 2002 マイクロサービス + 2 ピザルール
  • 6. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 役割の違い モノリス (全てを担当) マイクロサービス (単一機能を担当)
  • 7. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. マイクロサービス アーキテクチャの例 7
  • 8. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 8 マイクロサービスの特徴
  • 9. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. モノリスのデリバリーパイプライン 9 開発者 サービス デリバリーパイプライン
  • 10. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. マイクロサービスのデリバリーパイプライン 10 開発者 サービス デリバリーパイプライン
  • 11. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. モノリスのスケール 11
  • 12. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. マイクロサービス のスケール 12
  • 13. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 13 Javaでマイクロサービスというと SpringBoot ですよね?
  • 14. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 起動に時間がかかる? (本日の主題でもある) 14 • コンテナやServerlessは素早くスケールさせたい。 • ポイントは適度に⼩さい単位への分割 • → よりライトウエイトに、よりロジックだけに • → プレーンなJavaに • → 定型機能は特化型フレームワークで AWS Lambda + Java という選択肢はどうですか?
  • 15. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 15 HTTPS event Amazon API Gateway AWS Lambda Serverlessにするとマイクロサービスが作りやすい
  • 16. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 16 サービスで考慮すること
  • 17. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. サービス運用者の気持ち 17 インフラを 管理したくない サービスを スケールさせたい コスト効率を上げたい 高可用性や セキュリティ要件 を満たしたい
  • 18. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 18 AWS Lambdaについて
  • 19. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. AWS Lambda 19
  • 20. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. (注意)Java Lambda Expressionのことではありません! 20 () -> System.out.println("Zero parameter lambda");
  • 21. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. AWS Lambda 21 インフラの プロビジョニング不要 自動でスケール 使った分だけの お支払い 高可用性かつ安全
  • 22. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 22 WEBサーバー アプリケーション サーバー HTTPS HTTP これまでの環境
  • 23. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 23 HTTPS event Amazon API Gateway AWS Lambda Serverlessにすると ロジック ロジック ロジック
  • 24. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 動作の仕組み 24 f(x) = {…} 呼び出し元 処理対象 例・API呼び出し ・データ変更イベント ・ファイル配置イベント… 例・DBアクセス ・ファイル出力 ・別の処理を呼び出し… 負荷に応じて 処理を多重化 リソース管理 リトライ ログ出力 g(x) = {…} h(x) = {…}
  • 25. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Sample Code 25 package example; import example.Event; import example.Response; import com.amazonaws.services.lambda.runtime.Context; public class Handler { public Response myHandler(Event event, Context context) { Response response = new Response(); String json = getJsonResponse(event); response.setBody(json); response.setStatusCode(200); return response; } } 完全修飾クラス名::メソッド名
  • 26. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Sample Code 26 この関数を呼び 出すサービス Runtime言語の指定 Java 11 も選択可能 完全修飾クラス名::メソッド名
  • 27. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 実はJava以外のRuntimeも利用できます。 27
  • 28. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 28 ColdStart について
  • 29. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 29 Amazon API Gateway AWS Lambda ColdStart と WarmStart ① ① ① ColdStart ② ② ② ColdStart
  • 30. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 30 Amazon API Gateway AWS Lambda ColdStart と WarmStart ③ ③ ③ WarmStart ② ② ② ColdStart 3 requests, 2 concurrency
  • 31. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 31 でも、ColdStartってJavaだけ?
  • 32. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. ColdStartを強制的に発生させる 32 for i in {1..100} do serverless deploy -f hello --force > /dev/null curl -s -o /dev/null ¥ -w "%{time_starttransfer}¥n” <API URL> done
  • 33. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 33 Serverless Java チューニング
  • 34. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Lambda の Life Cycle 34 Warm StartCold Start コンテナ 生成 パッケージ ロード パッケージ 展開 ランタイム 起動 初期化 関数・メソッド 起動 デプロイ
  • 35. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Lambda の Life Cycle 35 Warm StartCold Start コンテナ 生成 パッケージ ロード パッケージ 展開 ランタイム 起動 初期化 関数・メソッド 起動 デプロイ Zipサイズ最小化 遅延ロード 依存最小化
  • 36. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 不要ライブラリを依存から排除 (Zipサイズ最小化+依存最小化) 36 dependencies { runtimeOnly group: 'org.springframework’, name: 'spring-core', version: '2.5' runtimeOnly 'org.springframework:spring-core:2.5', 'org.springframework:spring-aop:2.5' runtimeOnly( [group: 'org.springframework', name: 'spring-core', version: '2.5'], [group: 'org.springframework', name: 'spring-aop', version: '2.5'] ) runtimeOnly('org.hibernate:hibernate:3.0.5') { transitive = true } runtimeOnly group: 'org.hibernate', name: 'hibernate', version: '3.0.5’, transitive: true runtimeOnly(group: 'org.hibernate', name: 'hibernate', version: '3.0.5') { transitive = true } (snip) 少なくする
  • 37. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. プレーンJavaで書く(さらに、Zipサイズ最小化) 37 public class Handler { public Response myHandler(Map<String, Object> event, Context context) { Response response = new Response(); String json = getJsonResponse(event); response.setBody(json); response.setStatusCode(200); return response; } }
  • 38. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. AWS Lambdaのベストプラクティス 38 https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/best-practices.html
  • 39. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 39 プレーンJavaでは機能横断的な 要件を満たせないのでは?
  • 40. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 機能横断的要件(あるいは非機能要件)
  • 41. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 機能横断的要件(あるいは非機能要件) by Spring Boot 41 Spring Boot Actuator ログ Spring Security 認証認可 Layer7攻撃対策 パスワードポリシーメトリクス トレース FAT jar
  • 42. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 42 Amazon API Gateway AWS Lambda FAT jarでLambdaを動かそうとすると FAT jar FAT jar FAT jar ColdStart Latencyが増大
  • 43. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Jarを痩せ細らせたい 43 FAT jar Skinny jar アプリケーションロジック 依存ライブラリ アプリケーションサーバー
  • 44. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 機能横断的要件(あるいは非機能要件) by AWS Lambda 44 ログ 認証認可 Layer7攻撃対策 パスワードポリシーメトリクス トレース Skinny jar AWS X-Ray AWS WAFAWS Lambda Amazon CloudWatch Amazon Cognito Amazon API Gateway ロジック
  • 45. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 45 You aren't gonna need it 最初から機能追加すべきではない。 Martin Fowler YAGNI
  • 46. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 機能横断的要件(あるいは非機能要件) by AWS Lambda 46 ログ メトリクス AWS Lambda Amazon CloudWatch 必要最低限から構築できる。
  • 47. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 47 Amazon API Gateway AWS Lambda Skinny jarでLambdaを動かすと ColdStartが抑制される Skinny jar Skinny ja Skinny
  • 48. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 48 それでもFrameworkを使いたい。
  • 49. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. まずはプリミティブな構成から考えていく 49 AWS SDK for Java 最小構成 https://docs.aws.amazon.com/ja_jp/sdk-for-java/v2/developer-guide
  • 50. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. アイデアとしては、 50 AWS SDK for Java 最小構成 + compile-time DI https://dagger.dev/ Dagger は完全に静的な, compile-time dependency injection framework
  • 51. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. run-time dependency injection 51 Warm StartCold Start コンテナ 生成 パッケージ ロード パッケージ 展開 ランタイム 起動 初期化 関数・メソッド 起動 デプロイ run-time 通常のDI o constructor o static field o handler
  • 52. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. compile-time dependency injection 52 Warm StartCold Start コンテナ 生成 パッケージ ロード パッケージ 展開 ランタイム 起動 初期化 関数・メソッド 起動 デプロイ compile-time
  • 53. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 53 これで満足?
  • 54. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 最近のFrameworkの規模感 54 出典 https://dmitrykornilov.net/2018/09/07/helidon-takes-flight/ やっぱり手慣れた Spring Bootで開発したい!
  • 55. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 55 Spring Boot を Lambdaにのせる
  • 56. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 56 FAT jar Skinny jar アプリケーションロジック 依存ライブラリ アプリケーションサーバー AWS SDK for Java
  • 57. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 57 アプリケーションロジック 依存ライブラリ アプリケーションサーバー Thin jar
  • 58. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 58 Thin jar = ロジック + − アプリケーションサーバー
  • 59. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 59 aws-serverless-java-container
  • 60. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. aws-serverless-java-container 60 https://github.com/awslabs/aws-serverless-java-container コ ー ドは こ ち ら
  • 61. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 61 https://aws.amazon.com/blogs/opensource/java-apis-aws-lambda 導 入 方 法 は こ ち ら
  • 62. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. アプリデプロイ(抜粋) 62 git clone mvn package sam package sam deploy AWS SAM
  • 63. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. aws-serverless-java-container 63 Amazon API Gateway AWS Lambda クライアント aws-serverless-java-container Request Response Event HttpServletRequest HttpServletResponse Return Value Thin jar No App Server
  • 64. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 置き換え可能 対応Framework 64 AWS Lambda aws-serverless-java-container Thin jar No App Server
  • 65. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 65 マイクロフレームワークで高速化
  • 66. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 最近のFrameworkの規模感(再掲) 66 出典 https://dmitrykornilov.net/2018/09/07/helidon-takes-flight/ マイクロフレームワーク
  • 67. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 67 compile-time dependency injection と AOP GraalVM に対応 宣言的 リアクティブ
  • 68. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 68 GraalVMについて
  • 69. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. GraalVMの簡単な紹介 69 • Oracle が開発している新たな JVM。JDK8 の代⽤として利⽤できる。 • Java 以外の⾔語も取り扱える Polyglot な JVM で、⾔語間通信ができる。 • ネイティブコードをバイナリとして⽣成できる。 -> Lambda で利⽤することで、Java のコールドスタートの軽減が⾒込まれる。 • ※AWS Lambdaのカスタムランタイムを利⽤したランタイム実装はAWSサ ポート対象外 • マイクロサービス向けの Java フレームワーク (Micronaut, Quarkus 等) と相 性が良い。 -> メモリのフットプリントを抑えることができる。 • ※Micronaut, QuarkusはAWSサポート対象外 • 2019/05/09 に GA し Twitter が本番環境で採⽤。Community Edition と Enterprise Edition がある。 • Community Edition のライセンスはクラスパス例外付きの GPL v2.0。 -> OpenJDK 等と同様に、利⽤のみであれば GPL は適⽤されない。 • ※GraalVMはOracle製品であり、AWSサポート対象外
  • 70. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. GraalVMの簡単な紹介 70 実行可能な環境 提供する言語 https://www.graalvm.org/docs/
  • 71. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. GraalVMの仕組み 71 LLVM言語 インタプリタ言語
  • 72. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. HotSpot VM - これまでの標準的な JVM 実装 72 HotSpot VM C1 C2 Java Source Code AOT Compile Java Byte Code JIT Compile (パフォーマンスに影響する部分を動的コンパイル) Interpreter 実⾏ Native Code javac ・C1 : 素早い起動が求められる GUI アプリ向けの JIT コンパイラ (クライアントアプリ向け) ・C2 : ⻑時間実⾏されるサーバーサイド向けの JIT コンパイラ
  • 73. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. GraalVM 全体図 73 HotSpot VM C1 JVMCI Java Source Code AOT Compile Java Byte Code Interpreter 実⾏ javac Graal Source Code (インタプリタ⾔語) Source Code (LLVM 対応⾔語) Sulong AST Compile LLVM Compile Truffle AST Truffle 互換 Compiler JIT Compile Substrate VM 静的コンパイル Native Code
  • 74. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. GraalVM 全体図 74 HotSpot VM C1 JVMCI Java Source Code AOT Compile Java Byte Code Interpreter 実⾏ javac Graal Source Code (インタプリタ⾔語) Source Code (LLVM 対応⾔語) Sulong AST Compile LLVM Compile Truffle AST Truffle 互換 Compiler JIT Compile Substrate VM 静的コンパイル Native Code ・Truffle : Graal がインタプリタ⾔語を解釈するために満 たすべき要件をまとめたフレームワーク。 ・Truffle AST : Graal が解釈可能なインタプリタ⾔語の構造化 形式。 ・Sulong : LLVM の Bitcode を Truffle AST に変換する プログラム。
  • 75. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. GraalVM 全体図 75 HotSpot VM C1 JVMCI Java Source Code AOT Compile Java Byte Code Interpreter 実⾏ javac Graal Source Code (インタプリタ⾔語) Source Code (LLVM 対応⾔語) Sulong AST Compile LLVM Compile Truffle AST Truffle 互換 Compiler JIT Compile Substrate VM 静的コンパイル Native Code ・Graal : JVMCI 経由で JIT コンパイルを⾏う Java ベースの プログラム。 ・JVMCI (JVM Compiler Interface) : HotSpot VM の JIT コンパイル関連リソースにアク セスするためのインタフェース。
  • 76. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. GraalVM 全体図 76 HotSpot VM C1 JVMCI Java Source Code AOT Compile Java Byte Code Interpreter 実⾏ javac Graal Source Code (インタプリタ⾔語) Source Code (LLVM 対応⾔語) Sulong AST Compile LLVM Compile Truffle AST Truffle 互換 Compiler JIT Compile Substrate VM 静的コンパイル Native Code ・Substrate VM : 実⾏可能なネイティブコードにコンパイルすることがで きる。そのため、事前に Java のバイトコードをバイナ リ化することができる。
  • 77. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. GraalVM ✖ Micronaut を取り込む 77 Warm StartCold Start コンテナ 生成 パッケージ ロード パッケージ 展開 ランタイム 起動 初期化 関数・メソッド 起動 デプロイ compile-time
  • 78. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. JVM起動不要なNativeカスタムランタイム 78 AWS Lambda aws-serverless-java-container Native Modules ランタイムでは や、ビジネス固有 のロジックは、 Nativeとして 実行される。
  • 79. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. GraalVM ✖ Micronaut のデプロイ(抜粋) 79 git clone gradle compile docker build sam package sam deploy AWS SAM https://github.com/awslabs/aws-serverless-java-container/tree/master/samples/micronaut/pet-store javac GraalVM
  • 80. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. GraalVM ✖ SpringBoot はできないの? 80 Warm StartCold Start コンテナ 生成 パッケージ ロード パッケージ 展開 ランタイム 起動 初期化 関数・メソッド 起動 デプロイ compile-time GraalVMの制約により現在は困難。
  • 81. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. GraalVMの制約 81 項目 サポート Dynamic Class Loading / Unloading Not supported Reflection Requires Configuration Dynamic Proxy Requires Configuration InvokeDynamic Bytecode and Method Handles Not supported Finalizers Not supported Security Manager Not supported https://github.com/oracle/graal/blob/master/substratevm/LIMITATIONS.md
  • 82. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 82 まとめ
  • 83. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Javaでサービスを作る場合 83 モノリス マイクロサービス • 開発サイクルを高速にまわしたい • バックエンドリソースを効率よく使いたい
  • 84. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Javaでマイクロサービスを作る場合 84 SpringBoot FAT jar AWS Lambda • サーバーを管理したくない。 • スケールを管理したくない。
  • 85. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. AWS Lambda のランタイムをJavaにする場合 85 FAT jar Skinny jar • ColdStartを抑制したい。 • ロジックにフォーカスしたい。
  • 86. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. AWS Lambdaで フレームワークを使う場合 86 Docker Container aws-serverless- java-container • 既存のSpringBoot資産を活かしたい。 • エンジニアはSpringBootでの開発に慣れている。
  • 87. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. aws-serverless-java-containerを使う場合 87 javacで バイトコードに GraalVMで Nativeに • ColdStartの遅延を解消したい。 • 開発コードに手を入れたくない
  • 88. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. AWS Lambdaで GraalVM を使う場合 88 SpringBoot Micronaut • GraalVM対応フレームワークにしたい。 • DI / AOPも対応したい。
  • 89. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. AWS Lambda + JAVA で Serverless開発しましょう!! 89
  • 90. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Thank you! AWS Presents, Battle against Massive Load using Your Super Sonic Lambda Function! 90 @_kensh