aws elastic beanstalkとaws lambdaのご紹介
TRANSCRIPT
共通機能• デプロイ管理• ヘルスチェック & 回復• モニタリング / 通知• ログ管理
• アプリバージョン管理• ローリングデプロイ• インスタンスの回復• プロセス監視 / 回復
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
サポートされるアプリケーション動作環境
•SpringBoot•Spring のベストプラクティスを一発で設定•気に入らない所は変更可能•個別コンポーネントに手を入れられる
•Elastic Beanstalk•AWS のベストプラクティスを一発で設定•気に入らない所は変更可能•個別コンポーネントに手を入れられる
呼び出された時だけ処理が実行 / 課金されるイベント駆動型のサービス• AWS サービスのイベントきっかけで呼び出す• 直接呼び出す(アプリケーションから)• スケジュール呼び出し
AWS Lambda
イベント
•データが S3 に格納された時に Lambda で加工する
•データ変更の履歴の記録•DB レコード変更のイベント時に履歴テーブルに記録•変更時を顧客に通知
•定期的な処理•DB 上の数値を集計して Slack に post•定期的に値を確認して有効でないデータを削除する
利用例
ライブラリの設定 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 デシリアライズ
• 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
リソース