CDP:Direct Hostingパターン

(Difference between revisions)
Jump to: navigation, search
(注意)
Line 28: Line 28:
 
* S3上ではサーバサイドのプログラムを動かすことはできないため、例えばログインユーザーごとに異なるページを出すというような事はできない
 
* S3上ではサーバサイドのプログラムを動かすことはできないため、例えばログインユーザーごとに異なるページを出すというような事はできない
 
* S3から配信したコンテンツからJavaScriptの非同期通信などで動的にデータを取りたい場合、データ取得先のAPIサーバとはDNS名が異なってしまうため、JavaScriptのクロスドメイン通信の制約によりAPIサーバとはJSONPで通信する必要がある。
 
* S3から配信したコンテンツからJavaScriptの非同期通信などで動的にデータを取りたい場合、データ取得先のAPIサーバとはDNS名が異なってしまうため、JavaScriptのクロスドメイン通信の制約によりAPIサーバとはJSONPで通信する必要がある。
 +
 +
== その他 ==
 +
* S3には署名付きURLを発行する機能もあるため、限定利用者にのみアクセスを許すために署名付きURLを発行することもできる。またその署名付きURLに有効期限を設定することもできる。
 +
* S3ではバケットポリシーというアクセス認証を行う仕組みも用意されているため、特定の利用者からのみのアクセスを行ったり、HTTPSのみのアクセスに限る、などといった設定も可能である。
  
 
== 寄贈したアーキテクト ==
 
== 寄贈したアーキテクト ==
 
* [[Ninja of Three]]
 
* [[Ninja of Three]]

Revision as of 01:31, 15 April 2012

Contents

解決したい課題

クラウドを利用することでサーバの増減が容易に行えるようになり、システムに対する負荷(特にWebシステムにおけるアクセス負荷)が高くなっても、即時にスケールアップ/アウトすることで対応することができる。しかし、ごく短期間で急激にアクセスが増加した場合、サーバ数増加だけでは対応しきれない場合がある。

これに対応するために、アクセス増を見越してサーバ台数を増やしておく方法が考えられるが、無駄にサーバを増やしておくことは、コスト面で問題がある。

クラウドでの解決/パターンの説明

この課題を解決する一つの方法として、クラウドが提供する高い可用性と耐久性を持ったインターネットストレージから、直接データを配信する方法がある。

インターネットストレージに保存したオブジェクトを公開設定にすることで、インターネットストレージ上のデータに直接アクセスさせることができる。

インターネットストレージは元々共有ストレージとして使用される前提で設計されており、非常に多くのキャパシティを持っている。このため、あるサービスのアクセスが急激に増加しても、インターネットストレージ全体では問題なく処理できる。

ユーザーが負荷対策を行う必要は無くなるため、コスト的なメリットも大きい。

実装

  • Amazon S3上に、インターネットに公開したい静的なコンテンツ(HTML/CSS/JavaScript/画像/動画/...)をアップロードする。
  • S3バケットに、コンテンツを公開する設定を行う。バケットポリシーに、バケットのコンテンツを公開するパーミッションを設定する。
  • S3のWebサイトホスティング機能をOnにし、インデックスページやエラーページを設定する。

なお、自分のドメイン名を使用したい場合は、使用したいドメイン名のS3バケットを作成し、Amazon Route53などのDNSサーバに、もともとS3バケットに割り振られるDNS名をCNAMEとして登録する。

構造

6wNg0ISJczU5Pz1m-55ECE.png

利点

  • 静的コンテンツへのアクセスをS3に任せることで、Webシステムの可用性と耐久性を容易に高めることができる

注意

  • S3上ではサーバサイドのプログラムを動かすことはできないため、例えばログインユーザーごとに異なるページを出すというような事はできない
  • S3から配信したコンテンツからJavaScriptの非同期通信などで動的にデータを取りたい場合、データ取得先のAPIサーバとはDNS名が異なってしまうため、JavaScriptのクロスドメイン通信の制約によりAPIサーバとはJSONPで通信する必要がある。

その他

  • S3には署名付きURLを発行する機能もあるため、限定利用者にのみアクセスを許すために署名付きURLを発行することもできる。またその署名付きURLに有効期限を設定することもできる。
  • S3ではバケットポリシーというアクセス認証を行う仕組みも用意されているため、特定の利用者からのみのアクセスを行ったり、HTTPSのみのアクセスに限る、などといった設定も可能である。

寄贈したアーキテクト

Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox