分で理解する︕ とaws のサーバーレスなつなぎ⽅ · q...
Post on 25-Aug-2020
0 Views
Preview:
TRANSCRIPT
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
30 分で理解する︕SaaS と AWS のサーバーレスなつなぎ⽅今村 優太アマゾン ウェブ サービス ジャパン技術統括本部 ソリューションアーキテクトPrototyping Specialist
Twitterハッシュタグ #AWSInnovate
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
本セッションについてセッションの対象者
• AWS 外で提供される SaaS アプリケーションを、AWS と組み合わせて利⽤したい⽅• サーバーレスなアーキテクチャに興味がある、または積極的に利活⽤したい⽅
セッションのゴール• SaaS アプリケーションと AWS のリソースを連携する場合のパターンを理解する• サーバーレスなサービスを、SaaS アプリケーションとの連携に活⽤するメリットを理解する
今回扱う課題リスト• SaaS から送信されるデータの管理• SaaS から取得が必要なデータの管理• 複数の SaaS とサービス間の連携
【ご連絡事項】本セッション内容について確認するためのクイズおよび簡単なアンケートがセッションの最後にあります。なおクイズの回答はアンケートとあわせて表⽰されます。
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
アジェンダq イントロダクション : SaaS とは︖サーバーレスとは︖
q 課題 1. SaaS から送信されるデータの管理
q 課題 2. SaaS から取得が必要なデータの管理
q 課題 3. 複数の SaaS とサービス間の連携
q まとめ
q クイズ、アンケート
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
SaaS と AWS のサーバーレスなつなぎ⽅
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
SaaS = Software as a Service の略称
q 利⽤者に提供される機能は、クラウドのインフラストラクチャ上で稼動しているプロバイダ由来のアプリケーションである
q アプリケーションには、クライアントの様々な装置から、ウェブブラウザのようなシンクライアント型インターフェイス(例えばウェブメール)、またはプログラムインターフェイスのいずれかを通じてアクセスする
q ユーザは基盤にあるインフラストラクチャを、 ネットワークであれ、サーバーであれ、オペレーティングシステムであれ、 ストレージであれ、各アプリケーション機能ですら、管理したりコントロールしたりすることはない。ただし、ユーザに固有のアプリケーションの構成の設定はその例外となろう
「NIST (⽶国国⽴標準技術研究所) によるクラウドコンピューティングの定義」より抜粋https://www.ipa.go.jp/files/000025366.pdf
SaaSアプリケーション
利⽤者 インターネット経由でアクセス プロバイダ
メンテナンス
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
SaaS アプリケーションの例q CRM (Customer Relationship Management)
q システムのモニタリング
q ソースコード管理
q データベース
q チャット 多岐
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
SaaS を導⼊するメリットq サブスクリプション型の価格体系によるコスト削減
q 旧来のソフトウェアは、永続的な利⽤ライセンスに料⾦を⽀払う買い切りのモデルが主流であったが、初期投資として要するコストが⼤きいという課題があった
q ⼀⽅で、多くの SaaS 提供事業者ではサブスクリプション型の料⾦モデルを提供しており、利⽤した料⾦のみを⽀払えばよく、初期投資に要するコストを⼤幅に削減できる
q 機能追加や値下げなど、継続的な改善が期待できるq サブスクリプション型の価格体系であることから、SaaS 提供事業者は、顧客が⻑くサービスを利⽤するほど利
益を得られるため、サービス利⽤を継続してもらうためにどうすればよいかを検討する
q SaaS を動作させるための基盤は、顧客ではなく提供事業者にて管理されるため、新規の機能追加といったアップデートが容易である
q ⾃⾝のシステム開発における負担を低減できるq ユーザー認証・認可の機能や、適切なエラー監視を⾏う仕組みなど、開発するにあたり負担の⼤きい機能を外部
に委任することができる
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
SaaS 利⽤の拡⼤
16件
73%
⽶国 BetterCloud 社レポートより抜粋
平均
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
SaaS と AWS のサーバーレスなつなぎ⽅
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
サーバーレスな構成とは︖ - 4 つの特徴
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
サーバーレスな構成とは︖ - 4 つの特徴
q 事前にサーバーなど、インフラのプロビジョニングが不要
q インフラのキャパシティプランニングが不要
q セキュリティパッチの適⽤といった保守作業が不要
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
サーバーレスな構成とは︖- 4 つの特徴
q リクエストの数に応じて、⾃動的にアプリケーションの実⾏環境 (インスタンス) が起動する
q 数件 / ⽉から数千件 / 秒までシームレスにスケールする
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
サーバーレスな構成とは︖- 4 つの特徴
q リクエスト数、ならびに処理の実⾏時間に応じた課⾦となり、実際の処理量と⾦額が⽐例する
q 事前の初期投資が不要なので、コストゼロからのスタートが可能
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
サーバーレスな構成とは︖- 4 つの特徴
q サービス内部に組み込まれた耐障害性により、実⾏されるアプリケーションが⾼い可⽤性のもとに実⾏されるよう、あらかじめ設計されている
q メンテナンス時間や定期的なダウンタイムはない
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
SaaS と AWS のサーバーレスなつなぎ⽅
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
何が課題となるかq SaaS アプリケーションに対してデータを送信する⽅法は、SDK や、インストールし
て利⽤可能なエージェントなど、SaaS 事業者にて提供される場合が多いため、それらを⾃⾝のシステムに組み込めばよい
SaaSアプリケーション
q 問題は、SaaS アプリケーション側で発⽣したデータを、どのように⾃分のシステムで受け取るか︖
SDK エージェント
⾃⾝のシステム
SaaSアプリケーション
⾃⾝のシステム
?
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
SaaS 提供事業者
課題 1. SaaS から送信されるデータの管理AWS Cloud
? SaaS と連携するサービス
q 多くの SaaS アプリケーションは、外部へ連携する必要があるデータが発⽣したときに、HTTP 通信で外部へ Push 通知する仕組みをWebhook として備えている
q (例) ソースコード管理を⾏う SaaS アプリケーションにて、ソースコードに新たな更新が⾏われた際に、Webhook でチャットシステムに通知する
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
SaaS 提供事業者
課題 1. SaaS から送信されるデータの管理AWS Cloud
? SaaS と連携するサービス
q SaaS アプリケーションの多くは、外部へ連携する必要があるデータが発⽣したときに、HTTP 通信で外部へ Push 通知する仕組みをWebhook として備えている
q (例) ソースコード管理を⾏う SaaS アプリケーションにて、新しい更新データがあった際に、Webhook でチャットシステムに通知する
どのように解決するか︖
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
SaaS 提供事業者
AWS Cloud
Amazon Elastic Load Balancing (ELB)
SaaS と連携するサービス
Amazon Elastic Computing Cloud (EC2)
q ELB (ロードバランサー) と EC2 (仮想サーバー) を組み合わせて、SaaS のWebhook の「受け⼝」を作る
q EC2 で何らかのアプリケーションを動作させ、SaaS アプリケーションのWebhook から送られてきたデータを、後段のサービスへ通知する仕組みを作る
ロードバランサーと仮想サーバーを組み合わせる課題 1. SaaS から送信されるデータの管理
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
SaaS 提供事業者
AWS Cloud
Amazon Elastic Load Balancing (ELB)
SaaS と連携するサービス
Amazon Elastic Computing Cloud (EC2)
ELB と EC2 を組み合わせた場合の課題課題 1. SaaS から送信されるデータの管理
q SaaS の Webhook から送信されるデータの流量に応じて、EC2 の台数を増減させる仕組みを⾃⾝で構築する必要がある
q EC2 内部を構成するミドルウェアは⾃⾝で管理する必要があるq EC2 を常に起動させておく必要があり、起動時間に応じてコストがかかる
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
SaaS 提供事業者
AWS Cloud
Amazon Elastic Load Balancing (ELB)
SaaS と連携するサービス
Amazon Elastic Computing Cloud (EC2)
ELB と EC2 を組み合わせた場合の課題課題 1. SaaS から送信されるデータの管理
q SaaS の Webhook から送信されるデータの流量に応じて、EC2 の台数を増減させる仕組みを⾃⾝で構築する必要がある
q EC2 内部を構成するミドルウェアは⾃⾝で管理する必要があるq EC2 を常に起動させておく必要があり、起動時間に応じてコストがかかる
サーバーレス化を検討する
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Amazon API Gateway と AWS Lambda の利⽤課題 1. SaaS から送信されるデータの管理
AmazonAPI Gateway
AWS Lambda
マネージドサービスとしてAWS が管理
サーバーレス アーキテクチャに適した HTTP プロトコルの
ゲートウェイ基盤
サーバーの管理や保守が不要負荷に応じて⾃動でスケール
プログラムの実⾏時間に絞って100 ミリ秒単位の課⾦
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
SaaS 提供事業者
Amazon API Gateway と AWS Lambda の利⽤AWS Cloud
AmazonAPI Gateway
SaaS と連携するサービス
課題 1. SaaS から送信されるデータの管理
AWS Lambda
q リクエスト量に呼応して⾃動でスケールq ミドルウェアのセキュリティパッチ適⽤など保守作業からの解放q AWS Lambda で動かすプログラムが実⾏された時間に応じて、
100 ミリ秒単位での課⾦となりコスト削減を図ることができる
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
SaaS 提供事業者
課題 2. SaaS から取得が必要なデータの管理AWS Cloud
? SaaS と連携するサービス
q SaaS アプリケーションから能動的にデータを送信する Webhook の仕組みが⽤意されていない場合、SaaS アプリケーションが提供する API を呼び出して、最新データを取得する必要がある
q (例) 顧客管理を⾏う CRM アプリケーションにて、新しい顧客データがないか API を呼び出して確認し、データ分析システムに反映する
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
SaaS 提供事業者
課題 2. SaaS から取得が必要なデータの管理AWS Cloud
? SaaS と連携するサービス
q SaaS アプリケーションから能動的にデータを送信する Webhook の仕組みがない場合、SaaS アプリケーションが提供する API を呼び出して、最新データを取得する必要がある
q (例) 顧客管理を⾏う CRM アプリケーションにて、新しい顧客データがないか API を呼び出して確認し、データ分析システムに反映する
どのように解決するか︖
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
SaaS 提供事業者
q EC2 を⽤意し、Linux OS の crond など、定期実⾏が可能なミドルウェアを利⽤して、SaaS アプリケーションの API を呼び出す
q EC2 で何らかのアプリケーションを動作させ、SaaS アプリケーションの API から取得したデータを、後段のサービスへ通知する仕組みを作る
AWS Cloud
SaaS と連携するサービス
Amazon Elastic Computing Cloud (EC2)
crondなど
ポーリング(定期呼び出し)
仮想サーバーから定期的にポーリング課題 2. SaaS から取得が必要なデータの管理
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
SaaS 提供事業者AWS Cloud
SaaS と連携するサービス
Amazon Elastic Computing Cloud (EC2)
crondなど
ポーリング(定期呼び出し)
EC2 を利⽤する場合の課題課題 2. SaaS から取得が必要なデータの管理
q crond など、定期実⾏を⾏うプロセスがダウンしないような仕組みを作り、⾃⾝で管理する必要がある
q EC2 を常に実⾏しておくためのコストがかかるq 複数のアベイラビリティゾーンの利⽤など、可⽤性を確保してポーリング
するアーキテクチャを考える必要がある
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
SaaS 提供事業者AWS Cloud
SaaS と連携するサービス
Amazon Elastic Computing Cloud (EC2)
crondなど
ポーリング(定期呼び出し)
EC2 を利⽤する場合の課題課題 2. SaaS から取得が必要なデータの管理
q crond など、定期実⾏を⾏うプロセスがダウンしないような仕組みを作り、⾃⾝で管理する必要がある
q EC2 を常に実⾏しておくためのコストがかかるq 複数のアベイラビリティゾーンの利⽤など、可⽤性を確保してポーリング
するアーキテクチャを考える必要がある
サーバーレス化を検討する
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
SaaS 提供事業者
q 分単位で指定可能なスケジュールをもとに AWS Lambda を起動することで、スケジュール管理をマネージドに⾏うことができる
q ポーリングを⾏うインスタンスを常に実⾏しておく必要がなく、AWS Lambda のプログラム実⾏時間のみの課⾦であるため、コストを低減することができる
q AWS Lambda サービス⾃⾝に組み込まれた耐障害性をそのまま利⽤できる
AWS Cloud
SaaS と連携するサービス
AWS Lambda のスケジュール実⾏課題 2. SaaS から取得が必要なデータの管理
ScheduledEvent
AWS Lambda
ポーリング(定期呼び出し)
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
課題 3. 複数の SaaS とサービス間の連携
AWS Cloud
?サービス A
SaaS 提供事業者
サービス C
サービス B
SaaS 提供事業者
SaaS 提供事業者
HTTPRequest
サービス A のみに配信
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
課題 3. 複数の SaaS とサービス間の連携
AWS Cloud
?サービス A
SaaS 提供事業者
サービス C
サービス B
SaaS 提供事業者
SaaS 提供事業者
HTTPRequest
複数サービスへ配信
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
課題 3. 複数の SaaS とサービス間の連携
AWS Cloud
?サービス A
SaaS 提供事業者
サービス C
サービス B
SaaS 提供事業者
SaaS 提供事業者ポーリング
複数サービスへ配信
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
課題 3. 複数の SaaS とサービス間の連携
AWS Cloud
?サービス A
SaaS 提供事業者
サービス C
サービス B
SaaS 提供事業者
SaaS 提供事業者ポーリング
複数サービスへ配信
SaaS アプリケーションで発⽣したデータを、単⼀もしくは複数のサービスへ適切にルーティングすることが求められる
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
課題 3. 複数の SaaS とサービス間の連携
AWS Cloud
?サービス A
SaaS 提供事業者
サービス C
サービス B
SaaS 提供事業者
SaaS 提供事業者
リクエスト失敗
⼤量のリクエスト
追いつかないレスポンス
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
課題 3. 複数の SaaS とサービス間の連携
AWS Cloud
?サービス A
SaaS 提供事業者
サービス C
サービス B
SaaS 提供事業者
SaaS 提供事業者
リクエスト失敗
⼤量のリクエスト
追いつかないレスポンス
SaaS アプリケーションで発⽣したデータを、単⼀もしくは複数のサービスへ適切にルーティングすることが求められる
SaaS アプリケーションと連携先のサービス間を⾮同期にすることで、⼀部の影響を他に
波及させないことが求められる
+
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
課題 3. 複数の SaaS とサービス間の連携
AWS Cloud
?サービス A
SaaS 提供事業者
サービス C
サービス B
SaaS 提供事業者
SaaS 提供事業者
ポーリング失敗
⼤量のリクエスト
SaaS アプリケーションで発⽣したデータを、単⼀もしくは複数のサービスへ適切にルーティングすることが求められる
SaaS アプリケーションと連携先のサービス間の通信を⾮同期にすることで、⼀部の影響
を他に波及させないことが求められる
+どう解決するか︖
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
イベントバスによるイベント駆動アーキテクチャの導⼊課題 3. 複数の SaaS とサービス間の連携
AWS Cloud
サービス A
サービス C
発⾏(Publish)
購読(Subscribe)
サービス B
SaaS 提供事業者
SaaS 提供事業者
SaaS 提供事業者
イベントバスと呼ばれるサービスを⽤意して SaaS アプリケーションが
送信したいデータをいったん集約する(発⾏ : Publish)
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
イベントバスによるイベント駆動アーキテクチャの導⼊課題 3. 複数の SaaS とサービス間の連携
AWS Cloud
サービス A
サービス C
発⾏(Publish)
購読(Subscribe)
サービス B
SaaS 提供事業者
SaaS 提供事業者
SaaS 提供事業者
イベントバスは受け取ったデータに応じて、データの受取を希望する
サービスへ振り分けを⾏う(購読 : Subscribe)
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
イベントバスの利⽤例課題 3. 複数の SaaS とサービス間の連携
AWS Cloud
管理者通知サービスシステム監視を⾏う SaaS
システムエラー発⽣
システムエラーの情報を発⾏
システムエラーの情報を購読しているサービスへ通知
例) システム監視を⾏う SaaS との統合
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
イベントバスの利⽤例課題 3. 複数の SaaS とサービス間の連携
AWS Cloud
管理者通知サービスシステム監視を⾏う SaaS
システムエラー発⽣
システムエラーの情報を発⾏
例) システム監視を⾏う SaaS との統合
システム復旧サービス新規サービス
へも通知
システムエラーの情報を購読するサービスを追加
新しいサービスの連携がイベントバスの設定変更のみで
完結する
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
イベントバスの利⽤例課題 3. 複数の SaaS とサービス間の連携
AWS Cloud
管理者通知サービスシステム監視を⾏う SaaS
システムエラー発⽣
システムエラーの情報を発⾏
例) システム監視を⾏う SaaS との統合
システム復旧サービス新規サービス
へも通知
システムエラーの情報を購読するサービスを追加
新しいサービスの連携がイベントバスの設定変更のみで
完結する
SaaS アプリケーションで連携が必要なデータを「イベント」とみなし、イベントが発⽣するたびに適切なサービスを起動する
「イベントバス」を⽤意することで、イベント駆動のアーキテクチャを構成する
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
AWS におけるイベントバス - Amazon EventBridge課題 3. 複数の SaaS とサービス間の連携
AmazonEventBridge
q 2019 年に発表されたサーバーレスのイベントバスサービス
q 送信されてきたイベントを、複数のターゲットに対して Push 形式で配信することができる
q Zendesk, Datadog, Pagerduty といった、いくつかの外部の SaaS 提供事業者とすぐに連携が可能となっており、イベントの送信元として設定できる
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
AWS におけるイベントバス - Amazon EventBridge課題 3. 複数の SaaS とサービス間の連携
24 の SaaS 事業者に対応しており、今後も順次追加を予定
(※) 2020/02/14 時点
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
イベントバスとしての Amazon EventBridge の利⽤課題 3. 複数の SaaS とサービス間の連携
AWS Cloud
サービス A
サービス C
サービス B
AWS Lambda
Amazon EventBridge
直接処理を実⾏
Amazon Simple Notification Service
HTTP でデータ送信
任意の⽅法(要実装)
AWS Lambda などで構成されたサービス
EventBridge が対応するSaaS 事業者
サービス側で⽤意した API
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Amazon EventBridge の利⽤事例課題 3. 複数の SaaS とサービス間の連携
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Amazon EventBridge の利⽤課題 3. 複数の SaaS とサービス間の連携
AWS Cloud
サービス A
サービス C
サービス B
AWS Lambda
Amazon EventBridge
直接処理を実⾏
Amazon Simple Notification Service
HTTP でデータ送信
任意の⽅法(要実装)
AWS Lambda などで構成されたサービス
EventBridge が対応するSaaS 事業者
サービス側で⽤意した API
EventBridge が対応していないSaaS 事業者とどのように連携するか
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Amazon EventBridge へのデータの集約課題 3. 複数の SaaS とサービス間の連携
AWS Cloud
サービス A
サービス C
サービス B
AWS Lambda
Amazon EventBridge
直接処理を実⾏
Amazon Simple Notification Service
HTTP
任意の⽅法
サービス側で⽤意した API
SaaS 提供事業者
AmazonAPI Gateway
AWS Lambda(スケジュール実⾏)
SaaS 提供事業者
AWS Lambda などで構成されたサービス
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
まとめ
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
まとめq 課題 1. SaaS から送信されるデータの管理
q -> API Gateway と AWS Lambda で Webhook と連携する
q 課題 2. SaaS から取得が必要なデータの管理q -> AWS Lambda をスケジュール実⾏して API をポーリングする
q 課題 3. 複数の SaaS とサービス間の連携q -> Amazon EventBridge を使ったイベントバスを検討する
サーバーレスアーキテクチャを活⽤して便利な SaaS アプリケーションを
積極的に利⽤しましょう︕
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
お役⽴ちリンク
Jan. 22th, 2020[AWS BlackBelt Online Seminar] Amazon EventBridgehttps://www.slideshare.net/AmazonWebServicesJapan/20200122-aws-black-belt-online-seminar-amazon-eventbridge
Oct. 2nd, 2019Deep Dive on event-driven development with Amazon EventBridgehttps://www.youtube.com/watch?v=28B4L1fnnGM
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
クイズ
Q1: SaaS アプリケーションとの連携において、サーバーレスなアーキテクチャを構成することで得られるメリットには、どのようなものが考えられるでしょうか。
Q2: 複数の SaaS アプリケーションと、複数の AWS 上のサービスを連携させたいとき、何が課題となり、どのように解決できるでしょうか。
Thank you!
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
今村 優太
top related