分で理解する︕ とaws のサーバーレスなつなぎ⽅ · q...

57
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. 30 分で理解する︕ SaaS AWS のサーバーレスなつなぎ⽅ 今村 優太 アマゾン ウェブ サービス ジャパン 技術統括本部 ソリューションアーキテクト Prototyping Specialist Twitterハッシュタグ #AWSInnovate

Upload: others

Post on 25-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 分で理解する︕ とAWS のサーバーレスなつなぎ⽅ · q アプリケーションには、クライアントの様々な装置から、ウェブブラウザのようなシンクラ

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

30 分で理解する︕SaaS と AWS のサーバーレスなつなぎ⽅今村 優太アマゾン ウェブ サービス ジャパン技術統括本部 ソリューションアーキテクトPrototyping Specialist

Twitterハッシュタグ #AWSInnovate

Page 2: 分で理解する︕ とAWS のサーバーレスなつなぎ⽅ · q アプリケーションには、クライアントの様々な装置から、ウェブブラウザのようなシンクラ

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

本セッションについてセッションの対象者

• AWS 外で提供される SaaS アプリケーションを、AWS と組み合わせて利⽤したい⽅• サーバーレスなアーキテクチャに興味がある、または積極的に利活⽤したい⽅

セッションのゴール• SaaS アプリケーションと AWS のリソースを連携する場合のパターンを理解する• サーバーレスなサービスを、SaaS アプリケーションとの連携に活⽤するメリットを理解する

今回扱う課題リスト• SaaS から送信されるデータの管理• SaaS から取得が必要なデータの管理• 複数の SaaS とサービス間の連携

【ご連絡事項】本セッション内容について確認するためのクイズおよび簡単なアンケートがセッションの最後にあります。なおクイズの回答はアンケートとあわせて表⽰されます。

Page 3: 分で理解する︕ とAWS のサーバーレスなつなぎ⽅ · q アプリケーションには、クライアントの様々な装置から、ウェブブラウザのようなシンクラ

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

アジェンダq イントロダクション : SaaS とは︖サーバーレスとは︖

q 課題 1. SaaS から送信されるデータの管理

q 課題 2. SaaS から取得が必要なデータの管理

q 課題 3. 複数の SaaS とサービス間の連携

q まとめ

q クイズ、アンケート

Page 4: 分で理解する︕ とAWS のサーバーレスなつなぎ⽅ · q アプリケーションには、クライアントの様々な装置から、ウェブブラウザのようなシンクラ

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Page 5: 分で理解する︕ とAWS のサーバーレスなつなぎ⽅ · q アプリケーションには、クライアントの様々な装置から、ウェブブラウザのようなシンクラ

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

SaaS と AWS のサーバーレスなつなぎ⽅

Page 6: 分で理解する︕ とAWS のサーバーレスなつなぎ⽅ · q アプリケーションには、クライアントの様々な装置から、ウェブブラウザのようなシンクラ

© 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アプリケーション

利⽤者 インターネット経由でアクセス プロバイダ

メンテナンス

Page 7: 分で理解する︕ とAWS のサーバーレスなつなぎ⽅ · q アプリケーションには、クライアントの様々な装置から、ウェブブラウザのようなシンクラ

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

SaaS アプリケーションの例q CRM (Customer Relationship Management)

q システムのモニタリング

q ソースコード管理

q データベース

q チャット 多岐

Page 8: 分で理解する︕ とAWS のサーバーレスなつなぎ⽅ · q アプリケーションには、クライアントの様々な装置から、ウェブブラウザのようなシンクラ

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

SaaS を導⼊するメリットq サブスクリプション型の価格体系によるコスト削減

q 旧来のソフトウェアは、永続的な利⽤ライセンスに料⾦を⽀払う買い切りのモデルが主流であったが、初期投資として要するコストが⼤きいという課題があった

q ⼀⽅で、多くの SaaS 提供事業者ではサブスクリプション型の料⾦モデルを提供しており、利⽤した料⾦のみを⽀払えばよく、初期投資に要するコストを⼤幅に削減できる

q 機能追加や値下げなど、継続的な改善が期待できるq サブスクリプション型の価格体系であることから、SaaS 提供事業者は、顧客が⻑くサービスを利⽤するほど利

益を得られるため、サービス利⽤を継続してもらうためにどうすればよいかを検討する

