突発的なアクセス増に耐えるサイトを構築する
複業のWeb制作では、さくらインターネットのレンタルサーバーサービスを使用しています。
一般的にさくらインターネットに限らず、レンタルサーバーのサービスには一定以上のアクセスが集中すると、アクセス制限がかかるようになっています。レンタルサーバーの業者は、特定の契約者のアクセス増により他への影響が出ないよう、常に監視して必要なら制限をかけます。レンタルサーバー契約者全員に同じプランなら同じ価格で、公平なサービスを提供しなければならないので、仕方ないですね。
ダウンするとコンテンツ閲覧できないことも問題ですが、アクセス数のカウントやアクセス元の取得がダウンの間漏れてしまうことも問題です。
この記事を書いている理由も、あるイベントのWebでサイトがダウンする問題を解消したいからです。メディア紹介の影響で、想定を大幅に超えるアクセスがありました。
ELB+EC2でオートスケーリングする
ELBとCloudWatch Logsで、EC2をオートスケーリングすることもできますが、そもそもここまでの構成が必要なのかという疑問が湧いてきました。
Amazon CloudFrontを使う
AWSにはコンテンツ配信サービス(CDN)として、Amazon CloudFrontというサービスがあります。オンプレミスの方にCDNとかいう概念って分かりづらいと思います。僕もこれが一体何なのかさっぱり分かりませんでした。
CloudFrontはコンテンツのキャッシュを行うサービスです。世界中のエッジロケーションと呼ばれる場所に設置されていて、アクセス元から一番近いCloudFrontが使われます。CloudFrontは、それ自身にキャッシュされた結果があればそれをアクセス元に返す、キャッシュされた結果が無ければオリジンサーバー(この場合はEC2)にコンテンツを取得しに行き、その結果を返す働きをします。突発的なアクセス増にも、キャッシュ機能で対応できる訳です(EC2へのアクセスを最小限にできる)
独自ドメインやSSL証明書も設定出来ますし、この仕組みで解決できるのでは?と思いました。
静的コンテンツならEC2が不要では?
CGIやPHPなど動的なコンテンツが無い、静的なコンテンツならEC2すら不要で、S3バケット十分では?と思います。
別途EC2上のWordPressでサイトを制作し、プラグイン「Static Press」で静的サイト化して、S3に保存したコンテンツをCloudFront経由で配信すれば凄くシンプルな構成になります。更新するたびに静的サイト化する作業が発生しますが、一番低コストで済みそうです。
Amazon Web Services パターン別構築・運用ガイド 改訂第2版 (Informatics&IDEA)
- 作者: NRIネットコム株式会社,佐々木拓郎,林晋一郎,小西秀和,佐藤瞬
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2018/03/23
- メディア: 単行本
- この商品を含むブログ (1件) を見る