amazon web servicesのご紹介 - aws | contact us · 2021. 6. 27. ·...

44
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. TOKYO 2019.10.03-04

Upload: others

Post on 11-Aug-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Amazon Web Servicesのご紹介 - AWS | Contact Us · 2021. 6. 27. · マルチテナントにおける課題の理解 マルチテナントにおけるテストの重要性 の理解

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

T O K Y O2

01

9.1

0.0

3-

04

Page 2: Amazon Web Servicesのご紹介 - AWS | Contact Us · 2021. 6. 27. · マルチテナントにおける課題の理解 マルチテナントにおけるテストの重要性 の理解

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

T O K Y O

20

19

.10

.03

-0

4

マルチテナント時代におけるテスト・ベストプラクティス

Tsuyoshi SHIMIZUSaaS Partner Solutions ArchitectAmazon Web Services Japan

B - 2

Page 3: Amazon Web Servicesのご紹介 - AWS | Contact Us · 2021. 6. 27. · マルチテナントにおける課題の理解 マルチテナントにおけるテストの重要性 の理解

4

自己紹介

清水 毅(しみず つよし)

現在: SaaS Partner Solutions Architect過去: 大規模ECサイトサービスSRE (java)

好きなツール– 負荷生成: JMetrer, BlazeMeter– プロファイリング: JProfiler– APM: AWS X-Ray– 脆弱性診断: AppScan

photographed at Amami

Page 4: Amazon Web Servicesのご紹介 - AWS | Contact Us · 2021. 6. 27. · マルチテナントにおける課題の理解 マルチテナントにおけるテストの重要性 の理解

5

➢ 対象

➢ マルチテナントにおけるテストを知りたいエンジニア

➢ 目的

➢ マルチテナントにおける課題の理解

➢ マルチテナントにおけるテストの重要性の理解

➢ マルチテナントにおけるテストのプラクティスの理解

➢ 触れない項目

➢ いわゆるアプリのユニットテストやシングルテナントにおけるテストの詳細

➢ テストツールの詳細

➢ AWSサービスの紹介

対象と目的

Page 5: Amazon Web Servicesのご紹介 - AWS | Contact Us · 2021. 6. 27. · マルチテナントにおける課題の理解 マルチテナントにおけるテストの重要性 の理解

6

➢ マルチテナントの基本➢ マルチテナント の基本

➢ マルチテナント・パフォーマンス

➢ マルチテナント・セキュリティ

➢ マルチテナント・テストの基本➢ シングルテナント・テストの基本

➢ マルチテナント・テストの基本

➢ マルチテナント・テスト・ベストプラクティス➢ 5つのテスト

➢ Tips

本セッションの流れ

Page 6: Amazon Web Servicesのご紹介 - AWS | Contact Us · 2021. 6. 27. · マルチテナントにおける課題の理解 マルチテナントにおけるテストの重要性 の理解

7

マルチテナントの基本

© 2 0 1 9 , A m a z o n W e b S e r v i c e s , I n c . o r i t s a f f i l i a t e s . A l l r i g h t s r e s e r v e d .

Page 7: Amazon Web Servicesのご紹介 - AWS | Contact Us · 2021. 6. 27. · マルチテナントにおける課題の理解 マルチテナントにおけるテストの重要性 の理解

8

マルチテナントの今回の定義

マルチテナント ≒ SaaS

Page 8: Amazon Web Servicesのご紹介 - AWS | Contact Us · 2021. 6. 27. · マルチテナントにおける課題の理解 マルチテナントにおけるテストの重要性 の理解

9

SaaS とは?

SaaSの定義(※本セッションにおいて)

1.使用量やユーザー数によって課金2.オンデマンドでセルフサービス3.マルチテナントでインフラを共有4.柔軟な使用量

マルチテナントによる運用コストとインフラコストのダブルダウンが重要テーマ

© 2 0 1 9 , A m a z o n W e b S e r v i c e s , I n c . o r i t s a f f i l i a t e s . A l l r i g h t s r e s e r v e d .

Page 9: Amazon Web Servicesのご紹介 - AWS | Contact Us · 2021. 6. 27. · マルチテナントにおける課題の理解 マルチテナントにおけるテストの重要性 の理解

10

フェーズ0. クラウドリフトクラウド上でのサーバ稼働

フェーズ1. シングルテナント移行サイロ化モデル

フェーズ2. 一部マルチテナント移行データ層共通化