q SaaS を動作させるための基盤は、顧客ではなく提供事業者にて管理されるため、新規の機能追加といったアップデートが容易である

q ⾃⾝のシステム開発における負担を低減できるq ユーザー認証・認可の機能や、適切なエラー監視を⾏う仕組みなど、開発するにあたり負担の⼤きい機能を外部

に委任することができる

Page 9: 分で理解する︕ とAWS のサーバーレスなつなぎ⽅ · q アプリケーションには、クライアントの様々な装置から、ウェブブラウザのようなシンクラ

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

SaaS 利⽤の拡⼤

16件

73%

⽶国 BetterCloud 社レポートより抜粋

平均

Page 10: 分で理解する︕ とAWS のサーバーレスなつなぎ⽅ · q アプリケーションには、クライアントの様々な装置から、ウェブブラウザのようなシンクラ

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

SaaS と AWS のサーバーレスなつなぎ⽅

Page 11: 分で理解する︕ とAWS のサーバーレスなつなぎ⽅ · q アプリケーションには、クライアントの様々な装置から、ウェブブラウザのようなシンクラ

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

サーバーレスな構成とは︖ - 4 つの特徴

Page 12: 分で理解する︕ とAWS のサーバーレスなつなぎ⽅ · q アプリケーションには、クライアントの様々な装置から、ウェブブラウザのようなシンクラ

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

サーバーレスな構成とは︖ - 4 つの特徴

q 事前にサーバーなど、インフラのプロビジョニングが不要

q インフラのキャパシティプランニングが不要

q セキュリティパッチの適⽤といった保守作業が不要

Page 13: 分で理解する︕ とAWS のサーバーレスなつなぎ⽅ · q アプリケーションには、クライアントの様々な装置から、ウェブブラウザのようなシンクラ

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

サーバーレスな構成とは︖- 4 つの特徴

q リクエストの数に応じて、⾃動的にアプリケーションの実⾏環境 (インスタンス) が起動する

q 数件 / ⽉から数千件 / 秒までシームレスにスケールする

Page 14: 分で理解する︕ とAWS のサーバーレスなつなぎ⽅ · q アプリケーションには、クライアントの様々な装置から、ウェブブラウザのようなシンクラ

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

サーバーレスな構成とは︖- 4 つの特徴

q リクエスト数、ならびに処理の実⾏時間に応じた課⾦となり、実際の処理量と⾦額が⽐例する

q 事前の初期投資が不要なので、コストゼロからのスタートが可能

Page 15: 分で理解する︕ とAWS のサーバーレスなつなぎ⽅ · q アプリケーションには、クライアントの様々な装置から、ウェブブラウザのようなシンクラ

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

サーバーレスな構成とは︖- 4 つの特徴

q サービス内部に組み込まれた耐障害性により、実⾏されるアプリケーションが⾼い可⽤性のもとに実⾏されるよう、あらかじめ設計されている

q メンテナンス時間や定期的なダウンタイムはない

Page 16: 分で理解する︕ とAWS のサーバーレスなつなぎ⽅ · q アプリケーションには、クライアントの様々な装置から、ウェブブラウザのようなシンクラ

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

SaaS と AWS のサーバーレスなつなぎ⽅

Page 17: 分で理解する︕ とAWS のサーバーレスなつなぎ⽅ · q アプリケーションには、クライアントの様々な装置から、ウェブブラウザのようなシンクラ

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

何が課題となるかq SaaS アプリケーションに対してデータを送信する⽅法は、SDK や、インストールし

て利⽤可能なエージェントなど、SaaS 事業者にて提供される場合が多いため、それらを⾃⾝のシステムに組み込めばよい

SaaSアプリケーション

q 問題は、SaaS アプリケーション側で発⽣したデータを、どのように⾃分のシステムで受け取るか︖

SDK エージェント

⾃⾝のシステム

SaaSアプリケーション

⾃⾝のシステム

?

Page 18: 分で理解する︕ とAWS のサーバーレスなつなぎ⽅ · q アプリケーションには、クライアントの様々な装置から、ウェブブラウザのようなシンクラ

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Page 19: 分で理解する︕ とAWS のサーバーレスなつなぎ⽅ · q アプリケーションには、クライアントの様々な装置から、ウェブブラウザのようなシンクラ

© 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 でチャットシステムに通知する

