Introducing Serverless Computing (20160802)

Post on 16-Apr-2017

3.418 views 1 download

Transcript of Introducing Serverless Computing (20160802)

Introducing Serverless ComputingKeisuke Nishitani (@Keisuke69)

Amazon Web Services Japan K.K.Aug 2, 2016

ProfileKeisuke NishitaniSolutions Architect, Amazon Web Service Japan K.K

@Keisuke69 Keisuke69

✤ ソリューションアーキテクト✤ クラウドを使ったアプリ開発とかモバイル開発の話しをよくします

✤ モバイルニンジャ1号機✤ RESTおじさん✤ Lambda Wizards

✤ 餃⼦の王将エヴァンジェリスト(⾃称)✤ ⾳楽が好きです、フジロッカーです、今年も⾏きます

✤ でもサマソニも毎年⾏きます✤ ⼩説⼤好き、マンガ⼤好き、空想好き✤ ブログ: http://keisuke69.hatenablog.jp/

Keisuke69 Keisuke69Keisuke69x

What is Serverless Computing?

AWSのComputeサービス

Amazon EC2 Amazon ECS AWS Lambda

スケールの単位インスタンス アプリケーション ファンクション

抽象化ハードウェア OS ランタイム

使いドコロ

AWSのComputeサービス

Amazon EC2 Amazon ECS AWS Lambda

スケールの単位インスタンス アプリケーション ファンクション

抽象化ハードウェア OS ランタイム

使いドコロ • OS、ネットワーク、ストレージのレベルで構成を制御したい

• 好みのOSを利⽤したい

• OS以上の全てを⾃分でコントロールしたい

• サーバを⾃分で構成して実⾏したい

• アプリケーションの構成を制御したい

• スケールを⾃分でコントロールしたい

• 必要なときだけコードの実⾏を⾏いたい

• インフラの構成・管理を⾏いたくない

AWSのComputeサービス

Amazon EC2 Amazon ECS AWS Lambda

スケールの単位インスタンス アプリケーション ファンクション

抽象化ハードウェア OS ランタイム

使いドコロ • OS、ネットワーク、ストレージのレベルで構成を制御したい

• 好みのOSを利⽤したい

• OS以上の全てを⾃分でコントロールしたい

• サーバを⾃分で構成して実⾏したい

• アプリケーションの構成を制御したい

• スケールを⾃分でコントロールしたい

• 必要なときだけコードの実⾏を⾏いたい

• インフラの構成・管理を⾏いたくない

Serverless

AWS Lambdaのユースケース

Real-time File Processing✤ イメージのサムネイル⽣成やビデオの変換✤ ドキュメントのメタデータをインデックス化✤ ログの処理✤ メディアコンテンツのバリデーション

元画像 サムネイル画像

1

2

31.ファイルストレージを

提供するAmazon S32.処理ロジックを提供す

るAWS Lambda

Real-time Stream Processing✤ クライアントのアクティビティトラッキング✤ クリックストリーム分析✤ メトリクス⽣成✤ データクレンジング✤ ログフィルタリング✤ インデクシング✤ デバイスデータのテレメトリと測定

1.ストリームデータの保存を提供するAmazon Kinesis

2.データ処理アプリケーションとしてのAWS Lambda

Extract, Transform and Load✤ データバリデーション✤ バックアップ✤ 分析

1.NoSQLデータストアを提供するAmazon DynamoDB

2.変換およびロード処理を実⾏するAmazon Lambda

3.DWHを提供するAmazon Redshift

Serverless Web and Mobile Applications✤ 静的コンテンツを提供するAmazon S3✤ 動的コンテンツを提供するAWS Lambda✤ HTTPアクセスを提供するAmazon API Gateway✤ NoSQLデータストレージを提供するAmazon DynamoDB

AWS Lambdaの動的コンテンツ

Amazon DynamoDBに格納

されたデータAPI Gateway

Amazon S3の静的コンテンツ ブラウザ

新しいアプリケーションエコシステム:Alexaアプリ + Slack = Serveless bot!

Alexa、"今からデモを送る"をSlackで送信し

スケジュールされたポーリングによりメッセージを取得

Kevinから、"成功を祈る!"

(Slack APIを使って)メッセージをアップロード

チーム(チャネルユーザー)

Slack

Real-Time Message Handling

New message published

Amazon SNS AWS Lambda

Amazon SNS

Amazon Kinesis

Audit CloudTrail Activity

AWS Lambda

Amazon S3Amazon CloudTrail

Amazon SNS

AWS IAM

Automated Infrastructure Management

AWS Lambda

Amazon SNS

Amazon CloudWatch Alarm

ec2runInstance

ecsstartTask

beanstalkupdateApp

kinesissplitShard

Any API call

https://aws.amazon.com/blogs/compute/scaling-amazon-ecs-services-automatically-using-amazon-cloudwatch-and-aws-lambda/

Forward AWS Events to External Endpoints

http://danilop.net/aws/2015/07/26/sns2ifttt/ |https://github.com/danilop/SNS2IFTTT

AWS Lambda

Amazon SNS

IFTTT via the Maker channel

Amazon CloudWatch Events

Auto Scaling

Deploy Lambda Functions

https://aws.amazon.com/blogs/compute/dynamic-github-actions-with-aws-lambda/

AWS Lambda

Amazon SNS

GitHub Repo

lambda createFn ()

事例

VidRoll課題• EC2の管理が難しくなりつ

つあった• ITインフラではなくビジネ

スへのフォーカスが必要

解決⽅法• プレイヤーがAPI Gateway

経由でLambdaを実⾏• 動画のリアルタイム変換に

も利⽤

ベネフィット• ⽣産性が向上し、収益が10

倍になっても、エンジニアの追加なし

Legacy Architecture

Limelight Edge

Laptop Encoders

RTMPWowza Transmux

Servers

Wowza Transcode Servers

Wowza Record Servers

RTMP

RTMP

RTMP

Auto Uploader

MP4 HLS

S3 VOD bucket

CloudFront mobile client

Live Streaming

VOD

CloudFront mobile clientHLS

HLS

Current Architecture

Laptop Encoders

HLS

S3 Playback

VOD Stream mobile client

CloudFront Streaming

Live stream mobile client

CloudFront S3 Ingest

480p Transcode

HQ Copy

360p Transcode

Audio-only Transcode

Thumbnail

QOS Analytics

Cascading Lambda Functions

easy tenMobile app that helps you learn 10 new, foreign words a day

Users have learned

170 000 000+new words

1 200 000+downloads

• Featured in 85+ countries• Top 5 grossing apps overall (Russia)• Top 8 grossing apps overall (Brazil)

スクリーンショット

これまでのアプローチ✤ モノリシックなアプリを複数のEC2インスタンス

上で稼働

✤ 複雑なデプロイ。⼀⾏の変更でも全体の再デプロイが必要

✤ スケーラビリティ/俊敏性と新機能のバランスを取る必要があり頻繁なリリースができない

Lambda consumer

S3

Mobile Analytics

DynamoDB

SQS

Amazon EMR

Amazon Cognito

Amazon Kinesis

Mobile app

Amazon Redshift

Lambda interface

S3 dump

DynamoDB log

Microservice Core

⽇本のお客様も

オフィスアワーやります✤ 8⽉19⽇(⾦)にオフィスアワー(個別技術相談会)を開催します✤ Serverlessなシステムに関するアーキテクチャ相談✤ 1スロット、45分で7スロット受け付け予定✤ 要事前登録✤ もちろん無料✤ 告知サイトならびに登録ページは近⽇公開!