フェーズ3. 完全マルチテナント移行Webアプリケーション化

フェーズ4. クラウド最適化コンテナ化・サーバレス化

クラウドにおけるSaaS化のフェーズ

運用

コス

ト減

Page 10: Amazon Web Servicesのご紹介 - AWS | Contact Us · 2021. 6. 27. · マルチテナントにおける課題の理解 マルチテナントにおけるテストの重要性 の理解

12

SaaSの売上とコストの特徴金額

ストック型で、毎月の売上・コストが増えていく利用者が増えると売上が増える

コスト

売上

販売月

面積で考える

合わせてインフラコスト・運用コストも増えていく

Page 11: Amazon Web Servicesのご紹介 - AWS | Contact Us · 2021. 6. 27. · マルチテナントにおける課題の理解 マルチテナントにおけるテストの重要性 の理解

13

金額

時間

システム障害、パフォーマンス悪化、セキュリティインシデントやバージョンアップが遅いなどで解約が加速する。

SaaSの売上とコストの特徴(売上低下例)

コスト

売上

インシデント発生

安定運用がとても大事

Page 12: Amazon Web Servicesのご紹介 - AWS | Contact Us · 2021. 6. 27. · マルチテナントにおける課題の理解 マルチテナントにおけるテストの重要性 の理解

14

金額

時間

時間が経ってユーザもデータも増える規模に応じた運用体制の改善をしないと、

運用コストは一気に増える

SaaSの売上とコストの特徴(運用コスト増大例)

コスト

売上サーバ運用が複雑になり運用コストが増大

運用コストをおさえる仕組みがとても大事

Page 13: Amazon Web Servicesのご紹介 - AWS | Contact Us · 2021. 6. 27. · マルチテナントにおける課題の理解 マルチテナントにおけるテストの重要性 の理解

15

金額

時間が経ってユーザもデータも増える規模に応じた運用体制の改善をしないと、

運用コストは一気に増える

SaaSの売上とコストの特徴(運用コスト増大例)

コスト

売上

サーバ運用が複雑になり運用コストが増大

SaaSでは、規模やステージに合わせたインフラや運用方法がとても大事

時間

運用コストをおさえる仕組みがとても大事

Page 14: Amazon Web Servicesのご紹介 - AWS | Contact Us · 2021. 6. 27. · マルチテナントにおける課題の理解 マルチテナントにおけるテストの重要性 の理解

16

マルチテナントパフォーマンス

© 2 0 1 9 , A m a z o n W e b S e r v i c e s , I n c . o r i t s a f f i l i a t e s . A l l r i g h t s r e s e r v e d .

Page 15: Amazon Web Servicesのご紹介 - AWS | Contact Us · 2021. 6. 27. · マルチテナントにおける課題の理解 マルチテナントにおけるテストの重要性 の理解

17

金額

時間

コスト

売上

フェーズ0

フェーズ1

フェーズ2

クラウドを活用し安定とパフォーマンスを維持しながら運用コストを下げ

本来の機能開発に集中し、売上を上げていく

売上とコスト推移

Page 16: Amazon Web Servicesのご紹介 - AWS | Contact Us · 2021. 6. 27. · マルチテナントにおける課題の理解 マルチテナントにおけるテストの重要性 の理解

18サイジングが占いに近い。オンプレミスでは増減が簡単にできない。

SaaSインフラの課題コスト

時間

実際の推移

高額な設備投資費用

無駄な維持運用コスト

性能問題が発生

利用者がいない状態で、初期費

用が膨大

実際に使用していない資産にも費用が発生

お客様が解約してもインフラ費用が減らず利益を圧迫

Page 17: Amazon Web Servicesのご紹介 - AWS | Contact Us · 2021. 6. 27. · マルチテナントにおける課題の理解 マルチテナントにおけるテストの重要性 の理解

19

SaaSインフラの課題

お客様の利用量に合わせ柔軟な増減が可能

ジャストサイズのインフラを利用できる

コスト

時間

クラウドではSaaSのお客様の利用に応じたインフラを迅速に用意可能。受注機会を逃さず、また利用量に応じて増減が可能のためコストの最適化ができる。

Page 18: Amazon Web Servicesのご紹介 - AWS | Contact Us · 2021. 6. 27. · マルチテナントにおける課題の理解 マルチテナントにおけるテストの重要性 の理解

20

マルチテナントセキュリティ