Page 20: 分で理解する︕ とAWS のサーバーレスなつなぎ⽅ · q アプリケーションには、クライアントの様々な装置から、ウェブブラウザのようなシンクラ

© 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 でチャットシステムに通知する

どのように解決するか︖

Page 21: 分で理解する︕ とAWS のサーバーレスなつなぎ⽅ · q アプリケーションには、クライアントの様々な装置から、ウェブブラウザのようなシンクラ

© 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 から送信されるデータの管理

Page 22: 分で理解する︕ とAWS のサーバーレスなつなぎ⽅ · q アプリケーションには、クライアントの様々な装置から、ウェブブラウザのようなシンクラ

© 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 を常に起動させておく必要があり、起動時間に応じてコストがかかる

Page 23: 分で理解する︕ とAWS のサーバーレスなつなぎ⽅ · q アプリケーションには、クライアントの様々な装置から、ウェブブラウザのようなシンクラ

© 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 を常に起動させておく必要があり、起動時間に応じてコストがかかる

サーバーレス化を検討する

Page 24: 分で理解する︕ とAWS のサーバーレスなつなぎ⽅ · q アプリケーションには、クライアントの様々な装置から、ウェブブラウザのようなシンクラ

© 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 ミリ秒単位の課⾦

Page 25: 分で理解する︕ とAWS のサーバーレスなつなぎ⽅ · q アプリケーションには、クライアントの様々な装置から、ウェブブラウザのようなシンクラ

© 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 ミリ秒単位での課⾦となりコスト削減を図ることができる

Page 26: 分で理解する︕ とAWS のサーバーレスなつなぎ⽅ · q アプリケーションには、クライアントの様々な装置から、ウェブブラウザのようなシンクラ

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Page 27: 分で理解する︕ とAWS のサーバーレスなつなぎ⽅ · q アプリケーションには、クライアントの様々な装置から、ウェブブラウザのようなシンクラ

© 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 を呼び出して確認し、データ分析システムに反映する

Page 28: 分で理解する︕ とAWS のサーバーレスなつなぎ⽅ · q アプリケーションには、クライアントの様々な装置から、ウェブブラウザのようなシンクラ

© 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 を呼び出して確認し、データ分析システムに反映する

どのように解決するか︖

Page 29: 分で理解する︕ とAWS のサーバーレスなつなぎ⽅ · q アプリケーションには、クライアントの様々な装置から、ウェブブラウザのようなシンクラ

© 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 から取得が必要なデータの管理

Page 30: 分で理解する︕ とAWS のサーバーレスなつなぎ⽅ · 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 複数のアベイラビリティゾーンの利⽤など、可⽤性を確保してポーリング

するアーキテクチャを考える必要がある

Page 31: 分で理解する︕ とAWS のサーバーレスなつなぎ⽅ · 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 複数のアベイラビリティゾーンの利⽤など、可⽤性を確保してポーリング

するアーキテクチャを考える必要がある

サーバーレス化を検討する

Page 32: 分で理解する︕ とAWS のサーバーレスなつなぎ⽅ · 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

ポーリング(定期呼び出し)

Page 33: 分で理解する︕ とAWS のサーバーレスなつなぎ⽅ · q アプリケーションには、クライアントの様々な装置から、ウェブブラウザのようなシンクラ

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Page 34: 分で理解する︕ とAWS のサーバーレスなつなぎ⽅ · q アプリケーションには、クライアントの様々な装置から、ウェブブラウザのようなシンクラ

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

課題 3. 複数の SaaS とサービス間の連携

AWS Cloud

?サービス A

SaaS 提供事業者

サービス C

サービス B

SaaS 提供事業者

SaaS 提供事業者

HTTPRequest

サービス A のみに配信

Page 35: 分で理解する︕ とAWS のサーバーレスなつなぎ⽅ · q アプリケーションには、クライアントの様々な装置から、ウェブブラウザのようなシンクラ

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

課題 3. 複数の SaaS とサービス間の連携

AWS Cloud

?サービス A

SaaS 提供事業者

サービス C

サービス B

SaaS 提供事業者

SaaS 提供事業者

HTTPRequest

複数サービスへ配信

Page 36: 分で理解する︕ とAWS のサーバーレスなつなぎ⽅ · q アプリケーションには、クライアントの様々な装置から、ウェブブラウザのようなシンクラ

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

課題 3. 複数の SaaS とサービス間の連携

