AWS版のSpringBoot?
「AWS Elastic Beanstalk」、
と「AWS Lambda」のご紹介
JJUG CCC ナイトセミナー 2016/3/22
• 名前:片山 暁雄
• 所属:株式会社ソラコム
• 担当 : SIM製造
• ID: @c9katayama
AWS Elastic Beanstalk
•AWSにおける典型的なシステム環境
を一発で構成するためのサービス
AWS Elastic Beanstalkとは
選べる2つの環境
ウェブサーバ環境 ワーカー環境
SQSELB
EC2
Auto
Scaling
Auto
Scaling
EC2
CloudWatch
デプロイ管理
Route53
S3
共通機能
• デプロイ管理
• ヘルスチェック&回復
• モニタリング/通知
• ログ管理
• アプリバージョン管理
• ローリングデプロイ
• インスタンスの回復
• プロセス監視/回復
CloudWatch
デプロイ管理
Route53
S3
• CPU/Networkなどのstats
• HTTPリクエスト
• リクエスト数
• エラー数
• SNS経由の通知
• ログ取得
• ログローテーション
Webサーバ環境
ELB
EC2
Auto
Scaling
• 負荷分散
• ロードバランシング
• オートスケーリング
• 環境の自動構築
• URLスワップ
• Blue/GreenデプロイメントCloudWatch
デプロイ管理
Route53
S3
ワーカー環境
• 負荷分散
• オートスケーリング
• 環境の自動構築
• URLスワップ
• Blue/Greenデプロイメント
• SQSマネージャー
• SQSのメッセージをPOSTに
変換
CloudWatch
デプロイ管理
Route53
S3
SQS
Auto
Scaling
EC2
•Java 7,8
•Tomcat 6,7,8
•Java 6,7,8
•GlassFish 4.0,4.1(on Docker)
•Java7,8
•Docker / MultiContainer-Docker
• Node.js / Ruby / Python / PHP / Go
サポートされるアプリケーション動作環境
Beanstalkは
ボンネットを開けられる
いわゆる「PaaS」とは少し異なる
(AWS公式見解)
いわゆる「PaaS」とは少し異なる
Javaアプリケーション Javaアプリケーション
よくあるPaaS Beanstalk
PaaS
•SpringBoot
•Springのベストプラクティスを一発で設定
•気に入らない所は変更可能
•個別コンポーネントに手を入れられる
•Elastic Beanstalk
•AWSのベストプラクティスを一発で設定
•気に入らない所は変更可能
•個別コンポーネントに手を入れられる
自分のVPCで起動可能
Oracle RDS
MySQL RDS
普通の
EC2
•豊富なJava動作環境
•選べる環境(Webとワーカー)
•他のAWSサービスとの連携は抜群
•BeanstalkはAWS版SpringBoot
まとめ
AWS Lambda
呼び出された時だけ処理が実行/課金される
イベント駆動型のサービス
• AWSサービスのイベントきっかけで呼び出す
• 直接呼び出す(アプリケーションから)
• スケジュール呼び出し
AWS Lambda
イベント
AWSLambda.
addEventHandler(
(param,context)->{//処理}
);
• データがS3に格納された時にLambdaで加工する
• データ変更の履歴の記録
• DBレコード変更のイベント時に履歴テーブルに記録
• 変更時を顧客に通知
• 定期的な処理
• DB上の数値を集計してSlackにpost
• 定期的に値を確認して有効でないデータを削除する
利用例
利用料金
•Java8
•SpringももちろんOK
• Node.js
• Python
使える言語
ライブラリの設定
compile(“com.amazonaws:aws-java-sdk-lambda: XXX")
開発
import com.amazonaws.services.lambda.runtime.Context;
public class LambdaMain {
public String handle(Map param,Context context) {
return "";
}
コードの実装
Jackson デシリアライズ
デプロイ
・ZIPを作ってアップロード
・エンドリポイントのpublicメソッドを指定
・メモリ量とタイムアウトを指定
・呼び出し元の設定
全部SDKでもできます
•AWSの各種サービスのイベントで発火する
•自分のVPC(プライベートネットワーク)で起
動可能
AWS Lambdaの利点
自分のVPCで起動可能
Oracle RDS
MySQL RDS
Lambda
•AWS Lambdaはイベント駆動型
•実行環境は気にしない/触らない
•使ったら使った分だけの課金
•他のAWSサービスとの連携は抜群
まとめ
• AWS Lambda Javaのパフォーマンスについて(セロさん)
• http://d.hatena.ne.jp/cero-t/20160106/1452090214
• AWS Lamba Javaの例外処理について
• http://qiita.com/c9katayama/items/b9a30cdfaaa91cba23ad
• AWS LambdaのVPCアクセスに関して(西谷さん)
• http://qiita.com/Keisuke69/items/1d84684f0511a062e968
• AWS Lambda JavaでJruby
• http://qiita.com/c9katayama/items/653e10ce32aa3036418d
リソース
宣伝その1
SORACOM ユーザーグループ
4/6 19:00- @SAPジャパン
宣伝その2
Software Design 5月号
4/18 発売
「SORACOM Air
SD Special Version」
が付属!
AWS Elastic BeanstalkとAWS Lambdaのご紹介

AWS Elastic BeanstalkとAWS Lambdaのご紹介