こんにちは。「クロジカサーバー管理」 マーケティングの畝です。
採用・宣伝などのためのブログや、コーポレートサイトにも使われることの多いWordPressですが、従来の一般的なWebサーバーで稼働させている場合、記事がバズるなど膨大なPVが一度に来てしまうと、サイトが重くなったり最悪サーバーダウンします。
せっかく集客に成功しているのにサイトが見れないのは本末転倒です。 サーバーダウンの予防策としてサーバーの冗長化が検討されることがありますが、小規模サイトにはオーバースペックでコストも高くつきます。 そこでAWSのサーバーレス構成を利用して 落ちないWordPressサイト を実践する例を紹介します。
構成と利用しているAWSサービスの概要
下図はサーバーレスWordPressのインフラ構成例です。
CloudFront
Amazon CloudFront はコンテンツを高速配信するためのサービス(CDN)です。 サイト訪問者へ最寄りのリージョンにキャッシュされているコンテンツを配信します。 CloudFront を使わずに S3 のみでもWebサイトとして公開はできますが、S3 のみでは独自ドメインにSSL(https)が使えません。 今回の構成ではSSLに対応するため利用しています。
S3
Amazon S3 はスケーラブルなストレージサービスです。 S3 は静的ファイルのホスティングができ、落ちないことが強みです。 今回の構成ではEC2から転送されたHTMLなど静的ファイルをWebに公開します。 しかし S3 はサーバーサイドで動くプログラムを実行できません。GoogleAnalyticsなどJavaScriptで動くものは使えますが、検索やコメントなどWordPressの動的な機能は停止することになります。 検索やコメントなどは静的ページでも使える以下のサービスで代用できます。
EC2
Amazon EC2 はスケーラブルなクラウドサーバーです。 一般的なWebサーバーとして扱え、またサーバーなのでS3と違って落ちることがありえます。 「サーバーレスなのにサーバーがあるぞ!」と突っ込まれそうですが、管理者以外はアクセスできないよう制限をかけ、公開ネットワーク側に出していません。 今回の構成ではEC2でWordPressを稼働させています。 EC2上のWordPressをそのまま公開するケースも多いですが、今回はS3で公開しているため、EC2を停止させてもWebサイトの表示に影響ありません。その点のメリットも後述します。
WordPressの静的ページ化
WordPressは通常、アクセスに応じてDBから記事データを引き出して表示する動的なシステムですが、「StaticPress」プラグインを利用して静的ページに書き出すことができます。
詳しい手順は長くなってしまうため省きますが、大きくは下記2つの手順で実現します。
- StaticPressプラグインで、WordPressの稼働するEC2内に静的ファイルを出力。
- AWSコマンドラインインターフェースの S3 sync を利用してS3へファイルを転送。
サーバーレスWordPressのメリット
S3にホスティングすることで「落ちない」以外のメリットもあります。
セキュリティ向上
WordPressの管理画面のみでなく機能へアクセスできなくなるので、WordPress本体やプラグインに起因する脆弱性の影響をほぼ受けなくなります。 公開サイト上に静的ファイルしかないため、システム的なセキュリティリスクが少なくなります。
コスト削減
S3はファイルへのアクセスに応じた(リクエスト数&転送量)従量課金のため、更新頻度の低いサイト、更新停止したサイトなど、PVは少ないけれど残す必要あるサイトではEC2を停止することでレンタルサーバーより安くなる場合もあります。 PVが少なくなった状態を想定して、EC2とS3を同時に稼働している時と、S3のみ稼働している時の費用を比較してみました。
月間PV (リクエスト数 , 転送量) | EC2+S3の費用 /月 | S3のみの費用 /月 |
---|---|---|
10,000PV (200,000req , 10GB) | $15.36 | $2.2 |
100,000PV (2,000,000req , 100GB) | $60.93 | $23.26 |
※1PV20リクエスト、1PV1MBの転送量で試算。 / EC2インスタンスは1万PV時に t2.micro 、10万PV時にt2.small を利用。PVの少ないサイトならば、EC2を使わずS3だけで公開することでコストを大きく下げられます。
さいごに
今回は「落ちない」ことを目的にS3中心のシンプルな構成で紹介したため、コメント機能を止めるなどトレードオフがありますが、選択肢として充分実用的なものと考えていますがいかがでしょうか。 WordPress を使った静的サイトであれば以下のようにジャンルを選ばず応用することができます。
- コーポレートサイト
- 採用サイト・採用ブログ
- キャンペーンサイト・ランディングページ
AWS Lambda も利用して作り込めばコメントも可能と考えられますし、WordPress以外の複雑なサービスもサーバーレスで運用できます。 莫大なインフラコストのかかる規模のサイトへサーバーレス技術が応用される例も目にするようになり、コスト削減や安定性の面でサーバーレス技術への注目は高まっています。 落ちないWordPressサイトにご興味・ご質問などございましたらお気軽にお問い合わせください!
コーポレートサイトをクラウドでセキュアに
無料ではじめるサーバー管理
クロジカガイドブック
- コーポレートサイト構築・運用の課題を解決
- クロジカサーバー管理の主な機能
- 導入事例
- 導入までの流れ