AWS Cloud

?サービス A

SaaS 提供事業者

サービス C

サービス B

SaaS 提供事業者

SaaS 提供事業者ポーリング

複数サービスへ配信

Page 37: 分で理解する︕ とAWS のサーバーレスなつなぎ⽅ · q アプリケーションには、クライアントの様々な装置から、ウェブブラウザのようなシンクラ

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

課題 3. 複数の SaaS とサービス間の連携

AWS Cloud

?サービス A

SaaS 提供事業者

サービス C

サービス B

SaaS 提供事業者

SaaS 提供事業者ポーリング

複数サービスへ配信

SaaS アプリケーションで発⽣したデータを、単⼀もしくは複数のサービスへ適切にルーティングすることが求められる

Page 38: 分で理解する︕ とAWS のサーバーレスなつなぎ⽅ · q アプリケーションには、クライアントの様々な装置から、ウェブブラウザのようなシンクラ

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

課題 3. 複数の SaaS とサービス間の連携

AWS Cloud

?サービス A

SaaS 提供事業者

サービス C

サービス B

SaaS 提供事業者

SaaS 提供事業者

リクエスト失敗

⼤量のリクエスト

追いつかないレスポンス

Page 39: 分で理解する︕ とAWS のサーバーレスなつなぎ⽅ · q アプリケーションには、クライアントの様々な装置から、ウェブブラウザのようなシンクラ

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

課題 3. 複数の SaaS とサービス間の連携

AWS Cloud

?サービス A

SaaS 提供事業者

サービス C

サービス B

SaaS 提供事業者

SaaS 提供事業者

リクエスト失敗

⼤量のリクエスト

追いつかないレスポンス

SaaS アプリケーションで発⽣したデータを、単⼀もしくは複数のサービスへ適切にルーティングすることが求められる

SaaS アプリケーションと連携先のサービス間を⾮同期にすることで、⼀部の影響を他に

波及させないことが求められる

+

Page 40: 分で理解する︕ とAWS のサーバーレスなつなぎ⽅ · q アプリケーションには、クライアントの様々な装置から、ウェブブラウザのようなシンクラ

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

課題 3. 複数の SaaS とサービス間の連携

AWS Cloud

?サービス A

SaaS 提供事業者

サービス C

サービス B

SaaS 提供事業者

SaaS 提供事業者

ポーリング失敗

⼤量のリクエスト

SaaS アプリケーションで発⽣したデータを、単⼀もしくは複数のサービスへ適切にルーティングすることが求められる

SaaS アプリケーションと連携先のサービス間の通信を⾮同期にすることで、⼀部の影響

を他に波及させないことが求められる

+どう解決するか︖

Page 41: 分で理解する︕ とAWS のサーバーレスなつなぎ⽅ · q アプリケーションには、クライアントの様々な装置から、ウェブブラウザのようなシンクラ

© 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)

Page 42: 分で理解する︕ とAWS のサーバーレスなつなぎ⽅ · q アプリケーションには、クライアントの様々な装置から、ウェブブラウザのようなシンクラ

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

イベントバスによるイベント駆動アーキテクチャの導⼊課題 3. 複数の SaaS とサービス間の連携

AWS Cloud

サービス A

サービス C

発⾏(Publish)

購読(Subscribe)

サービス B

SaaS 提供事業者

SaaS 提供事業者

SaaS 提供事業者

イベントバスは受け取ったデータに応じて、データの受取を希望する

サービスへ振り分けを⾏う(購読 : Subscribe)

Page 43: 分で理解する︕ とAWS のサーバーレスなつなぎ⽅ · q アプリケーションには、クライアントの様々な装置から、ウェブブラウザのようなシンクラ

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

イベントバスの利⽤例課題 3. 複数の SaaS とサービス間の連携

AWS Cloud

管理者通知サービスシステム監視を⾏う SaaS

システムエラー発⽣

システムエラーの情報を発⾏

システムエラーの情報を購読しているサービスへ通知

例) システム監視を⾏う SaaS との統合

Page 44: 分で理解する︕ とAWS のサーバーレスなつなぎ⽅ · q アプリケーションには、クライアントの様々な装置から、ウェブブラウザのようなシンクラ

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

イベントバスの利⽤例課題 3. 複数の SaaS とサービス間の連携

AWS Cloud

