SlideShare a Scribd company logo
デザインパターンから見た
AWS と Azure
Japan Azure User Group
Microsoft MVP for Microsoft Azure
冨田 順
http://twitter.com/harutama
自己紹介
• はるたま(@harutama)
– 冨田 順(とみた すなお)
– 職業:プロ社畜
– Microsoft MVP for Microsoft Azure
• Azureのコミュニティやってます
– http://r.jazug.jp/
• クラウドごった煮の中の人もやってます
– http://www.cloudmix.jp/
2
AWS のデザインパターン
3
4http://aws.clouddesignpattern.org/
パターン一覧
• 基本のパターン
– Snapshotパターン(データのバックアップ)
– Stampパターン(サーバの複製)
– Scale Upパターン(動的なサーバのスペックアップ/ダウン)
– Scale Outパターン(サーバ数の動的増減)
– Ondemand Diskパターン(動的なディスク容量の増減)
• 可用性を向上するパターン
– Multi-Serverパターン(サーバの冗長化)
– Multi-Datacenterパターン(データセンターレベルの冗長化)
– Floating IPパターン(IPアドレスの動的な移動)
– Deep Health Checkパターン(システムのヘルスチェック)
• 動的コンテンツを処理するパターン
– Clone Serverパターン(サーバのクローン)
– NFS Sharingパターン(共有コンテンツの利用)
– NFS Replicaパターン(共有コンテンツの複製)
– State Sharingパターン(ステート情報の共有)
– URL Rewritingパターン(静的コンテンツの退避)
– Rewrite Proxyパターン(URL書き換えプロキシの設置)
– Cache Proxyパターン(キャッシュの設置)
– Scheduled Scale Outパターン(サーバ数のスケジュールにあわせ
た増減)
• 静的コンテンツを処理するパターン
– Web Storageパターン(可用性の高いインターネットストレージ活
用)
– Direct Hostingパターン(インターネットストレージで直接ホス
ティング)
– Private Distributionパターン(特定ユーザへのデータ配布)
– Cache Distributionパターン(ユーザに物理的に近い位置へのデー
タ配置)
– Private Cache Distributionパターン(CDNを用いたプライベート
配信)
– Rename Distributionパターン(変更遅延のない配信)
• データをアップロードするパターン
– Write Proxyパターン(インターネットストレージへの高速アップ
ロード)
– Storage Indexパターン(インターネットストレージの効率化)
– Direct Object Uploadパターン(アップロード手順の簡略化)
• リレーショナルデータベースのパターン
– DB Replicationパターン(オンラインDBの複製)
– Read Replicaパターン(読込専用レプリカによる負荷分散)
– Inmemory DB Cacheパターン(頻度の高いデータのキャッシュ化)
– Sharding Writeパターン(書き込みの効率化)
• バッチ処理のパターン
– Queuing Chainパターン(システムの疎結合化)
– Priority Queueパターン(優先順位の変更)
– Job Observerパターン(ジョブの監視とサーバの追加・削除)
– Scheduled Autoscalingパターン(バッチ処理サーバの自動オンオフ)
• 運用保守のパターン
– Bootstrapパターン(起動設定の自動取得)
– Cloud DIパターン(変更が多い部分の外出し)
– Stack Deploymentパターン(サーバ群立ち上げのテンプレート化)
– Server Swappingパターン(サーバの移行)
– Monitoring Integrationパターン(モニタリングツールの一元化)
– Web Storage Archiveパターン(大容量データのアーカイブ化)
– Weighted Transitionパターン(重みづけラウンドロビンDNSを使った
移行)
• ネットワークのパターン
– OnDemand NATパターン(メンテナンス時のインターネット設定変
更)
– Backnetパターン(管理用ネットワークの設置)
– Functional Firewallパターン(階層的アクセス制限)
– Operational Firewallパターン(機能別アクセス制限)
– Multi Load Balancerパターン(複数ロードバランサの設置)
– WAF Proxyパターン(高価なWeb Application Firewallの効率的な活
用)
– CloudHubパターン(VPN拠点の設置)
5
全体像
6
http://aws.clouddesignpattern.org/images/a/ac/Cdp-overview-org.png
Azure のデザインパターン
7
8
http://msdn.microsoft.com/en-us/library/dn568099.aspx
パターンの一覧
パターン
• Cache-Aside Pattern
• Circuit Breaker Pattern
• Compensating Transaction Pattern
• Competing Consumers Pattern
• Compute Resource Consolidation Pattern
• Command and Query Responsibility
Segregation (CQRS) Pattern
• Event Sourcing Pattern
• External Configuration Store Pattern
• Federated Identity Pattern
• Gatekeeper Pattern
• Health Endpoint Monitoring Pattern
• Index Table Pattern
• Leader Election Pattern
• Materialized View Pattern
• Pipes and Filters Pattern
• Priority Queue Pattern
• Queue-Based Load Leveling Pattern
• Retry Pattern
• Runtime Reconfiguration Pattern
• Scheduler Agent Supervisor Pattern
• Sharding Pattern
• Static Content Hosting Pattern
• Throttling Pattern
• Valet Key Pattern
ガイダンス
• Asynchronous Messaging Primer
• Autoscaling Guidance
• Caching Guidance
• Compute Partitioning Guidance
• Data Consistency Primer
• Data Partitioning Guidance
• Data Replication and Synchronization
Guidance
• Instrumentation and Telemetry Guidance
• Multiple Datacenter Deployment Guidance
• Service Metering Guidance
9
ここで一度考えてみる
10
パターンの分類
• AWS
– 基本
– 可用性を向上
– 動的コンテンツを処理
– 静的コンテンツを処理
– データをアップロード
– リレーショナル
データベース
– 運用保守
– ネットワーク
• Azure
– 設計と実装
– 可用性
– データ管理
– パフォーマンスと
スケーラビリティ
– メッセージング
– 回復性
– 管理と監視
– セキュリティ
11
12
特にデータベースについて
AWS は
自分でデータの可用性・回復性を
構成する
Azure は
サービスがデータの可用性・回復性を
提供する
AWS:DB Replication パターン
13
AWS:DB Replication パターン
• 基本的にはオプションの機能
– 最初から有効にはなっていないので、必要であれば
個別に設定する。
http://aws.typepad.com/aws_japan/2014/05/amazon-rds-for-
sql-server-with-multi-az.html
14
AWS:Read Replicaパターン
15
AWS:Read Replicaパターン
• 基本的にはオプションの機能
– 最初から有効にはなっていないので、必要であれば
個別に設定する。
http://aws.typepad.com/aws_japan/2014/05/amazon-rds-for-
sql-server-with-multi-az.html
• 個別で設定できる利点
– MySQL での多段リードレプリケート
http://dev.classmethod.jp/cloud/aws/evaluate-multistage-rds/
– クロスリージョン・リードレプリカ
http://aws.typepad.com/aws_japan/2013/11/cross-region-read-
replicas-for-amazon-rds-for-mysql.html
16
RDS を作成する際の項目
17
使用する
インスタンスの
大きさを指定
Multi-AZへの
デプロイ設定
ストレージの
サイズ設定
ストレージの
パフォーマンス設定
Azure:SQL データベース
18
http://gihyo.jp/admin/serial/01/sql_azure/0001
Azure:SQL データベース
• 1つのプライマリーの他に、2つのセカンダ
リーが自動的に作成される。
– 3つのデータベースインスタンスは、それぞれ異な
る物理マシン上に配置される。
• このレプリケーションの形を変形させることは
基本的にできない。
– セカンダリーを増やすことはできない。
(アクティブなジオレプリケーション機能はプレ
ビューで提供中)
19
SQL データベースでの
パフォーマンスの考え方
20
21
語弊はありますが…
AWS は
インフラエンジニアのためのクラウド
Azure は
ディベロッパーのためのクラウド
22
だからこんな対立も
AWS:Multi-Serverパターン
23
AWS:Multi-Datacenterパターン
24
Azure:Circuit Breakerパターン
25
Azure:Circuit Breakerパターン
Webサーバーをさらに追加したり負荷分散を
実装したりすることで、システムをスケール
すれば、リソースが枯渇する状況を先送り
できる場合もあります。
しかし、依然としてユーザーのリクエストが
反応しない状態となり、全てのWebサーバー
が最終的にはリソース不足に陥る可能性が
あるので、問題の解決にはなりません。
26
現実的な事を考えると
• ロードバランサーは普通に使っているも
ので、否定しているわけではない。
– AWS での ELB (Elastic Load Balancing)
– Azure でも各サービスについてくる
• 仮想マシン、Web サイト、クラウドサービス
• ロードバランサーだけで可用性と信頼性
の問題は解決できている(場合が多い)
27
でも、将来は状況が違うかも…
28
時間
ここまでなら
ロードバランサー
だけで
ロードバランサー
だけだと
怪しくなってくる
アプリに手を入れ
ないと無理
トラフィック
29
可用性・回復性を
どう解決するか?
30
お互いに
分かり合えない
わけではない
キャッシュ
31
Cache-Aside パターンInmemory DB Cache パターン
優先度付きのQueue
32
Priority Queue パターンPriority Queue パターン
Queueで繋げる
33
Pipes and Filters パターン
Queuing Chain パターン
静的コンテンツ配信
34
Static Content Hosting パターンWeb Storage パターン
特定の人へのコンテンツ配信
35
Private Distribution パターン Valet Key パターン
ヘルスチェック
36
Deep Health Check パターン
Health Endpoint Monitoring パターン
• キャッシュを活用する
– 全てをデータベースに頼らない
• キューを活用する
– 疎結合にすることでリソースを調整可能に
– 同期が必要ない部分はなるべく非同期に
• トラフィックを他のサービスにオフロード
– ストレージやCDNを活用してアプリケーションサー
バーに頼り過ぎない
• アプリケーションとしてのヘルスチェック
– アプリケーションサーバーだけが動作していても
アプリケーションとしての機能は果たせない
37
クラウドらしい設計とは?
38
Azure のパターンは
ソフトウエアの観点から
もう少し踏み込んで
Compensating Transaction
パターン
39
キーになるのは
40
結果整合性
Eventual Consistency
と
冪等性
Idempotence
Let’s dream and then let’s build.
- Ray Ozzie
冨田 順 (@harutama)
http://twitter.com/harutama

