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


Japan Windows Azure User Group
Microsoft MVP for Windows Azure

                         冨田 順
    http://twitter.com/harutama
自己紹介




   @harutama   2
質問はこちらで


http://social.msdn.microsoft.com
/Forums/ja-jp
/windowsazureja/threads




                                   3
さて!
      4
5
http://aws.clouddesignpattern.org   6
7
本セッションのゴール
• AWSクラウドデザインパターンの実装を
  現状のWindows Azureで考えることにより
  Windows Azureでできる事を理解する。




                              8
http://itpro.nikkeibp.co.jp/article/Watcher/20120621/404401/
                                                               9
Windows Azure に無いもの

                              Direct
CloudWatch   Auto Scaling                 Elastic IP    Route 53
                             Connect




  Simple     Identity and    Elastic       Simple        Simple
 Workflow       Access      Network      Notification     Email
  Service    Management     Interface     Service        Service




              Import/       Mechanical    Security      Availability
               Export         Turk         Group          Zone         10
Windows Azure 版も欲しい




                      11
よくある話…
         12
メールを送る手段




  http://sendgrid.com/azure.html   13
電話したりSMS送ったり




  http://www.twilio.com/azure   14
MySQL使いたいんですが?




  https://www.cleardb.com/store/azure   15
もっと楽に管理したいです




 http://www.rightscale.com/lp/azure.php   16
その他、あるあるに関しては…
Windows Azure デベロッパー サポート チーム ブログ




    http://blogs.msdn.com/b/dsazurejp/   17
Snapshot
             Stamp
           Scale Up
     Ondemand Disk

基本


                      18
新機能!




       にまつわるパターンです。
                      19
Snapshotパターン
         クラウド上で仮想サーバーの
        データ(OS含む)やその他の
        データをインターネットスト
        レージに複製するのは簡単で、
        スナップショットを定期的に実
        施する負担は小さい。

         クラウドでのスナップショッ
        トは管理画面でワンクリックす
        るだけで取得できるほか、API
        を使用して取得することもでき
        る。つまりプログラムを使用し
        て自動化できるということだ。

                      20
スナップショットの作成




      インスタンスが停止していないと
      スナップショットは作成できない




                    21
スナップショットの名前




              22
Stampパターン
        一度OSやミドルウエア、ア
       プリケーションの設定を行って
       しまえば、それらをコピーして
       おき、あたかも「Stamp(ス
       タンプ)」を押すかのように仮
       想サーバーを複製することで、
       環境設定済みの仮想サーバーを
       大量に用意できる。

        クラウドではサーバーやディ
       スクなどのリソースを論理的に
       扱えるため、こういった作業を
       容易に行うことができる。

                     23
スナップショットを作る時




               24
Sysprep の役割
• 複数のディスクイメージが作成された際に、
  矛盾が起こらないようにするコマンド。
 – コンピュータ名
 – 一意なSID(セキュリティID)
 – ドライバキャッシュ
• インスタンスの元になるイメージは、必ず
  Sysprep を実行しないと競合が起こる。
 – http://technet.microsoft.com/ja-jp
   /library/dd744263(v=WS.10).aspx

                                        25
イメージの登録




          26
登録するイメージの指定




              27
Scale Upパターン
         仮想サーバーのスペック
        (CPU、メモリーサイズな
        ど)を必要に応じて切り替える
        ことが可能である。
         稼働後にリソース不足に陥っ
        た場合、従来は物理サーバーを
        交換してOSを再インストール
        することが必要だったが、クラ
        ウドでは必要ない。
         ひとまず仮想サーバーを起動
        してシステムを稼働し、リソー
        ス利用量を確認しながらサー
        バースペックを変更する。
                     28
ポータル上でのサイズ変更




   インスタンスサイズを変更した場合
    インスタンスの再起動が必要     29
Ondemand Diskパターン
         クラウドでは仮想ディスクを
        利用できる。
         仮想ディスクは、いつでも好
        きなタイミングで必要なだけの
        容量を確保可能である。
         仮想ディスクを利用すれば、
        前もって精緻に見積もらなくて
        もよい。システムを稼働させた
        後に利用量を見ながら必要な容
        量のディスクをオンデマンド
        (OnDemand)に確保すれば
        よい。

                       30
ポータル上での操作




            31
新しいディスクのアタッチ




               32
仮想マシンで見た状態




             33