© 2 0 1 9 , A m a z o n W e b S e r v i c e s , I n c . o r i t s a f f i l i a t e s . A l l r i g h t s r e s e r v e d .

Page 19: Amazon Web Servicesのご紹介 - AWS | Contact Us · 2021. 6. 27. · マルチテナントにおける課題の理解 マルチテナントにおけるテストの重要性 の理解

22

IT System Security

Web Application

SystemSecurity

SaaS Security Overview

SaaSSecurity

© 2 0 1 9 , A m a z o n W e b S e r v i c e s , I n c . o r i t s a f f i l i a t e s . A l l r i g h t s r e s e r v e d .

Page 20: Amazon Web Servicesのご紹介 - AWS | Contact Us · 2021. 6. 27. · マルチテナントにおける課題の理解 マルチテナントにおけるテストの重要性 の理解

23

SaaSアプリケーションアーキテクチャ戦略

ユーザ・テナント登録

APIアクセス対応

ユーザー管理テナントレベル毎システムサポート

レイヤー分離

App層

WEB層

App層

フルスタック分離 ネットワーク分離

テナント毎DB分割 テナント毎スキーマ分割 共有型

認証

テナ

ント

分離

デー

タパ

ーテ

ィシ

ョニ

ング

テナント1 テナント1

テナント2テナント2テナント2

テナント1

Page 21: Amazon Web Servicesのご紹介 - AWS | Contact Us · 2021. 6. 27. · マルチテナントにおける課題の理解 マルチテナントにおけるテストの重要性 の理解

24

フルスタック分離

EC2 フルスタック分離 コンテナ分離

Container Instance

Container Instance

Container Instance

Container Instance

テナント1 テナント2テナント1

Web Tier

App Tier

テナント2

Web Tier

App Tier

Page 22: Amazon Web Servicesのご紹介 - AWS | Contact Us · 2021. 6. 27. · マルチテナントにおける課題の理解 マルチテナントにおけるテストの重要性 の理解

25

マルチテナント・データベース・データ分離

テナント2テーブル

テナント1テーブル

スキーマ分離 テーブル分離 行分離

Tenant 1 84049-49 True

Tenant 2 82-84-949 False

Tenant 1 Bob Smith

Tenant 2 Lisa Johnson

テナントIDによる行の特定

テナント1スキーマ

テナント2スキーマ

Page 23: Amazon Web Servicesのご紹介 - AWS | Contact Us · 2021. 6. 27. · マルチテナントにおける課題の理解 マルチテナントにおけるテストの重要性 の理解

26

シングルテナントテスト

© 2 0 1 9 , A m a z o n W e b S e r v i c e s , I n c . o r i t s a f f i l i a t e s . A l l r i g h t s r e s e r v e d .

Page 24: Amazon Web Servicesのご紹介 - AWS | Contact Us · 2021. 6. 27. · マルチテナントにおける課題の理解 マルチテナントにおけるテストの重要性 の理解

27

代表的なテスト

JUnitを代表とするテスト

2結合テスト

機能要件を統合したテスト

1単体テスト 3インフラテスト

ハードウェア障害ネットワーク障害

OS障害ミドルウェア障害

などのテスト

4システムテスト

システム全体を統合し本番を模擬したテスト

5パフォーマンステスト

参照系テスト更新系テスト

参照系+更新系テストレイテンシーテストスループットテスト

限界性能テスト耐久テスト

6セキュリティテスト

ブラックボックステストホワイトボックステストグラスボックステスト

Page 25: Amazon Web Servicesのご紹介 - AWS | Contact Us · 2021. 6. 27. · マルチテナントにおける課題の理解 マルチテナントにおけるテストの重要性 の理解

28

マルチテナントテスト

© 2 0 1 9 , A m a z o n W e b S e r v i c e s , I n c . o r i t s a f f i l i a t e s . A l l r i g h t s r e s e r v e d .

Page 26: Amazon Web Servicesのご紹介 - AWS | Contact Us · 2021. 6. 27. · マルチテナントにおける課題の理解 マルチテナントにおけるテストの重要性 の理解

29

SaaSにおけるテスト範囲

インフラ

アプリケーション

パフォーマンス セキュリティ UX

サービス

ユニット/結合テスト

インフラテスト

マルチテナントテスト

サービステスト

システムテスト