More Related Content

PPTX
A 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみた
PDF
[Azure Deep Dive] クラウド デザイン パターン ~優れたシステム構築のためのガイダンス~
PPTX
Azure aws違い
PDF
クラウドデザインパターンから始めるクラウドの利点と弱点の理解~提案から設計・開発・保守に活かす!~
PPTX
クラウドデザイン パターンに見る クラウドファーストな アプリケーション設計 Data Management編
PDF
Caching ガイダンスの話
PDF
それでもボクはMicrosoft Azure を使う
PDF
[修羅の街からこんにちわ♪JAZUG連動企画 by ふくあず] Windows Azureクラウド デザイン パターン
A 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみた
[Azure Deep Dive] クラウド デザイン パターン ~優れたシステム構築のためのガイダンス~
Azure aws違い
クラウドデザインパターンから始めるクラウドの利点と弱点の理解~提案から設計・開発・保守に活かす!~
クラウドデザイン パターンに見る クラウドファーストな アプリケーション設計 Data Management編
Caching ガイダンスの話
それでもボクはMicrosoft Azure を使う
[修羅の街からこんにちわ♪JAZUG連動企画 by ふくあず] Windows Azureクラウド デザイン パターン

What's hot (20)

PDF
AWS Cloud Design Pattern for Enterprise
PDF
20141004 青森ハンズオン Azure概要
PDF
クラウドデザインパターンのススメ
PDF
Microsoft Azure 概要 (2015 年 4 月版)
PPTX
[簡易提案書]Azure overview 2017_april_v1.00
PPTX
MongoDB on AWSクラウドという選択
PDF
オープンソーステクノロジー対応の App Service と Azure Database Servicesを活用した Webシステムデザイン
PDF
AWSのNoSQL入門
PDF
Azure IaaS update (2019年1月~2月 発表版)
PPTX
NoSQL on AWSで作る最新ソーシャルゲームアーキテクチャ
PDF
Amazon RDS (MySQL) 入門
PPTX
Azure Database for MySQL PostgreSQLを使って運用の手間を省きませんか?
PDF
はじめてのAmazon RDS for PostgreSQL
PPTX
オンプレからAuroraへの移行とその効果
PPTX
20170719 wintechq azure_stack
PDF
やりたいことから考えるMicrosoft Azure 上の データストアの選び方とデータサイエンティスト向け活用法。KVSからDWHまで
PDF
Rds徹底入門
PPTX
201910 azure seminar
PDF
Aws auto scalingによるwebapサーバbatchサーバの構成例
PDF
今さら聞けないMicrosoft azure仮想マシン入門
AWS Cloud Design Pattern for Enterprise
20141004 青森ハンズオン Azure概要
クラウドデザインパターンのススメ
Microsoft Azure 概要 (2015 年 4 月版)
[簡易提案書]Azure overview 2017_april_v1.00
MongoDB on AWSクラウドという選択
オープンソーステクノロジー対応の App Service と Azure Database Servicesを活用した Webシステムデザイン
AWSのNoSQL入門
Azure IaaS update (2019年1月~2月 発表版)
NoSQL on AWSで作る最新ソーシャルゲームアーキテクチャ
Amazon RDS (MySQL) 入門
Azure Database for MySQL PostgreSQLを使って運用の手間を省きませんか?
はじめてのAmazon RDS for PostgreSQL
オンプレからAuroraへの移行とその効果
20170719 wintechq azure_stack
やりたいことから考えるMicrosoft Azure 上の データストアの選び方とデータサイエンティスト向け活用法。KVSからDWHまで
Rds徹底入門
201910 azure seminar
Aws auto scalingによるwebapサーバbatchサーバの構成例
今さら聞けないMicrosoft azure仮想マシン入門
Ad