DB Replication
               Read Replica
         Inmemory DB Cache
             Sharding Write

リレーショナルデータベース


                              34
RDBを利用する際の候補




  RDS   SQL Database
データベースサービス比較
             SQL Database         RDS
インスタンス構成   専用の構成            EC2ベースの仮想マシン
パッチの適用     自動               自動 or 手動
レプリケーション   標準で3重化           ユーザーが構成
                            スケジュール指定の自動
バックアップ     手動バックアップ
                            手動バックアップ
           Federation       DBMSの機能や
シャーディング
           により提供            周辺ソフトで対応
           基本的に変更不可能        パラメータグループで
パラメータの変更
           自動チューニング         ある程度変更可能
容量の制限      150GBytes        実質 無制限



                                           36
Replicationパターン

          地理的ロケーションをまたい
         だレプリケーションを行うパ
         ターン。
          このパターンによりデータロ
         ストを防ぎ、データアクセスの
         可用性を担保する。クラウド以
         前からもあったパターンである
         が、クラウドを用いることで安
         価に複数の地理的ロケーション
         を利用できるようになり、現実
         的な選択肢となった。


                      37
Read Replicaパターン
          読み込みを複数の「リードレ
         プリカ(読み込み用のレプリ
         カ)」に分散させることで、全
         体のパフォーマンスを向上して
         いる。
          リードレプリカは、マスター
         に対する書き込みに追随する形
         で、自分自身のデータを反映さ
         せる。
          読み込みは主にリードレプリ
         カを利用することで、マスター
         の負荷も減らすことになる。

                      38
SQL Databaseでの
  レプリケーション
• プライマリと2台のセカンダリによって、
  保持しているデータは複製されている。
 – いずれかのマシンが停止した場合、自動的に
   昇格され、新たなレプリカを作成し、常に3台の
   マシンでデータが
   分散される。
 – ユーザーは何も
   する必要はない。
 – ただしAZの概念は
   無い。
                            39
SQL Data Sync




http://blogs.msdn.com/b/toiwade/archive/2012/06/06/
          sql-azure-data-sync-episode-80.aspx         40
Sharding Writeパターン
          複数のデータベースサーバー
         で書き込みパフォーマンスを上
         げる方法に「シャーディング」
         がある。
          基本的には、同じ構造のデー
         タベースを用意して適切なテー
         ブルのカラムをキーにして分割
         し、書き込み処理を分散する。
          クラウドが提供するRDBMS
         サービスを用いれば、可用性が
         高く、運用効率もよいシャー
         ディングが可能になる。

                       41
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/bookp
   review/introwinazure_0404/introwinazure
   _0404_01.html


                                             42
もっと 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
gloops での事例
http://channel9.msdn.com/Events/Windows-Developer-Days/Windows-
Developer-Days-2012/SP-012




                                                                  44
SQL Database の注意点
• 提供されるもの
 – データベースエンジン
 – レポーティング (SQL Reporting)
 – データ同期   (SQL Data Sync)
• 現状で未サポートの機能
 – Server Agent、SQL CLR など
 – バックアップと復元
   • 管理ポータルからインポート・エクスポート可能
 – テーブル パーティション分割
   • Federationで対応
 http://msdn.microsoft.com/ja-jp/library/windowsazure/ff394102
                                                            45
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
       /UserGuide/Concepts.DBEngine.SQLServer.html      46
RDB を利用する際の候補
データベースサービス




   RDS        SQL Database

仮想マシンサービス




    EC2      Virtual Machines
仮想マシンサービスの比較

           Virtual Machines        EC2
インスタンス構成   仮想マシン              仮想マシン
パッチの適用     手動                 手動
レプリケーション   ユーザーが構成            ユーザーが構成
バックアップ     ユーザーが構成            ユーザーが構成
シャーディング    ユーザーが構成            ユーザーが構成
パラメータの変更   すべて自由              すべて自由




                                         48
RDBを利用する際の候補
    データベースサービス
                                    自
                                    動
                                    運
                                    用

       RDS        SQL Database

    仮想マシンサービス

自
由
度
        EC2      Virtual Machines
Inmemory DB Cacheパターン
          データベースからの読み込み
         パフォーマンスを向上にする方
         法として、頻繁に読み込まれる
         データをメモリーにキャッシュ
         するのがこのパターンである。
          一度利用したデータをキャッ
         シュしておくことで、次に使う
         ときに(ディスクからでなく)
         メモリーからの読み込みで済ま
         せる方法である。
          キャッシュするデータの典型
         的な例としては、データベース
         処理において時間のかかるクエ
         リーの結果や複雑な計算結果な
         どが挙げられる。      50
メモリキャッシュ




 ElastiCache   Cache
新しい Caching
• 旧 AppFabric Caching で提供されていた
  キャッシュの機構とは異なる
 – Cloud Services (Web ロール・Worker ロール)
   のメモリを利用してデータをストア
   • ロールインスタンスのメモリを一部使用
   • キャッシュ専用ロールインスタンス
 – memcached 互換のプロトコルをサポート
 – 現在は Preview Release 中



                                         52
サンプル




http://code.msdn.microsoft.com/Windows-Azure-Caching-c35ec139
                                                                53
NuGet パッケージ




http://nuget.org/packages/WindowsAzure.Caching   54
Web Storage
               Direct Hosting
          Private Distribution
           Cache Distribution
         Rename Distribution

静的コンテンツを処理


                                 55
クラウド上のストレージ




 S3    Blobストレージ




                   56
Web Storageパターン
        大容量のファイルをインター
        ネットストレージへ配置し、そ
        こから直接ファイルを配信する
        ことで、Webサーバーのネット
        ワーク負荷とディスク容量の問
        題を解決する。
         インターネットストレージに
        保存したオブジェクトは、公開
        設定にすることでユーザーに直
        接アクセスさせることができる。
        これを利用してインターネット
        ストレージから配信するように、
        Webサーバーのネットワーク負
        荷を下げることができる。
                     57
大きいファイルの配信
     日経システムズ「クラウド設計のデザインパターン」




http://itpro.nikkeibp.co.jp/article/COLUMN/20110713/362355/
                                                              58
Direct Hostingパターン
          クラウドが提供するインター
         ネットストレージから直接デー
         タを配信する。
          インターネットストレージに
         保存したオブジェクトを公開設
         定にすることで、インターネッ
         トストレージ上のデータに直接
         アクセスさせることができる。
          インターネットストレージは
         元々共有ストレージとして使用
         される前提で設計されているの
         で、キャパシティー面では問題
         ない。負荷対策を行う必要が無
         くなる。
                      59
Blobストレージを簡易
Webサイトとして利用する




     http://blogs.msdn.com/b/naokis/archive
     /2011/03/12/azure-blob-web.aspx


                                              60
Blobストレージを簡易
Webサイトとして利用する




                61
Private Distributionパターン
            インターネットストレージで
           提供される制限付きURL発行機
           能を用いると、コンテンツに対
           して、アクセス元IPアドレス
           やアクセス可能期間を設定でき
           る。
            ユーザーごとにURLを発行し、
           その制限付きURLでのみコンテ
           ンツをダウンロードするように
           すれば、期限が切れたリンクや
           異なるIPアドレスを持つ人がア
           クセスを試みてもダウンロード
           できない。実質的に特定ユー
           ザーにのみコンテンツを提供す
           ることが可能になる。     62
Shared Access Signature
     日経システムズ「クラウド設計のデザインパターン」




http://itpro.nikkeibp.co.jp/article/COLUMN/20110713/362355/
                                                              63
Cache Distributionパターン
           世界各地に配置されたロケー
          ションに、コンテンツ配信元
          (マスター)から配布されるコ
          ンテンツのキャッシュデータを
          配置する。
           こうすることで、地理的によ
          り利用者に近いロケーションか
          らコンテンツを配信することに
          なり、地理的/物理的な制約を
          解決できる。
           このパターンを適用すると、
          ユーザーとコンテンツの距離が
          短くなるので、ユーザーへのレ
          スポンスを向上させることがで
          きる。            64
CDN
• コンテンツデリバリネットワーク = CDN
 – ユーザーが要求するコンテンツを、ネットワーク
   的に近い場所にあるキャッシュサーバーから配信
   することで、速度の向上と、サーバーへの負荷を
   分散させる。




    http://www.geekpage.jp/blog/?id=2009/4/27/1
                                                  65
ストレージとCDN




   S3        Blobストレージ




CloudFront      CDN
                         66
CDNのエッジロケーション




                67
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%E3%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
CDNの効果




 http://d.hatena.ne.jp/haru-tama/20100701   69