Page 27: Amazon Web Servicesのご紹介 - AWS | Contact Us · 2021. 6. 27. · マルチテナントにおける課題の理解 マルチテナントにおけるテストの重要性 の理解

30

SaaS operations: A higher DevOps bar

Zero downtime

Speed

Scale

Rapid delivery

Collaboration

Security

SaaS OPS

Page 28: Amazon Web Servicesのご紹介 - AWS | Contact Us · 2021. 6. 27. · マルチテナントにおける課題の理解 マルチテナントにおけるテストの重要性 の理解

31

マルチテナント・テスト

ベストプラクティス

© 2 0 1 9 , A m a z o n W e b S e r v i c e s , I n c . o r i t s a f f i l i a t e s . A l l r i g h t s r e s e r v e d .

Page 29: Amazon Web Servicesのご紹介 - AWS | Contact Us · 2021. 6. 27. · マルチテナントにおける課題の理解 マルチテナントにおけるテストの重要性 の理解

32

5つのベストプラクティス

1. テナント負荷

2. テナント分離

3. テナントライフサイクル

4. ティア境界

5. フォールトトレランス

https://aws.amazon.com/jp/blogs/apn/testing-saas-solutions-on-aws/Testing SaaS Solutions on AWS:

Page 30: Amazon Web Servicesのご紹介 - AWS | Contact Us · 2021. 6. 27. · マルチテナントにおける課題の理解 マルチテナントにおけるテストの重要性 の理解

33

ベストプラクティス1.テナント負荷テスト

マルチテナントの予測不能な負荷によるパフォーマンス問題を表面化

1. テナント間の影響テスト

2. テナント消費テスト

3. テナントワークフローテスト

4. テナントオンボーディングテスト

5. APIスロットルテスト

6. データ分散テスト

Page 31: Amazon Web Servicesのご紹介 - AWS | Contact Us · 2021. 6. 27. · マルチテナントにおける課題の理解 マルチテナントにおけるテストの重要性 の理解

34

ベストプラクティス2.テナント分離テスト

認証認可のような要件にまつわる脆弱性は一般のWEBアプリケーションセキュリティテストでテストできない!

Page 32: Amazon Web Servicesのご紹介 - AWS | Contact Us · 2021. 6. 27. · マルチテナントにおける課題の理解 マルチテナントにおけるテストの重要性 の理解

35

ベストプラクティス3.テナントライフサイクルテスト

テナントのユーザー体験として監視を実施

Page 33: Amazon Web Servicesのご紹介 - AWS | Contact Us · 2021. 6. 27. · マルチテナントにおける課題の理解 マルチテナントにおけるテストの重要性 の理解

36

ベストプラクティス4.ティア境界テスト

ティア毎のモニタリングとあわせて実施

• 契約レベル=ティア• ゴールドプラン、スタンダードプラン

など

• ティア毎のサポートレベルやリソース利用がわかれているか“ポリシー通り”か確認するテスト

Page 34: Amazon Web Servicesのご紹介 - AWS | Contact Us · 2021. 6. 27. · マルチテナントにおける課題の理解 マルチテナントにおけるテストの重要性 の理解

37

ベストプラクティス5.フォールトトレランステスト

障害テスト

SLOSLA

RTO

RPO

RTOは数時間以内を目標に。できる限り本番に近い環境で障害を起こしてRTOより短いことを計測する(GameDay)

(できるだけ)本番で実測!

Page 35: Amazon Web Servicesのご紹介 - AWS | Contact Us · 2021. 6. 27. · マルチテナントにおける課題の理解 マルチテナントにおけるテストの重要性 の理解

38

マルチテナントテストベストプラクティス・まとめ

サービス価値を高めよう!!

1. テナント負荷

2. テナント分離

3. テナントライフサイクル

4. ティア境界

5. フォールトトレランス

Page 36: Amazon Web Servicesのご紹介 - AWS | Contact Us · 2021. 6. 27. · マルチテナントにおける課題の理解 マルチテナントにおけるテストの重要性 の理解

39

SaaS Testing Tips課題 解決策

1 テスト作るの大変 シナリオキャプチャツール・負荷生成ツールを使う

2 何をテストしていいかわからない 明確にテストをわける (スループット or レイテンシーetc…)

3 テスト完了に時間がかかる 並列でテストをする (環境わけるなど)

4 連携があるからテストができない スタブ(モック)作る