管理者通知サービスシステム監視を⾏う SaaS

システムエラー発⽣

システムエラーの情報を発⾏

例) システム監視を⾏う SaaS との統合

システム復旧サービス新規サービス

へも通知

システムエラーの情報を購読するサービスを追加

新しいサービスの連携がイベントバスの設定変更のみで

完結する

Page 45: 分で理解する︕ とAWS のサーバーレスなつなぎ⽅ · q アプリケーションには、クライアントの様々な装置から、ウェブブラウザのようなシンクラ

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

イベントバスの利⽤例課題 3. 複数の SaaS とサービス間の連携

AWS Cloud

管理者通知サービスシステム監視を⾏う SaaS

システムエラー発⽣

システムエラーの情報を発⾏

例) システム監視を⾏う SaaS との統合

システム復旧サービス新規サービス

へも通知

システムエラーの情報を購読するサービスを追加

新しいサービスの連携がイベントバスの設定変更のみで

完結する

SaaS アプリケーションで連携が必要なデータを「イベント」とみなし、イベントが発⽣するたびに適切なサービスを起動する

「イベントバス」を⽤意することで、イベント駆動のアーキテクチャを構成する

Page 46: 分で理解する︕ とAWS のサーバーレスなつなぎ⽅ · q アプリケーションには、クライアントの様々な装置から、ウェブブラウザのようなシンクラ

© 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 提供事業者とすぐに連携が可能となっており、イベントの送信元として設定できる

Page 47: 分で理解する︕ とAWS のサーバーレスなつなぎ⽅ · q アプリケーションには、クライアントの様々な装置から、ウェブブラウザのようなシンクラ

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

AWS におけるイベントバス - Amazon EventBridge課題 3. 複数の SaaS とサービス間の連携

24 の SaaS 事業者に対応しており、今後も順次追加を予定

(※) 2020/02/14 時点

Page 48: 分で理解する︕ とAWS のサーバーレスなつなぎ⽅ · q アプリケーションには、クライアントの様々な装置から、ウェブブラウザのようなシンクラ

© 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

Page 49: 分で理解する︕ とAWS のサーバーレスなつなぎ⽅ · q アプリケーションには、クライアントの様々な装置から、ウェブブラウザのようなシンクラ

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Amazon EventBridge の利⽤事例課題 3. 複数の SaaS とサービス間の連携

Page 50: 分で理解する︕ とAWS のサーバーレスなつなぎ⽅ · q アプリケーションには、クライアントの様々な装置から、ウェブブラウザのようなシンクラ

© 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 事業者とどのように連携するか

Page 51: 分で理解する︕ とAWS のサーバーレスなつなぎ⽅ · q アプリケーションには、クライアントの様々な装置から、ウェブブラウザのようなシンクラ

© 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 などで構成されたサービス

Page 52: 分で理解する︕ とAWS のサーバーレスなつなぎ⽅ · q アプリケーションには、クライアントの様々な装置から、ウェブブラウザのようなシンクラ

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

まとめ

Page 53: 分で理解する︕ とAWS のサーバーレスなつなぎ⽅ · q アプリケーションには、クライアントの様々な装置から、ウェブブラウザのようなシンクラ

© 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 アプリケーションを

積極的に利⽤しましょう︕

Page 54: 分で理解する︕ とAWS のサーバーレスなつなぎ⽅ · q アプリケーションには、クライアントの様々な装置から、ウェブブラウザのようなシンクラ

© 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

Page 55: 分で理解する︕ とAWS のサーバーレスなつなぎ⽅ · q アプリケーションには、クライアントの様々な装置から、ウェブブラウザのようなシンクラ

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Page 56: 分で理解する︕ とAWS のサーバーレスなつなぎ⽅ · q アプリケーションには、クライアントの様々な装置から、ウェブブラウザのようなシンクラ

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

クイズ

Q1: SaaS アプリケーションとの連携において、サーバーレスなアーキテクチャを構成することで得られるメリットには、どのようなものが考えられるでしょうか。

Q2: 複数の SaaS アプリケーションと、複数の AWS 上のサービスを連携させたいとき、何が課題となり、どのように解決できるでしょうか。

Page 57: 分で理解する︕ とAWS のサーバーレスなつなぎ⽅ · q アプリケーションには、クライアントの様々な装置から、ウェブブラウザのようなシンクラ

Thank you!

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

今村 優太