上場企業のサイトをALBを使って、MovableTypeを冗長化

主に官公庁向けの製品を製造されているメーカーのコーポレートサイトの構築事例をご紹介します。コンテンツ管理システムとしてMovableTypeを採用し、Webサイトを冗長化することで負荷への対応および障害対策を行いました。

概要

  • MovableTypeによるサイト制作
  • 一部上場企業のコーポレートサイトを新規に制作
  • ブランドイメージの低下や機会損失をなくすため、サーバーダウンは避けたい
  • Webサーバーの冗長化構成を採用しました

構成

MovableTypeの冗長化を行うケースでは、いくつかパターンが考えられます。「Webサーバー1台、CMSサーバー1台」「Web+CMSサーバー1台、Webサーバー 1台」「Webサーバー2台、CMSサーバー1台」などです。サイトの可用性(システムの継続可動能力)、セキュリティ、コスト面など考慮した上で、「Webサーバー2台、CMSサーバー1台」構成を選択しました。

構成解説

ALB(ロードバランサ)

インターネットからのアクセスをALB(Application Load Balancer)で2台のEC2インスタンス(Webサーバー)へ振り分けます。Webサーバーの役割は閲覧者向けにホームページを表示することに特化しています。管理用のCMSは別サーバーとしているため、全てのサイト閲覧者のアクセスを2台に振り分ける設定としています。

EC2(公開用Webサーバー)

Webサーバー2台構成です。どちらがメインサーバー・サブサーバーなどは特にありません。ホームページのコンテンツおよびお問い合わせフォームなどのCGIが配置してあります。また、Availability Zoneというデータセンターの所在を別々に分けることで片方のデータセンター自体に何かがあっても動作し続けることが可能な構成としました。 コンテンツはCMSサーバーから随時コピーすることで最新版としています。

EC2(CMSサーバー)

Movable Typeが動作するWebサーバーです。Movalbe Typeはホームページの作成や更新をすると、HTMLファイルなど静的なファイルを出力する仕組みです。Movable Typeでホームページの更新をした後、公開用Webサーバーへホームページのデータをコピーする挙動としています。 なお、セキュリティを高めるためにCMSサーバーへのアクセスは特定IPからのみに制限しています。

構築の効果

上記構成で冗長化したMovable Typeには次のようなメリットがあります。

サーバーダウンが発生していない

サーバーを冗長化することで負荷が分散され、株主総会など一時的なアクセス増加でも重くなることがありません。また、公開用WebサーバーとCMSサーバーを分離することで、Movable Typeの課題の一つである、大量のページをパブリッシュする際の高負荷への対策にもなります。公開用Webサーバーでの障害も発生しておらず安定稼働し続けています。

セキュリティの強化

公開用Webサーバーではプログラムはお問い合わせフォームのみが動作しており、MovableTypeの脆弱性やPHPの脆弱性により攻撃を受ける可能性がかなり低減できています。 また、管理用のCMSはホームページ管理者などごく一部のIPアドレスのみがインターネットからアクセス可能と制限をかけており、第三者に攻撃をされるリスクを低減できています。

構築期間の短縮

AWSであれば高価なロードバランサを調達する必要もなく、すぐに負荷分散を実現できます。Movable Typeのような静的コンテンツを出力するCMSは冗長化も容易で、構築まで1日あれば準備できてしまいます。

おわりに

負荷分散と障害への対策を考慮した冗長化Movable Typeの構築事例をお伝えしました。Movable Typeは静的コンテンツを出力するため、Amazon S3による静的ホスティングとも相性が良いのですが、今回はEC2を採用しました。理由は2つありました。

一つは、既成のお問い合わせフォームがあったためプログラムが動作するEC2が必要であったこと。二つ目は、今後、お問い合わせフォーム以外にもプログラムを配置する可能性があったためです。状況次第では、CloudFront+S3+EC2(CMSサーバー)+Lambdaの構成も運用コストが小さくおすすめできる構成です。

同じ目的でもインフラの構成パターンの正解は複数存在します。今回は自由度も高く、セキュリティも高い安定したMovable Type環境を構築した事例でした。