amazon web servicesのご紹介 - aws | contact us · 2021. 6. 27. ·...
TRANSCRIPT
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
T O K Y O2
01
9.1
0.0
3-
04
© 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
4
自己紹介
清水 毅(しみず つよし)
現在: SaaS Partner Solutions Architect過去: 大規模ECサイトサービスSRE (java)
好きなツール– 負荷生成: JMetrer, BlazeMeter– プロファイリング: JProfiler– APM: AWS X-Ray– 脆弱性診断: AppScan
photographed at Amami
5
➢ 対象
➢ マルチテナントにおけるテストを知りたいエンジニア
➢ 目的
➢ マルチテナントにおける課題の理解
➢ マルチテナントにおけるテストの重要性の理解
➢ マルチテナントにおけるテストのプラクティスの理解
➢ 触れない項目
➢ いわゆるアプリのユニットテストやシングルテナントにおけるテストの詳細
➢ テストツールの詳細
➢ AWSサービスの紹介
対象と目的
6
➢ マルチテナントの基本➢ マルチテナント の基本
➢ マルチテナント・パフォーマンス
➢ マルチテナント・セキュリティ
➢ マルチテナント・テストの基本➢ シングルテナント・テストの基本
➢ マルチテナント・テストの基本
➢ マルチテナント・テスト・ベストプラクティス➢ 5つのテスト
➢ Tips
本セッションの流れ
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 .
8
マルチテナントの今回の定義
マルチテナント ≒ SaaS
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 .
10
フェーズ0. クラウドリフトクラウド上でのサーバ稼働
フェーズ1. シングルテナント移行サイロ化モデル
フェーズ2. 一部マルチテナント移行データ層共通化
フェーズ3. 完全マルチテナント移行Webアプリケーション化
フェーズ4. クラウド最適化コンテナ化・サーバレス化
クラウドにおけるSaaS化のフェーズ
運用
コス
ト減
12
SaaSの売上とコストの特徴金額
ストック型で、毎月の売上・コストが増えていく利用者が増えると売上が増える
コスト
売上
販売月
面積で考える
合わせてインフラコスト・運用コストも増えていく
13
金額
時間
システム障害、パフォーマンス悪化、セキュリティインシデントやバージョンアップが遅いなどで解約が加速する。
SaaSの売上とコストの特徴(売上低下例)
コスト
売上
インシデント発生
安定運用がとても大事
14
金額
時間
時間が経ってユーザもデータも増える規模に応じた運用体制の改善をしないと、
運用コストは一気に増える
SaaSの売上とコストの特徴(運用コスト増大例)
コスト
売上サーバ運用が複雑になり運用コストが増大
運用コストをおさえる仕組みがとても大事
15
金額
時間が経ってユーザもデータも増える規模に応じた運用体制の改善をしないと、
運用コストは一気に増える
SaaSの売上とコストの特徴(運用コスト増大例)
コスト
売上
サーバ運用が複雑になり運用コストが増大
SaaSでは、規模やステージに合わせたインフラや運用方法がとても大事
時間
運用コストをおさえる仕組みがとても大事
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 .
17
金額
時間
コスト
売上
フェーズ0
フェーズ1
フェーズ2
クラウドを活用し安定とパフォーマンスを維持しながら運用コストを下げ
本来の機能開発に集中し、売上を上げていく
売上とコスト推移
18サイジングが占いに近い。オンプレミスでは増減が簡単にできない。
SaaSインフラの課題コスト
時間
実際の推移
高額な設備投資費用
無駄な維持運用コスト
性能問題が発生
利用者がいない状態で、初期費
用が膨大
実際に使用していない資産にも費用が発生
お客様が解約してもインフラ費用が減らず利益を圧迫
19
SaaSインフラの課題
お客様の利用量に合わせ柔軟な増減が可能
ジャストサイズのインフラを利用できる
コスト
時間
クラウドではSaaSのお客様の利用に応じたインフラを迅速に用意可能。受注機会を逃さず、また利用量に応じて増減が可能のためコストの最適化ができる。
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 .
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 .
23
SaaSアプリケーションアーキテクチャ戦略
ユーザ・テナント登録
APIアクセス対応
ユーザー管理テナントレベル毎システムサポート
レイヤー分離
App層
WEB層
App層
フルスタック分離 ネットワーク分離
テナント毎DB分割 テナント毎スキーマ分割 共有型
認証
テナ
ント
分離
デー
タパ
ーテ
ィシ
ョニ
ング
テナント1 テナント1
テナント2テナント2テナント2
テナント1
24
フルスタック分離
EC2 フルスタック分離 コンテナ分離
Container Instance
Container Instance
Container Instance
Container Instance
テナント1 テナント2テナント1
Web Tier
App Tier
テナント2
Web Tier
App Tier
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スキーマ
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 .
27
代表的なテスト
JUnitを代表とするテスト
2結合テスト
機能要件を統合したテスト
1単体テスト 3インフラテスト
ハードウェア障害ネットワーク障害
OS障害ミドルウェア障害
などのテスト
4システムテスト
システム全体を統合し本番を模擬したテスト
5パフォーマンステスト
参照系テスト更新系テスト
参照系+更新系テストレイテンシーテストスループットテスト
限界性能テスト耐久テスト
6セキュリティテスト
ブラックボックステストホワイトボックステストグラスボックステスト
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 .
29
SaaSにおけるテスト範囲
インフラ
アプリケーション
パフォーマンス セキュリティ UX
サービス
ユニット/結合テスト
インフラテスト
マルチテナントテスト
≒
サービステスト
システムテスト
30
SaaS operations: A higher DevOps bar
Zero downtime
Speed
Scale
Rapid delivery
Collaboration
Security
SaaS OPS
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 .
32
5つのベストプラクティス
1. テナント負荷
2. テナント分離
3. テナントライフサイクル
4. ティア境界
5. フォールトトレランス
https://aws.amazon.com/jp/blogs/apn/testing-saas-solutions-on-aws/Testing SaaS Solutions on AWS:
33
ベストプラクティス1.テナント負荷テスト
マルチテナントの予測不能な負荷によるパフォーマンス問題を表面化
1. テナント間の影響テスト
2. テナント消費テスト
3. テナントワークフローテスト
4. テナントオンボーディングテスト
5. APIスロットルテスト
6. データ分散テスト
34
ベストプラクティス2.テナント分離テスト
認証認可のような要件にまつわる脆弱性は一般のWEBアプリケーションセキュリティテストでテストできない!
35
ベストプラクティス3.テナントライフサイクルテスト
テナントのユーザー体験として監視を実施
36
ベストプラクティス4.ティア境界テスト
ティア毎のモニタリングとあわせて実施
• 契約レベル=ティア• ゴールドプラン、スタンダードプラン
など
• ティア毎のサポートレベルやリソース利用がわかれているか“ポリシー通り”か確認するテスト
37
ベストプラクティス5.フォールトトレランステスト
障害テスト
SLOSLA
RTO
RPO
RTOは数時間以内を目標に。できる限り本番に近い環境で障害を起こしてRTOより短いことを計測する(GameDay)
(できるだけ)本番で実測!
38
マルチテナントテストベストプラクティス・まとめ
サービス価値を高めよう!!
1. テナント負荷
2. テナント分離
3. テナントライフサイクル
4. ティア境界
5. フォールトトレランス
39
SaaS Testing Tips課題 解決策
1 テスト作るの大変 シナリオキャプチャツール・負荷生成ツールを使う
2 何をテストしていいかわからない 明確にテストをわける (スループット or レイテンシーetc…)
3 テスト完了に時間がかかる 並列でテストをする (環境わけるなど)
4 連携があるからテストができない スタブ(モック)作る
5 エラーや問題の調査に時間かかる ・まとめて最後に大きいテストを実施しない。小さく始める。・APMいれる。Observabilityを意識し、分析できるように(リソース分析 ログ分析 レスポンス分析 トレース分析 )。そもそもなんのテストをしているのか理解して対象を1個ずつにする
6 テストのメンテナンスができない 陳腐化させないために細かくメンテナンスしつづけるのが理想
7 目標設定が難しいし、ゴールがわからない
明確にゴール設定をする 。各機能やボタンにおける単位スループットと目標レイテンシーを社内で目標設定しそれを計測。(注:サーバーレスポンス時間 or ブラウザ描画完了時間)
8 どんなテストをすればいいのか? 長期稼働テスト 、スループットテスト、レスポンステストなど多数
9 テスト結果が再現できない 科学的に環境やシナリオを作成し再現性を考慮し変数は1ずつ変更
10 “たまに”遅いのがあるらしい GCを疑う(省メモリと省CPUコーディングの心がけにプラスして省“ガーベッジ”コーディングを実施 )
40
まとめ
• マルチテナント時代のテストは、
特に非機能要件のテストを自動的に行う!
• セキュリティ• 他テナント情報が見えないように!
• パフォーマンス• 他テナントの影響を受けないように!
• Observability → 調査できるシステムに!• インスペクションツールやAPMの活用
41
➢ ・ISV/SaaS事業者様の参考となる情報を集約したポータルサイト
➢ ・最新のトピックスや技術コンテンツに加え、パートナプログラム、SaaS on AWSのお客様事例も紹介
AWS SaaS Portal
https://aws.amazon.com/jp/partners/isv-saas-portal/
42
SaaS Online Seminar Archive
➢ SaaS Portalより登録いただくことでアクセス可能
➢ 過去開催しているSaaS Online Seminar Seriesを資料と動画
https://pages.awscloud.com/event_JAPAN_saas-dojo_ondemand.html
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
アンケートご協力のお願いお手持ちの受講票のアンケート用QRコードから
アンケートにお答えいただくと、記念品を差し上げております。
※イメージです
プレゼントの引き換えは、神田明神の会場出口付近(屋外)までお越しください
IT情報安全守護
2019 年 10 月 1 日〜11 月 5 日開催amzn.to/AWSInnovateJP
申し込み受付中
AWS 最新アップデート / コンテナ / AIML / AWS アンチパターン /
認定試験対策講座など60セッション
オンラインで参加できるカンファレンス、全 60 セッション
10/9, 10/15 ライブ配信
AWS エキスパートへのQ&A
修了証明書の発行業務時間に視聴
2019 年 10 月 1 日〜11 月 5 日開催amzn.to/AWSInnovateJP
Application Development
Container
Serverless
オンラインで参加できるカンファレンス、全 60 セッション
おすすめセッション
Thank you!
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
• Tsuyoshi Shimizu
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.