5 エラーや問題の調査に時間かかる ・まとめて最後に大きいテストを実施しない。小さく始める。・APMいれる。Observabilityを意識し、分析できるように(リソース分析 ログ分析 レスポンス分析 トレース分析 )。そもそもなんのテストをしているのか理解して対象を1個ずつにする

6 テストのメンテナンスができない 陳腐化させないために細かくメンテナンスしつづけるのが理想

7 目標設定が難しいし、ゴールがわからない

明確にゴール設定をする 。各機能やボタンにおける単位スループットと目標レイテンシーを社内で目標設定しそれを計測。(注:サーバーレスポンス時間 or ブラウザ描画完了時間)

8 どんなテストをすればいいのか? 長期稼働テスト 、スループットテスト、レスポンステストなど多数

9 テスト結果が再現できない 科学的に環境やシナリオを作成し再現性を考慮し変数は1ずつ変更

10 “たまに”遅いのがあるらしい GCを疑う(省メモリと省CPUコーディングの心がけにプラスして省“ガーベッジ”コーディングを実施 )

Page 37: Amazon Web Servicesのご紹介 - AWS | Contact Us · 2021. 6. 27. · マルチテナントにおける課題の理解 マルチテナントにおけるテストの重要性 の理解

40

まとめ

• マルチテナント時代のテストは、

特に非機能要件のテストを自動的に行う!

• セキュリティ• 他テナント情報が見えないように!

• パフォーマンス• 他テナントの影響を受けないように!

• Observability → 調査できるシステムに!• インスペクションツールやAPMの活用

Page 38: Amazon Web Servicesのご紹介 - AWS | Contact Us · 2021. 6. 27. · マルチテナントにおける課題の理解 マルチテナントにおけるテストの重要性 の理解

41

➢ ・ISV/SaaS事業者様の参考となる情報を集約したポータルサイト

➢ ・最新のトピックスや技術コンテンツに加え、パートナプログラム、SaaS on AWSのお客様事例も紹介

AWS SaaS Portal

https://aws.amazon.com/jp/partners/isv-saas-portal/

Page 39: Amazon Web Servicesのご紹介 - AWS | Contact Us · 2021. 6. 27. · マルチテナントにおける課題の理解 マルチテナントにおけるテストの重要性 の理解

42

SaaS Online Seminar Archive

➢ SaaS Portalより登録いただくことでアクセス可能

➢ 過去開催しているSaaS Online Seminar Seriesを資料と動画

https://pages.awscloud.com/event_JAPAN_saas-dojo_ondemand.html

Page 40: Amazon Web Servicesのご紹介 - AWS | Contact Us · 2021. 6. 27. · マルチテナントにおける課題の理解 マルチテナントにおけるテストの重要性 の理解

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

アンケートご協力のお願いお手持ちの受講票のアンケート用QRコードから

アンケートにお答えいただくと、記念品を差し上げております。

※イメージです

プレゼントの引き換えは、神田明神の会場出口付近(屋外)までお越しください

IT情報安全守護

Page 41: Amazon Web Servicesのご紹介 - AWS | Contact Us · 2021. 6. 27. · マルチテナントにおける課題の理解 マルチテナントにおけるテストの重要性 の理解

2019 年 10 月 1 日〜11 月 5 日開催amzn.to/AWSInnovateJP

申し込み受付中

AWS 最新アップデート / コンテナ / AIML / AWS アンチパターン /

認定試験対策講座など60セッション

オンラインで参加できるカンファレンス、全 60 セッション

10/9, 10/15 ライブ配信

AWS エキスパートへのQ&A

修了証明書の発行業務時間に視聴

Page 42: Amazon Web Servicesのご紹介 - AWS | Contact Us · 2021. 6. 27. · マルチテナントにおける課題の理解 マルチテナントにおけるテストの重要性 の理解

2019 年 10 月 1 日〜11 月 5 日開催amzn.to/AWSInnovateJP

Application Development

Container

Serverless

オンラインで参加できるカンファレンス、全 60 セッション

おすすめセッション

Page 43: Amazon Web Servicesのご紹介 - AWS | Contact Us · 2021. 6. 27. · マルチテナントにおける課題の理解 マルチテナントにおけるテストの重要性 の理解

Thank you!

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

• Tsuyoshi Shimizu

[email protected]

Page 44: Amazon Web Servicesのご紹介 - AWS | Contact Us · 2021. 6. 27. · マルチテナントにおける課題の理解 マルチテナントにおけるテストの重要性 の理解

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