構成図アニメ情報メディアのDrupalをAWSを使って安定リリースツイートシェアはてなフィギュア販売メーカーによるアニメメディアサイトの構築事例を紹介します。サイトはCMSにDrupalを用いました。リリース時にキャンペーン企画を行う想定をしており、負荷対策を検討しつつ構築しました。構成Drupalは動的なCMSのためEC2を利用します。データベースは障害に備えるためMulti-AZ構成として冗長化しました。このプロジェクトでは、不定期にキャンペーンを行う予定をしておりアクセスの増加が見込まれていました。そこで、キャンペーン時にはEC2インスタンスのスペックアップにより対応する計画を立てました。開発環境はEC2へDrupalとMySQLをインストールした1台構成です。ここはコストを抑えています。Balancing)でEC2インスタンス(Webサーバー)へ振り分けます。Webサーバーが1台構成ですが、想定以上のアクセスがあった際にすぐにWebサーバーのスケールアウトもできるよう、あらかじめ配置しました。1台構成でもWebサイトのデプロイやセキュリティアップデート時などに、サービスを停止をせずにEC2インスタンスの入れ替えができるメリットもあります。IPパターンというEIPの付け替えによる切り替え方法も有効です。EC2DrupalをインストールしたWebサーバー1台の構成です。Drupal自体は冗長化構成に標準で対応したソフトウェアではありません。同期処理を実装する必要があったため、リリース時点ではWebサーバー1台構成としました。キャンペーンでアクセス数が増加する見込みがある際は、サーバーのスペックアップを行うことで対応しました。マルチAZデータベースはRDSでMySQLを用意し、マルチAZ構成としています。通常時はWebサーバーはマスターサーバーとのみやり取りをします。マスタサーバーの内容は自動的にスレーブサーバーに書き込まれます。自前でマスタースレーブ構成を構築し、運用するのはひと手間かかりますので、RDSのメリットを存分に活用しています。上記構成のDrupalには次のようなメリットがあります。柔軟なスペック増強メディアサイトの成長は予測ができない部分があります。急激なメディアの成長時でも、容易に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台構成はコストを圧倒的に抑えられるものの、アクセス増加時の対応に他のパターンよりも時間がかかってしまうことが課題でした。ユーザーを第一に考え、ローンチ時にできる限りサーバーダウンなどでストレスを与えることがないようにしつつも、コストも考慮し構成を決定した事例でした。ツイートシェアはてなkanekoWeb系のアプリケーション、インフラの要件定義から設計運用まで幅広く経験してきました。最近はクラウド周りを中心に活動しています。