Similar to デザインパターンから見た AWS と Azure (20)

PDF
Awsのクラウドデザインパターンをwindows azureに持ってきてみた
PDF
AWSクラウドデザインパターン(CDP) - 概要編 -
PPTX
MTのスケールアップパターン with AWS
PDF
Awsのインフラをデザインパターン駆使して設計構築
PDF
20130413 JAWS-UG北陸 美人CDP
PDF
[AWS Summit 2012] クラウドデザインパターン#3 CDP Eコマース編 (EC-CUBE)
PPTX
20180421 Azure Architecture Cloud Design Patterns
PDF
[AWS Summit 2012] クラウドデザインパターン#5 CDP バッチ処理編
PPTX
Real World Cloud Architectures ~CDPの概念と実装~
PDF
20130330 JAWS-UG広島 美人CDP
PDF
Aws summits2014 エンタープライズ向けawsbcpdr編
PDF
実践!AWSクラウドデザインパターン
PDF
Enterprise cloud design pattern 大量データ処理アーキテクチャの構築
PPTX
JAZUG クラウドデザインパターンのコードを覗く
PDF
[AWS Summit 2012] クラウドデザインパターン#1 CDP概要編
PDF
クラウド案件の作り方 for azureしなの4周年
PDF
20130316 JAWS DAYS 美人CDP+
PDF
20130226 Amazon Web Services 勉強会(新宿)
PDF
Janog31 bof-pattern-sasaki-01
PDF
AWS Black Belt Online Seminar 2016 クラウドのためのアーキテクチャ設計 -ベストプラクティス-
Awsのクラウドデザインパターンをwindows azureに持ってきてみた
AWSクラウドデザインパターン(CDP) - 概要編 -
MTのスケールアップパターン with AWS
Awsのインフラをデザインパターン駆使して設計構築
20130413 JAWS-UG北陸 美人CDP
[AWS Summit 2012] クラウドデザインパターン#3 CDP Eコマース編 (EC-CUBE)
20180421 Azure Architecture Cloud Design Patterns
[AWS Summit 2012] クラウドデザインパターン#5 CDP バッチ処理編
Real World Cloud Architectures ~CDPの概念と実装~
20130330 JAWS-UG広島 美人CDP
Aws summits2014 エンタープライズ向けawsbcpdr編
実践!AWSクラウドデザインパターン
Enterprise cloud design pattern 大量データ処理アーキテクチャの構築
JAZUG クラウドデザインパターンのコードを覗く
[AWS Summit 2012] クラウドデザインパターン#1 CDP概要編
クラウド案件の作り方 for azureしなの4周年
20130316 JAWS DAYS 美人CDP+
20130226 Amazon Web Services 勉強会(新宿)
Janog31 bof-pattern-sasaki-01
AWS Black Belt Online Seminar 2016 クラウドのためのアーキテクチャ設計 -ベストプラクティス-
Ad

