jawsから見るlambda そして、サーバレスアーキテクチャ

24
JAWSから見るAWS LAMBDA そして、サーバレスアーキテクチャ クラスメソッド株式会社 五十嵐 良輔 2015-10-30

Upload: ryosuke-igarashi

Post on 12-Feb-2017

1.814 views

Category:

Engineering


4 download

TRANSCRIPT

Page 1: JAWSから見るLambda そして、サーバレスアーキテクチャ

JAWSから見るAWS LAMBDA そして、サーバレスアーキテクチャ

クラスメソッド株式会社

五十嵐 良輔

2015-10-30

Page 2: JAWSから見るLambda そして、サーバレスアーキテクチャ

自己紹介▸ 五十嵐 良輔

▸ 2015.8 入社

▸ モバイルアプリサービス部

▸ 現在の仕事はRailsとAWSが中心

▸ 近況Git使いこなせてないけどtigとgit rebase -i

でGitとだいぶ仲良くなれた気がする。

Page 3: JAWSから見るLambda そして、サーバレスアーキテクチャ

テキスト

ゴール(目標)▸ JAWSの仕組みを知る

▸ JAWSを通じてLambdaができることを知る

▸ JAWSを通じてサーバレスアーキテクチャを知る

Page 4: JAWSから見るLambda そして、サーバレスアーキテクチャ

テキスト

アジェンダ▸ JAWSの紹介

▸ AWSMの紹介

▸ Demo

▸ まとめ

Page 5: JAWSから見るLambda そして、サーバレスアーキテクチャ
Page 6: JAWSから見るLambda そして、サーバレスアーキテクチャ

JAWS

JAWSとは

▸ サーバレスアプリケーションフレームワーク

▸ AWS LmabdaとAPI Gatewayがベース

▸ AWSのリソースをJAWS(CLI)から自動生成

▸ AWSMというエコシステムライブラリ

▸ オープンソース

▸ v1ベータ(2015/10/30時点)

Page 7: JAWSから見るLambda そして、サーバレスアーキテクチャ

JAWS

JAWSの本気度

▸ フルタイムで2名が開発

▸ re:Invent 2015 http://www.slideshare.net/AmazonWebServices/dvo209-jaws-a-scalable-serverless-framework

▸ Trailerhttps://vimeo.com/141132756

Page 8: JAWSから見るLambda そして、サーバレスアーキテクチャ

JAWS

JAWSの由来

▸ 開発者に聞いてみた!

Page 9: JAWSから見るLambda そして、サーバレスアーキテクチャ

JAWS

プロジェクト構成▸ aws_modules機能の単位であり、複数のLambdaとリソースを構成するためのCFnの定義からなる

▸ cloudformationプロジェクトに必要なリソース全てを構成するためのCFnの定義

▸ その他環境変数やプロジェクトの構成ファイル

Page 10: JAWSから見るLambda そして、サーバレスアーキテクチャ

JAWS

デプロイ構成▸ 1つ以上のステージにデプロイできる

▸ ステージには1つ以上のリージョンがある

▸ 3つのCloudFormationスタック

▸ ResourcesIAMやS3 Bucket、その他のリソース

▸ Lambdas

▸ API Gateway

Page 11: JAWSから見るLambda そして、サーバレスアーキテクチャ

JAWS

ロードマップ▸ v1.4

▸ JAWSのNode.js v4対応(ES6対応)

▸ JAWSのPlugin拡張対応

▸ Lambdaのバージョニングとエイリアスに対応

▸ など

Page 12: JAWSから見るLambda そして、サーバレスアーキテクチャ
Page 13: JAWSから見るLambda そして、サーバレスアーキテクチャ

AWSM

AWSMとは

▸ JAWSプロジェクトにおける機能の単位

▸ 再利用可能で標準的な機能をnpmで公開

▸ DynamoDBなどのリソースもセットで定義

▸ 現在はNode.jsのみ(他の言語にも対応予定)

Page 14: JAWSから見るLambda そして、サーバレスアーキテクチャ

AWSM

AWSM一覧

▸ awsm-images画像を編集(リサイズなど)するREST APIを生成する

▸ awsm-users DynamoDBを使ってユーザを作成・認証する

▸ awsm-cloudfront S3とAPI Gatewayの前にCloudFrontを配置して静的なWebアプリケー

ションを構築する

Page 15: JAWSから見るLambda そして、サーバレスアーキテクチャ

AWSM

AWSM一覧

▸ awsm-middleware

▸ awsm-loggly

▸ awsm-twilio

▸ awsm-stripe-webhook

▸ awsm-slack-webhook

▸ awsm-mailer

▸ awsm-s3tokenvendor

Page 16: JAWSから見るLambda そして、サーバレスアーキテクチャ

DEMO

Page 17: JAWSから見るLambda そして、サーバレスアーキテクチャ

DEMO

お題▸ awsm-usersを使ってユーザ登録・認証APIを作成する

▸ リソース[POST] /users/create[POST] /users/authenticate [GET] /users/list *認可必要

※手順は後日ブログにアップします

Page 18: JAWSから見るLambda そして、サーバレスアーキテクチャ

MATOME

Page 19: JAWSから見るLambda そして、サーバレスアーキテクチャ

まとめ

まとめ/感想

▸ LambdaやAPI GatewayのCFnを自動作成してくれて便利

▸ リージョンや環境ごとのデプロイ・環境変数の管理をしてくれて便利

▸ 環境変数は地味に便利

▸ AWSMはLambdaの書き方の参考になる

▸ 現時点ではあくまでベータ

Page 20: JAWSから見るLambda そして、サーバレスアーキテクチャ

まとめ

サーバレスアーキテクチャ▸ 構成

▸ EC2を使わない

▸ Lambda + API Gateway + その他のサービス

Page 21: JAWSから見るLambda そして、サーバレスアーキテクチャ

まとめ

サーバレスアーキテクチャ▸ メリット

▸ いくらでもスケール可能

▸ 必要な時だけリソースを消費するので安い

▸ マネージドサービスなので運用コストがかからない

▸ デメリット

▸ 決定版的な手法が確立されていない

▸ マイクロサービスと同様の課題(トランザクションなど)

Page 22: JAWSから見るLambda そして、サーバレスアーキテクチャ

まとめ

サーバレスアーキテクチャ▸ 感想

▸ できるところだけサーバレス化するだけでも十分にメリットは得られるので、Lambdaは積極的に使いたい

▸ サーバが仮想化になり、コンテナになったように、次はLambdaがシステムの中心になる

Page 23: JAWSから見るLambda そして、サーバレスアーキテクチャ

まとめ

参考▸ jaws-framework/JAWS

https://github.com/jaws-framework/JAWS

▸ (DVO209) JAWS: A Scalable Serverless Frameworkhttp://www.slideshare.net/AmazonWebServices/dvo209-jaws-a-scalable-serverless-framework

▸ (レポート) DVO209: JAWS: 高度にスケーラブルなサーバーレスフレームワーク #reinvent | Developers.IOhttp://dev.classmethod.jp/cloud/aws/reinvent2015-dvo209/

Page 24: JAWSから見るLambda そして、サーバレスアーキテクチャ