フィギュア販売メーカーによるアニメメディアサイトの構築事例を紹介します。サイトはCMSにDrupalを用いました。リリース時にキャンペーン企画を行う想定をしており、負荷対策を検討しつつ構築しました。
導入前の課題
新しく自社メディアサイトの立ち上げを検討するにあたり、課題となったのはリリース時や不定期に行う企画記事の公開を行う際の急激なアクセス増加でした。ただし、新規メディアの立ち上げということでスモールスタートできることをご希望されておりました。
ご提案内容
メディアサイトの特性として、多くのライターの方が記事を投稿していく運用がありました。そのため、万が一にもデータベースの内容を失うことは避けたい状況です。そこで、データベースにはRDSのマルチAZ構成をご提案させていただきました。フロントエンドとなるWebサーバーはEC2を1台として、リリースやキャンペーン時などのアクセス増加が見込まれるタイミングでは可能な限りサーバーをスペックアップする方針ですすめることとしました。
また、開発環境はWebサーバーとDBサーバーを同居させたEC2の1台構成とすることでコストを抑えています。
構成
ELB(ロードバランサ)
インターネットからのアクセスをELB(Elastic Load Balancing)でEC2インスタンス(Webサーバー)へ振り分けます。Webサーバーが1台構成ですが、想定以上のアクセスがあった際にすぐにWebサーバーのスケールアウトもできるよう、あらかじめ配置しました。
また、1台構成でもWebサイトのデプロイやセキュリティアップデート時などに、サービスを停止をせずにEC2インスタンスの入れ替えができるメリットもあります。多少のダウンタイムを受け入れてコストメリットを優先する際は、Floating IPパターンというEIPの付け替えによる切り替え方法も有効です。
EC2
DrupalをインストールしたWebサーバー1台の構成です。Drupal自体は冗長化構成に標準で対応したソフトウェアではありません。同期処理を実装する必要があったため、リリース時点ではWebサーバー1台構成としました。 キャンペーンでアクセス数が増加する見込みがある際は、サーバーのスペックアップを行うことで対応しました。
RDS マルチAZ
データベースはRDSでMySQLを用意し、マルチAZ構成としています。通常時はWebサーバーはマスターサーバーとのみやり取りをします。マスタサーバーの内容は自動的にスレーブサーバーに書き込まれます。自前でマスタースレーブ構成を構築し、運用するのはひと手間かかりますので、RDSのメリットを存分に活用しています。
導入の効果
柔軟なスペック増強
メディアサイトの成長は予測ができない部分があります。急激なメディアの成長時でも、容易にEC2を追加するだけで増強可能な構成としました。計画したアクセス増加時はスケールアップ、急激な成長時はスケールアウトにより対応をします。
ダウンタイムのないメンテナンス
コンシューマー向けのメディアサイトのため、ユーザーにはストレスなく閲覧していただける環境を優先しました。ELBを配置することでサービスのダウンタイムがなく、EC2マシンの入れ替えを可能としました。スペックアップやメンテナンスも特に時間帯を気にすることなく実施できます。
コスト削減
1,000万PV以上のアクセスを目指せるサイトとして構築したDrupalサイトですが、はじめから1,000万PVを見込んだ構成を構築すると、維持コストが大きくなります。柔軟に増強可能な構成とすることで、初期コストを抑えられました。
おわりに
EC2+RDSとスタンダードな構成を採用しましたが、検討時点ではEC2を2台+RDS(マルチAZ)構成やEC2だけ1台にDBを詰め込むプランなど3パターンを検討しました。
EC2を2台+RDS(マルチAZ)構成は突発的なアクセス増加にも対応可能な安定性があります。一方で、Drupalの冗長化に多少時間が必要になること、維持費用が高くなってしまう懸念もありました。
EC2だけ1台構成はコストを圧倒的に抑えられるものの、アクセス増加時の対応に他のパターンよりも時間がかかってしまうことが課題でした。
まずはユーザーを第一に考え、ローンチ時にできる限りサーバーダウンなどでストレスを与えることがないようにしつつも、コストも考慮し構成を決定した事例でした。
AWSやAzureへの移行作業を無料で
無料ではじめるAWS/Azure管理
クロジカガイドブック
- クラウド構築・運用の課題を解決
- クロジカAWS/Azure管理の主な機能
- 導入事例
- 導入までの流れ