More from Sunao Tomita (20)

PDF
AD19_冨田・近江_TechSummit2018
PDF
俺の俺による俺のための App Service Environment
PPTX
ハンズオン環境をAzure仮想マシンを作成する.pptx
PPTX
OMSのあれこれ
PPTX
CPU 版 TensorFlow を Azure 仮想マシンに構築する
PPTX
Azure Notebook で TensorFlow をハンズオンする環境を作る話
PPTX
Azure2017年3月障害DeepDive
PPTX
Azure App Service を使った無料のハンズオン
PDF
Logic Apps と Api Apps の話
PDF
Mashup Ideathon 東北 in 青森
PDF
Build 2014 Azure 的まとめ
PDF
Windows Azure の歴史2014年2月26日版
PDF
Windows Azure の中でも動いている InfiniBand って何?
PDF
最近の Windows Azure ってどう?
PDF
2013年版の inside windows azure
PDF
Windows Azureの歴史 2013年2月版
PPTX
ネクスト・ジェネレーションクラウドネットワーク~雲の中のリストラクチャリング~
PDF
TypeScriptへの入口
PDF
build 2012 Windows Azure 的まとめ
PDF
Windows Azure で 2/29 に起こった問題のまとめ
AD19_冨田・近江_TechSummit2018
俺の俺による俺のための App Service Environment
ハンズオン環境をAzure仮想マシンを作成する.pptx
OMSのあれこれ
CPU 版 TensorFlow を Azure 仮想マシンに構築する
Azure Notebook で TensorFlow をハンズオンする環境を作る話
Azure2017年3月障害DeepDive
Azure App Service を使った無料のハンズオン
Logic Apps と Api Apps の話
Mashup Ideathon 東北 in 青森
Build 2014 Azure 的まとめ
Windows Azure の歴史2014年2月26日版
Windows Azure の中でも動いている InfiniBand って何?
最近の Windows Azure ってどう?
2013年版の inside windows azure
Windows Azureの歴史 2013年2月版
ネクスト・ジェネレーションクラウドネットワーク~雲の中のリストラクチャリング~
TypeScriptへの入口
build 2012 Windows Azure 的まとめ
Windows Azure で 2/29 に起こった問題のまとめ

デザインパターンから見た AWS と Azure