
構成と利用している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」プラグインを利用して静的ページに書き出すことができます。- 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 を使った静的サイトであれば以下のようにジャンルを選ばず応用することができます。- コーポレートサイト
- 採用サイト・採用ブログ
- キャンペーンサイト・ランディングページ