ホーム » ビジネスブログ » »

覚え書き:Amazon Web Services(アマゾンウェブサービス)でAuto Scaling環境のCMSを構築する

2013年1月17日

覚え書き:Amazon Web Services(アマゾンウェブサービス)でAuto Scaling環境のCMSを構築する

投稿者 竹村

Zen CartやMovable Type、WordPressなどCMSでサイト構築をする際に、Amazon Web Services(アマゾンウェブサービス:以降AWS)を利用するケースが増えてきました。

AWSのようなクラウド環境を利用するメリットの一つとして、コストをあまりかけずにスケールアウトできる点があげられると思います。


クラウドを利用するメリットの1つ『スケールアウト』

スケールアウトとは、有名ニュースサイトに記事が載った際など大量のアクセスがあった時に自動的に新しいEC2インスタンスを作って、負荷分散ができるようにする仕組みです。
逆に、アクセスが落ち着いてきて自動的に作ったEC2インスタンスを削除するのがスケールインです。
このように自動的にインスタンスを制御することを「Auto Scaling」といいます。

どの時点を「大量のアクセス」と判断してスケールアウトするか...というルールはAWS上のCloudWatchを利用して設定します。
また、スケールアウト中は 2つ(以上)のインスタンスにユーザーからのアクセスを割り振る必要がありますが、このロードバランサーの役割はAWS上の管理画面でELB(Elastic Load Balancing)の設定しておけば勝手にやってくれます。

図1

クリックで拡大

  1. ELBはスケールアウトのルールにもとづいて高負荷状態になったら、EC2(B)を作る
    自動的にELBがユーザーのアクセスを割り振ってくれる
  2. 各EC2インスタンスが処理してレスポンスを返す
    DBサーバーに対するデータ操作は、DBサーバーが一元管理されているのでデータ不整合にはならない
  3. 逆に、ELBがスケールインのルールにもとづいて通常となったら、EC2(B)は消される
    通常時に戻る


Auto Scalingのルール

スケールアウト/スケールインするためには、どの時点を「高負荷状態」なのかを判断するルールをCloudWatch上で設定します。

Elastic Load Balancer: 10種の事前選択されたメトリックス(1分間隔)。無料。

を利用するので費用は掛かりません。

ルールは規模によると思いますが、例えば下記のように設定します。

  • ELBからの出力の60秒平均が5秒を超えると2台ずつスケールアウト(300秒毎)
  • ELBからの出力の60秒平均が2秒を下回ると1台ずつスケールイン(300秒毎)


ただし、ひとつ注意が必要なのは、スケールアウトが必要になってから実際に使えるようになるまでタイムラグがあります(5分など) 。よって、多少余裕をみたルール設定が必要になります。


Auto Scaling 時のCMS利用における注意点

さて、Auto Scaling でサーバーの台数が増減するような環境では、http://www.example.jp/ へのアクセスが複数台のサーバーで処理される場合が出てきます。

すると、以下のような問題が起きることがあります。

管理者がCMSにログインし、コンテンツを news/hoge.html という静的ファイルとして保存しようとしたらエラーになった!

エラーになった原因は、管理者さんの作業中にスケールアウトして、ファイル保存前にスケールインが起きたため、というわけです。CMSのバグ? と推測してしまった場合は原因究明でえらいことになりそうですね。


上記の解決方法としては、CMSへのアクセスは常にメインとなるEC2(A)にアクセスするように設定すれば、Auto Scaling による影響は出なくなります。

具体的には、以下のようなDNS設定をします。

  • example.jp は www.example.jp に転送する
  • cms.example.jp (管理者用)は メインサーバーのElasticIPを割り振る
  • www.example.jp (ユーザー用)は CNAMEでELBに割り振る


また、Auto Scaling の設定は下記のようにしておきます。

  • メインサーバーとDBサーバーはそれぞれにオートスケーリンググループを設定して min=1, max=1 にセットする
  • スケールアウト/スケールインするサーバーはメインサーバーとは別のオートスケーリンググループを用意して min=0, max=X にセットする ※max=X は何台まで増やすかによる


この場合の費用(概算)

このように、Auto Scaling の設定をしておけば、サーバーダウンを避ける仕組みが構築できます。

では、このサーバー構成のための費用はだいたいどれくらいでしょうか。AWSではアクセスによる転送量や、サーバーに配置するコンテンツ容量など、環境によって金額が異なる従量課金制ですので、費用計算は難しいのですが、概算を出してみます。

想定:
  EC2 (東京リージョンを想定)
    L Web用にミディアム
    L DB 用にスモール
  Elastic IP (設定済みで費用なし)
  CloudWatch (Auto Scalingをするのに必要だけど無料の範囲内で利用)
  Auto Scaling
    L スケールアウトで起動するインスタンスは
      毎日2時間ほど3インスタンスがコンスタントにあがる想定
  その他 (EBS, S3)
  転送量などは適当に10GB/月

これで、一ヵ月$250?$300 程度でしょうか。ただし、上記の計算はバックアップ体制などは除外しているので、あくまで概算だと思ってください。

投稿者 竹村 : 2013年1月17日 14:06

タグ:


Movable Type用高機能メールフォーム生成プラグイン A-Formの詳細へ
Movable Type用会員限定サイトプラグイン A-Memberの詳細へ
Movable Type用予約サイト構築プラグイン A-Reserveの詳細へ
ARK-Web×CSR(企業の社会的責任)

アークウェブの本

Zen Cartによるオンラインショップ構築・運用テクニック―オープンソース徹底活用

Zen Cartによるオンラインショップ構築・運用テクニック―オープンソース徹底活用

内容充実のZen Cart公式本(v1.3対応)がついに発表です。アークウェブのスタッフをはじめZen-Cart.JPの中心メンバーが共著で執筆しました。続きを読む

Movable Type プロフェッショナル・スタイル

Movable Type プロフェッショナル・スタイル

ビジネスサイト構築におけるCMSとしてのMTの活用方法について、豪華執筆陣による実践的MT本です。八木が共著で執筆しました。続きを読む

Web屋の本

Web屋の本

Web 2.0時代の企業サイトの構築・運用などの戦略を考える「Web屋の本」 (技術評論社)を、中野・安藤が執筆しました。続きを読む

新着はてブ

Loading

アーカイブ

応援しています

  • キッズ・セーバー
  • ソロモン・リリーフ ─ソロモン諸島を応援する有志による、震災復興支援プロジェクト─

    (終了しました)

RSS配信

 

サービスおよびソリューション一覧


最新情報・投稿をチェック


このページのトップに戻る

Photo by A is for Angie

Powered by Movable Type Pro 6.3.8