aws elastic beanstalkとaws lambdaのご紹介

32
AWS 版版 SpringBoot? AWS Elastic Beanstalk 」、 AWS Lambda 版版版版 JJUG CCC ナナナナナナナ 2016/3/22

Upload: akio-katayama

Post on 15-Apr-2017

1.822 views

Category:

Technology


5 download

TRANSCRIPT

AWS版の SpringBoot?「 AWS Elastic Beanstalk」、

と「 AWS Lambda 」のご紹介

JJUG CCC ナイトセミナー 2016/3/22

• 名前:片山 暁雄• 所属:株式会社ソラコム• 担当 : SIM 製造• ID: @c9katayama

AWS Elastic Beanstalk

•AWS における典型的なシステム環境を一発で構成するためのサービス

AWS Elastic Beanstalk とは

選べる2つの環境

ウェブサーバ環境 ワーカー環境SQSELB

EC2Auto

ScalingAuto

Scaling

EC2CloudWatch

デプロイ管理

Route53

S3

共通機能• デプロイ管理• ヘルスチェック & 回復• モニタリング / 通知• ログ管理

• アプリバージョン管理• ローリングデプロイ• インスタンスの回復• プロセス監視 / 回復

CloudWatch

デプロイ管理

Route53

S3

• CPU/Network などの stats• HTTP リクエスト• リクエスト数• エラー数

• SNS 経由の通知• ログ取得• ログローテーション

Web サーバ環境

ELB

EC2Auto

Scaling

• 負荷分散• ロードバランシング• オートスケーリング

• 環境の自動構築• URL スワップ• Blue/Green デプロイメントCloudWatch

デプロイ管理

Route53

S3

ワーカー環境

• 負荷分散• オートスケーリング

• 環境の自動構築• URL スワップ• Blue/Green デプロイメント

• SQS マネージャー• SQS のメッセージを

POST に変換

CloudWatch

デプロイ管理

Route53

S3

SQS

AutoScaling

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 RDSMySQL 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 RDSMySQL 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 ジャパン

宣伝その2Software Design 5月号4/18 発売「 SORACOM Air    SD Special Version 」が付属!