A 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみた

1,444
-1

Published on

A-1-3

AWS のクラウド デザイン パターンを Windows Azure に持ってきてみた

Japan Windows Azure User Group
冨田 順

Published in: Technology
0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,444
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide

A 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみた

  1. 1. AWS のクラウドデザインパターンを Windows Azure に持ってきてみた Japan Windows Azure User Group Microsoft MVP for Windows Azure 冨田 順 http://twitter.com/harutama
  2. 2. 自己紹介• 好きなAWSのサービス DynamoDB• 好きなAzureのサービス Workerロール @harutama 2
  3. 3. 質問はこちらで 3
  4. 4. さて! 4
  5. 5. 5
  6. 6. http://aws.clouddesignpattern.org 6
  7. 7. 7
  8. 8. 本セッションのゴール• AWSクラウドデザインパターンの実装を 現状のWindows Azureで考えることにより Windows Azureでできる事を理解する。 8
  9. 9. http://itpro.nikkeibp.co.jp/article/Watcher/20120621/404401/ 9
  10. 10. Windows Azure に無いもの DirectCloudWatch Auto Scaling Elastic IP Route 53 Connect Simple Identity and Elastic Simple Simple Workflow Access Network Notification Email Service Management Interface Service Service Import/Ex Mechanical Security Availability port Turk Group Zone 10
  11. 11. Windows Azure 版も欲しい 11
  12. 12. よくある話… 12
  13. 13. メールを送る手段 http://sendgrid.com/azure.html 13
  14. 14. 電話したりSMS送ったり http://www.twilio.com/azure 14
  15. 15. MySQL使いたいんですが? https://www.cleardb.com/store/azure 15
  16. 16. もっと楽に管理したいです http://www.rightscale.com/lp/azure.php 16
  17. 17. その他、あるあるに関しては…Windows Azure デベロッパー サポート チーム ブログ http://blogs.msdn.com/b/dsazurejp/ 17
  18. 18. Snapshot Stamp Scale Up Ondemand Disk基本 18
  19. 19. 新機能! にまつわるパターンです。 19
  20. 20. Snapshotパターン クラウド上で仮想サーバーの データ(OS含む)やその他の データをインターネットスト レージに複製するのは簡単で、 スナップショットを定期的に実 施する負担は小さい。 クラウドでのスナップショッ トは管理画面でワンクリックす るだけで取得できるほか、API を使用して取得することもでき る。つまりプログラムを使用し て自動化できるということだ。 20
  21. 21. スナップショットの作成 インスタンスが停止していないと スナップショットは作成できない 21
  22. 22. スナップショットの名前 22
  23. 23. Stampパターン 一度OSやミドルウエア、ア プリケーションの設定を行って しまえば、それらをコピーして おき、あたかも「Stamp(スタ ンプ)」を押すかのように仮想 サーバーを複製することで、環 境設定済みの仮想サーバーを大 量に用意できる。 クラウドではサーバーやディ スクなどのリソースを論理的に 扱えるため、こういった作業を 容易に行うことができる。 23
  24. 24. スナップショットを作る時 24
  25. 25. Sysprep の役割• 複数のディスクイメージが作成された際 に、矛盾が起こらないようにするコマン ド。 – コンピュータ名 – 一意なSID(セキュリティID) – ドライバキャッシュ• インスタンスの元になるイメージは、必ず Sysprep を実行しないと競合が起こる。 – http://technet.microsoft.com/ja-jp /library/dd744263(v=WS.10).aspx 25
  26. 26. イメージの登録 26
  27. 27. 登録するイメージの指定 27
  28. 28. Scale Upパターン 仮想サーバーのスペック (CPU、メモリーサイズな ど)を必要に応じて切り替える ことが可能である。 稼働後にリソース不足に陥っ た場合、従来は物理サーバーを 交換してOSを再インストール することが必要だったが、クラ ウドでは必要ない。 ひとまず仮想サーバーを起動 してシステムを稼働し、リソー ス利用量を確認しながらサー バースペックを変更する。 28
  29. 29. ポータル上でのサイズ変更 インスタンスサイズを変更した場合 インスタンスの再起動が必要 29
  30. 30. Ondemand Diskパターン クラウドでは仮想ディスクを 利用できる。 仮想ディスクは、いつでも好 きなタイミングで必要なだけの 容量を確保可能である。 仮想ディスクを利用すれば、 前もって精緻に見積もらなくて もよい。システムを稼働させた 後に利用量を見ながら必要な容 量のディスクをオンデマンド (OnDemand)に確保すればよ い。 30
  31. 31. ポータル上での操作 31
  32. 32. 新しいディスクのアタッチ 32
  33. 33. 仮想マシンで見た状態 33
  34. 34. DB Replication Read Replica Inmemory DB Cache Sharding Writeリレーショナルデータベース 34
  35. 35. RDBを利用する際の候補 RDS SQL Database
  36. 36. データベースサービス比較 SQL Database RDSインスタンス構成 専用の構成 EC2ベースの仮想マシンパッチの適用 自動 自動 or 手動レプリケーション 標準で3重化 ユーザーが構成 スケジュール指定の自動バックアップ 手動バックアップ 手動バックアップ Federation DBMSの機能やシャーディング により提供 周辺ソフトで対応 基本的に変更不可能 パラメータグループでパラメータの変更 自動チューニング ある程度変更可能容量の制限 150GBytes 実質 無制限 36
  37. 37. Replicationパターン 地理的ロケーションをまたい だレプリケーションを行うパ ターン。 このパターンによりデータロ ストを防ぎ、データアクセスの 可用性を担保する。クラウド以 前からもあったパターンである が、クラウドを用いることで安 価に複数の地理的ロケーション を利用できるようになり、現実 的な選択肢となった。 37
  38. 38. Read Replicaパターン 読み込みを複数の「リードレ プリカ(読み込み用のレプリ カ)」に分散させることで、全 体のパフォーマンスを向上して いる。 リードレプリカは、マスター に対する書き込みに追随する形 で、自分自身のデータを反映さ せる。 読み込みは主にリードレプリ カを利用することで、マスター の負荷も減らすことになる。 38
  39. 39. SQL Databaseでの レプリケーション• プライマリと2台のセカンダリによって、 保持しているデータは複製されている。 – いずれかのマシンが停止した場合、自動的に 昇格され、新たなレプリカを作成し、常に3台の マシンでデータが 分散される。 – ユーザーは何も する必要はない。 – ただしAZの概念は 無い。 39
  40. 40. SQL Data Synchttp://blogs.msdn.com/b/toiwade/archive/2012/06/06/sql-azure- data-sync-episode-80.aspx 40
  41. 41. Sharding Writeパターン 複数のデータベースサーバー で書き込みパフォーマンスを上 げる方法に「シャーディング」 がある。 基本的には、同じ構造のデー タベースを用意して適切なテー ブルのカラムをキーにして分割 し、書き込み処理を分散する。 クラウドが提供するRDBMS サービスを用いれば、可用性が 高く、運用効率もよいシャー ディングが可能になる。 41
  42. 42. SQL Database Federation• SQL Database の上でシャーディングを行 うための仕組み – SQL Database Federation の仕様 http://msdn.microsoft.com/ja-jp /library/windowsazure/hh700294.aspx – SQL Azure Federation入門 http://www.atmarkit.co.jp/fdotnet/bookpreview/i ntrowinazure_0404/introwinazure_0404_01.ht ml 42
  43. 43. もっと Federation!• SQL Azureを徹底活用 – 第7回 スケールアウトとSQL Azure Federation http://gihyo.jp/admin/serial/01/sql_azure/0007 – 第8回 SQL Database Federationを使用する ための最初の一歩 http://gihyo.jp/admin/serial/01/sql_azure/0008 – 第9回 SQL Database Federationをスケールさせる http://gihyo.jp/admin/serial/01/sql_azure/0009 43
  44. 44. gloops での事例http://channel9.msdn.com/Events/Windows-Developer-Days/Windows-Developer-Days-2012/SP-012 44
  45. 45. SQL Database の注意点• 提供されるもの – データベースエンジン – レポーティング (SQL Reporting) – データ同期 (SQL Data Sync)• 現状で未サポートの機能 – Server Agent、SQL CLR など – バックアップと復元 • 管理ポータルからインポート・エクスポート可能 – テーブル パーティション分割 • Federationで対応 http://msdn.microsoft.com/ja-jp/library/windowsazure/ff394102 45
  46. 46. SQL Server 版 RDS の注意点• 提供されるもの – データベースエンジン – フルテキスト検索 – Safe SQL CLR • SQL Databaseでは未サポートの機能• 現状で未サポートの機能 – Replication、Server Agent、Reporting など • Replication は SQL Database 標準機能 • Windows Azure ではSQL Reportingとして提供 http://docs.amazonwebservices.com/AmazonRDS/latest/UserG uide/Concepts.DBEngine.SQLServer.html 46
  47. 47. RDB を利用する際の候補データベースサービス RDS SQL Database仮想マシンサービス EC2 Virtual Machines
  48. 48. 仮想マシンサービスの比較 Virtual Machines EC2インスタンス構成 仮想マシン 仮想マシンパッチの適用 手動 手動レプリケーション ユーザーが構成 ユーザーが構成バックアップ ユーザーが構成 ユーザーが構成シャーディング ユーザーが構成 ユーザーが構成パラメータの変更 すべて自由 すべて自由 48
  49. 49. RDBを利用する際の候補 データベースサービス 自 動 運 用 RDS SQL Database 仮想マシンサービス自由度 EC2 Virtual Machines
  50. 50. Inmemory DB Cacheパターン データベースからの読み込み パフォーマンスを向上にする方 法として、頻繁に読み込まれる データをメモリーにキャッシュ するのがこのパターンである。 一度利用したデータをキャッ シュしておくことで、次に使う ときに(ディスクからでなく) メモリーからの読み込みで済ま せる方法である。 キャッシュするデータの典型 的な例としては、データベース 処理において時間のかかるクエ リーの結果や複雑な計算結果な どが挙げられる。 50
  51. 51. メモリキャッシュ ElastiCache Cache
  52. 52. 新しい Caching• 旧 AppFabric Caching で提供されていた キャッシュの機構とは異なる – Cloud Services (Web ロール・Worker ロール)の メモリを利用してデータをストア • ロールインスタンスのメモリを一部使用 • キャッシュ専用ロールインスタンス – memcached 互換のプロトコルをサポート – 現在は Preview Release 中 52
  53. 53. サンプルhttp://code.msdn.microsoft.com/Windows-Azure-Caching-c35ec139 53
  54. 54. NuGet パッケージ http://nuget.org/packages/WindowsAzure.Caching 54
  55. 55. Web Storage Direct Hosting Private Distribution Cache Distribution Rename Distribution静的コンテンツを処理 55
  56. 56. クラウド上のストレージ S3 Blobストレージ 56
  57. 57. Web Storageパターン 大容量のファイルをインター ネットストレージへ配置し、そ こから直接ファイルを配信する ことで、Webサーバーのネット ワーク負荷とディスク容量の問 題を解決する。 インターネットストレージに 保存したオブジェクトは、公開 設定にすることでユーザーに直 接アクセスさせることができ る。これを利用してインター ネットストレージから配信する ように、Webサーバーのネット ワーク負荷を下げることができ る。 57
  58. 58. 大きいファイルの配信日経システムズ「クラウド設計のデザインパターン」 http://itpro.nikkeibp.co.jp/article/COLUMN/20110713/362355/ 58
  59. 59. Direct Hostingパターン クラウドが提供するインター ネットストレージから直接デー タを配信する。 インターネットストレージに 保存したオブジェクトを公開設 定にすることで、インターネッ トストレージ上のデータに直接 アクセスさせることができる。 インターネットストレージは 元々共有ストレージとして使用 される前提で設計されているの で、キャパシティー面では問題 ない。負荷対策を行う必要が無 くなる。 59
  60. 60. Blobストレージを簡易Webサイトとして利用する http://blogs.msdn.com/b/naokis/archive/2011/ 03/12/azure-blob-web.aspx 60
  61. 61. Blobストレージを簡易Webサイトとして利用する 61
  62. 62. Private Distributionパターン インターネットストレージで 提供される制限付きURL発行機 能を用いると、コンテンツに対 して、アクセス元IPアドレスや アクセス可能期間を設定でき る。 ユーザーごとにURLを発行 し、その制限付きURLでのみコ ンテンツをダウンロードするよ うにすれば、期限が切れたリン クや異なるIPアドレスを持つ人 がアクセスを試みてもダウン ロードできない。実質的に特定 ユーザーにのみコンテンツを提 供することが可能になる。 62
  63. 63. Shared Access Signature 日経システムズ「クラウド設計のデザインパターン」 http://itpro.nikkeibp.co.jp/article/COLUMN/20110713/362355/ 63
  64. 64. Cache Distributionパターン 世界各地に配置されたロケー ションに、コンテンツ配信元 (マスター)から配布されるコ ンテンツのキャッシュデータを 配置する。 こうすることで、地理的によ り利用者に近いロケーションか らコンテンツを配信することに なり、地理的/物理的な制約を 解決できる。 このパターンを適用すると、 ユーザーとコンテンツの距離が 短くなるので、ユーザーへのレ スポンスを向上させることがで きる。 64
  65. 65. CDN• コンテンツデリバリネットワーク = CDN – ユーザーが要求するコンテンツを、ネットワーク 的に近い場所にあるキャッシュサーバーから配信 することで、速度の向上と、サーバーへの負荷を 分散させる。 http://www.geekpage.jp/blog/?id=2009/4/27/1 65
  66. 66. ストレージとCDN S3 BlobストレージCloudFront CDN 66
  67. 67. CDNのエッジロケーション 67
  68. 68. CDNの有効化• 詳細な手順は以下を参照 – http://buchizo.wordpress.com/2011/03/10/%E8%AA%B0%E3%82%82% E7%9F%A5%E3%82%89%E3%81%AA%E3%81%8B%E3%81%A3%E 3%81%9Fwindows-azure-cdn/<asp:Image ID="Image1" runat="server"ImageUrl="http://harutama.cloudapp.net /iremono/pic1.jpg" /><asp:Image ID="Image1" runat="server"ImageUrl="http://az4452.vo.msecnd.net /iremono/pic1.jpg" /> 68
  69. 69. CDNの効果 http://d.hatena.ne.jp/haru-tama/20100701 69
  70. 70. Rename Distributionパターン エッジサーバー上のキャッ シュデータは、そこにアクセス するURLがキーになる。 アクセスURL自体を変更する ことで、エッジサーバーの キャッシュタイムアウトにかか わらず新しいコンテンツを配信 できる。 70
  71. 71. Revving Filenames 「/v~/」の部分を変えるだけで 配信ファイルをコントロールhttp://example.com/v1/pic.jpg http://example.com/v1/pic.jpg RewriteEngine on配信するファイルの管理は RewriteRule ^/v[0-9]*/(.*) /$1 [PT]このURLの実体を変更する http://example.com/pic.jpghttp://5net.com/blog/2012/03/reducing-operational-task-by-revving-filenames-in-cloudfront-with-ec2.html#more 71
  72. 72. Rewrite Module for IIS 7 http://www.microsoft.com/ja-jp/download/details.aspx?id=7435 72
  73. 73. Application Request Routing http://blogs.gine.jp/taka/archives/2234 73
  74. 74. 質問はこちらで 74
  75. 75. Let’s dream and then let’s build. - Ray Ozzie 冨田 順 (とみた すなお) http://twitter.com/harutama/ http://d.hatena.ne.jp/haru-tama/ 75

×