Rename Distributionパターン

           エッジサーバー上のキャッ
          シュデータは、そこにアクセス
          するURLがキーになる。
           アクセスURL自体を変更する
          ことで、エッジサーバーの
          キャッシュタイムアウトにかか
          わらず新しいコンテンツを配信
          できる。




                          70
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.jpg


  http://5net.com/blog/2012/03/reducing-operational-task-by-revving-
  filenames-in-cloudfront-with-ec2.html#more
                                                                       71
Rewrite Module for IIS 7




http://www.microsoft.com/ja-jp/download/details.aspx?id=7435
                                                               72
Application Request Routing




   http://blogs.gine.jp/taka/archives/2234
                                             73
質問はこちらで


http://social.msdn.microsoft.com
/Forums/ja-jp
/windowsazureja/threads




                                   74
Let’s dream and then let’s build.
                       - Ray Ozzie




                  冨田 順 (とみた すなお)
                http://twitter.com/harutama/
            http://d.hatena.ne.jp/haru-tama/

                                               75

Awsのクラウドデザインパターンをwindows azureに持ってきてみた

  • 1.
    AWS のクラウドデザインパターンを WindowsAzure に持ってきてみた Japan Windows Azure User Group Microsoft MVP for Windows Azure 冨田 順 http://twitter.com/harutama
  • 2.
    自己紹介 @harutama 2
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
    本セッションのゴール • AWSクラウドデザインパターンの実装を 現状のWindows Azureで考えることにより Windows Azureでできる事を理解する。 8
  • 9.
  • 10.
    Windows Azure に無いもの Direct CloudWatch Auto Scaling Elastic IP Route 53 Connect Simple Identity and Elastic Simple Simple Workflow Access Network Notification Email Service Management Interface Service Service Import/ Mechanical Security Availability Export Turk Group Zone 10
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
    その他、あるあるに関しては… Windows Azure デベロッパーサポート チーム ブログ http://blogs.msdn.com/b/dsazurejp/ 17
  • 18.
    Snapshot Stamp Scale Up Ondemand Disk 基本 18
  • 19.
    新機能! にまつわるパターンです。 19
  • 20.
    Snapshotパターン クラウド上で仮想サーバーの データ(OS含む)やその他の データをインターネットスト レージに複製するのは簡単で、 スナップショットを定期的に実 施する負担は小さい。 クラウドでのスナップショッ トは管理画面でワンクリックす るだけで取得できるほか、API を使用して取得することもでき る。つまりプログラムを使用し て自動化できるということだ。 20
  • 21.
    スナップショットの作成 インスタンスが停止していないと スナップショットは作成できない 21
  • 22.
  • 23.
    Stampパターン 一度OSやミドルウエア、ア プリケーションの設定を行って しまえば、それらをコピーして おき、あたかも「Stamp(ス タンプ)」を押すかのように仮 想サーバーを複製することで、 環境設定済みの仮想サーバーを 大量に用意できる。 クラウドではサーバーやディ スクなどのリソースを論理的に 扱えるため、こういった作業を 容易に行うことができる。 23
  • 24.
  • 25.
    Sysprep の役割 • 複数のディスクイメージが作成された際に、 矛盾が起こらないようにするコマンド。 – コンピュータ名 – 一意なSID(セキュリティID) – ドライバキャッシュ • インスタンスの元になるイメージは、必ず Sysprep を実行しないと競合が起こる。 – http://technet.microsoft.com/ja-jp /library/dd744263(v=WS.10).aspx 25
  • 26.
  • 27.
  • 28.
    Scale Upパターン 仮想サーバーのスペック (CPU、メモリーサイズな ど)を必要に応じて切り替える ことが可能である。 稼働後にリソース不足に陥っ た場合、従来は物理サーバーを 交換してOSを再インストール することが必要だったが、クラ ウドでは必要ない。 ひとまず仮想サーバーを起動 してシステムを稼働し、リソー ス利用量を確認しながらサー バースペックを変更する。 28
  • 29.
    ポータル上でのサイズ変更 インスタンスサイズを変更した場合 インスタンスの再起動が必要 29
  • 30.
    Ondemand Diskパターン クラウドでは仮想ディスクを 利用できる。 仮想ディスクは、いつでも好 きなタイミングで必要なだけの 容量を確保可能である。 仮想ディスクを利用すれば、 前もって精緻に見積もらなくて もよい。システムを稼働させた 後に利用量を見ながら必要な容 量のディスクをオンデマンド (OnDemand)に確保すれば よい。 30
  • 31.
  • 32.
  • 33.
  • 34.
    DB Replication Read Replica Inmemory DB Cache Sharding Write リレーショナルデータベース 34
  • 35.
  • 36.
    データベースサービス比較 SQL Database RDS インスタンス構成 専用の構成 EC2ベースの仮想マシン パッチの適用 自動 自動 or 手動 レプリケーション 標準で3重化 ユーザーが構成 スケジュール指定の自動 バックアップ 手動バックアップ 手動バックアップ Federation DBMSの機能や シャーディング により提供 周辺ソフトで対応 基本的に変更不可能 パラメータグループで パラメータの変更 自動チューニング ある程度変更可能 容量の制限 150GBytes 実質 無制限 36
  • 37.
    Replicationパターン 地理的ロケーションをまたい だレプリケーションを行うパ ターン。 このパターンによりデータロ ストを防ぎ、データアクセスの 可用性を担保する。クラウド以 前からもあったパターンである が、クラウドを用いることで安 価に複数の地理的ロケーション を利用できるようになり、現実 的な選択肢となった。 37
  • 38.
    Read Replicaパターン 読み込みを複数の「リードレ プリカ(読み込み用のレプリ カ)」に分散させることで、全 体のパフォーマンスを向上して いる。 リードレプリカは、マスター に対する書き込みに追随する形 で、自分自身のデータを反映さ せる。 読み込みは主にリードレプリ カを利用することで、マスター の負荷も減らすことになる。 38
  • 39.
    SQL Databaseでの レプリケーション • プライマリと2台のセカンダリによって、 保持しているデータは複製されている。 – いずれかのマシンが停止した場合、自動的に 昇格され、新たなレプリカを作成し、常に3台の マシンでデータが 分散される。 – ユーザーは何も する必要はない。 – ただしAZの概念は 無い。 39
  • 40.
  • 41.
    Sharding Writeパターン 複数のデータベースサーバー で書き込みパフォーマンスを上 げる方法に「シャーディング」 がある。 基本的には、同じ構造のデー タベースを用意して適切なテー ブルのカラムをキーにして分割 し、書き込み処理を分散する。 クラウドが提供するRDBMS サービスを用いれば、可用性が 高く、運用効率もよいシャー ディングが可能になる。 41
  • 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/bookp review/introwinazure_0404/introwinazure _0404_01.html 42
  • 43.
    もっと Federation! • SQLAzureを徹底活用 – 第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.
  • 45.
    SQL Database の注意点 •提供されるもの – データベースエンジン – レポーティング (SQL Reporting) – データ同期 (SQL Data Sync) • 現状で未サポートの機能 – Server Agent、SQL CLR など – バックアップと復元 • 管理ポータルからインポート・エクスポート可能 – テーブル パーティション分割 • Federationで対応 http://msdn.microsoft.com/ja-jp/library/windowsazure/ff394102 45
  • 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 /UserGuide/Concepts.DBEngine.SQLServer.html 46
  • 47.
    RDB を利用する際の候補 データベースサービス RDS SQL Database 仮想マシンサービス EC2 Virtual Machines
  • 48.
    仮想マシンサービスの比較 Virtual Machines EC2 インスタンス構成 仮想マシン 仮想マシン パッチの適用 手動 手動 レプリケーション ユーザーが構成 ユーザーが構成 バックアップ ユーザーが構成 ユーザーが構成 シャーディング ユーザーが構成 ユーザーが構成 パラメータの変更 すべて自由 すべて自由 48
  • 49.
    RDBを利用する際の候補 データベースサービス 自 動 運 用 RDS SQL Database 仮想マシンサービス 自 由 度 EC2 Virtual Machines
  • 50.
    Inmemory DB Cacheパターン データベースからの読み込み パフォーマンスを向上にする方 法として、頻繁に読み込まれる データをメモリーにキャッシュ するのがこのパターンである。 一度利用したデータをキャッ シュしておくことで、次に使う ときに(ディスクからでなく) メモリーからの読み込みで済ま せる方法である。 キャッシュするデータの典型 的な例としては、データベース 処理において時間のかかるクエ リーの結果や複雑な計算結果な どが挙げられる。 50
  • 51.
  • 52.
    新しい Caching • 旧AppFabric Caching で提供されていた キャッシュの機構とは異なる – Cloud Services (Web ロール・Worker ロール) のメモリを利用してデータをストア • ロールインスタンスのメモリを一部使用 • キャッシュ専用ロールインスタンス – memcached 互換のプロトコルをサポート – 現在は Preview Release 中 52
  • 53.
  • 54.
  • 55.
    Web Storage Direct Hosting Private Distribution Cache Distribution Rename Distribution 静的コンテンツを処理 55
  • 56.
  • 57.
    Web Storageパターン 大容量のファイルをインター ネットストレージへ配置し、そ こから直接ファイルを配信する ことで、Webサーバーのネット ワーク負荷とディスク容量の問 題を解決する。 インターネットストレージに 保存したオブジェクトは、公開 設定にすることでユーザーに直 接アクセスさせることができる。 これを利用してインターネット ストレージから配信するように、 Webサーバーのネットワーク負 荷を下げることができる。 57
  • 58.
    大きいファイルの配信 日経システムズ「クラウド設計のデザインパターン」 http://itpro.nikkeibp.co.jp/article/COLUMN/20110713/362355/ 58
  • 59.
    Direct Hostingパターン クラウドが提供するインター ネットストレージから直接デー タを配信する。 インターネットストレージに 保存したオブジェクトを公開設 定にすることで、インターネッ トストレージ上のデータに直接 アクセスさせることができる。 インターネットストレージは 元々共有ストレージとして使用 される前提で設計されているの で、キャパシティー面では問題 ない。負荷対策を行う必要が無 くなる。 59
  • 60.
    Blobストレージを簡易 Webサイトとして利用する http://blogs.msdn.com/b/naokis/archive /2011/03/12/azure-blob-web.aspx 60
  • 61.
  • 62.
    Private Distributionパターン インターネットストレージで 提供される制限付きURL発行機 能を用いると、コンテンツに対 して、アクセス元IPアドレス やアクセス可能期間を設定でき る。 ユーザーごとにURLを発行し、 その制限付きURLでのみコンテ ンツをダウンロードするように すれば、期限が切れたリンクや 異なるIPアドレスを持つ人がア クセスを試みてもダウンロード できない。実質的に特定ユー ザーにのみコンテンツを提供す ることが可能になる。 62
  • 63.
    Shared Access Signature 日経システムズ「クラウド設計のデザインパターン」 http://itpro.nikkeibp.co.jp/article/COLUMN/20110713/362355/ 63
  • 64.
    Cache Distributionパターン 世界各地に配置されたロケー ションに、コンテンツ配信元 (マスター)から配布されるコ ンテンツのキャッシュデータを 配置する。 こうすることで、地理的によ り利用者に近いロケーションか らコンテンツを配信することに なり、地理的/物理的な制約を 解決できる。 このパターンを適用すると、 ユーザーとコンテンツの距離が 短くなるので、ユーザーへのレ スポンスを向上させることがで きる。 64
  • 65.
    CDN • コンテンツデリバリネットワーク =CDN – ユーザーが要求するコンテンツを、ネットワーク 的に近い場所にあるキャッシュサーバーから配信 することで、速度の向上と、サーバーへの負荷を 分散させる。 http://www.geekpage.jp/blog/?id=2009/4/27/1 65
  • 66.
    ストレージとCDN S3 Blobストレージ CloudFront CDN 66
  • 67.
  • 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%E3%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.
  • 70.
    Rename Distributionパターン エッジサーバー上のキャッ シュデータは、そこにアクセス するURLがキーになる。 アクセスURL自体を変更する ことで、エッジサーバーの キャッシュタイムアウトにかか わらず新しいコンテンツを配信 できる。 70
  • 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.jpg http://5net.com/blog/2012/03/reducing-operational-task-by-revving- filenames-in-cloudfront-with-ec2.html#more 71
  • 72.
    Rewrite Module forIIS 7 http://www.microsoft.com/ja-jp/download/details.aspx?id=7435 72
  • 73.
    Application Request Routing http://blogs.gine.jp/taka/archives/2234 73
  • 74.
  • 75.
    Let’s dream andthen let’s build. - Ray Ozzie 冨田 順 (とみた すなお) http://twitter.com/harutama/ http://d.hatena.ne.jp/haru-tama/ 75