WordPressは更新しやすい一方で、セキュリティや表示速度、インフラ運用の負担がつきまといます。そこでディーネットでは、WordPressの管理性を維持したまま「静的サイト化」 し、Amazon S3とCloudFrontで配信する構成を採用しました。
本記事では、この構成を選んだ理由と記事更新→静的生成→S3アップロード→CloudFront配信・キャッシュ更新といった実際の運用フローをベースに、なぜ速く・安全になり、どこで運用が楽になるのか を具体的に解説します。あわせて、「更新頻度が高いとどうなるか 」「キャッシュ無効化の手間 」といった導入後に見えてくるトレードオフも含めて整理します。
WordPressのデメリット
WordPressのデメリットには、次のようなものがあります。
ポピュラーであるがゆえに、セキュリティリスクが高い
動的にページ表示させるため、表示が遅い(ある程度のサーバースペックが必要)
インフラ管理が必要
クラウドといえども実際は物理的なハードウェアが存在しています。故障や長期利用などで、物理的なハードウェアを撤去するときに、その上で稼働するEC2インスタンスを別のハードウェアに移動させる必要があります。そのために再起動が必要になります。
WordPressのデメリット WordPress セキュリティリスク × 表示速度 × インフラ管理 ×
ポピュラーであるがゆえに、セキュリティリスクが高い
ご存じの通り、WordPressは世界で最も利用されているCMSです。
有名であるがゆえのデメリットがあります。攻撃対象になりやすいことです。攻撃者の視点から考えると、一つの脆弱性を見つけることができれば、より多くのサイトを攻撃することができます。
サイト運営者は、脆弱性対策をするために定期的なバージョンアップをする必要があります。実際に運用してみるとわかりますが、バージョンアップには多くの工数がかかります。時には動かなくなり、改修が必要になることもあります。
動的にページ表示させるため、表示が遅い(ある程度のサーバースペックが必要)
WordPressは、記事の追加や修正、デザインの変更をすると、即時反映されます。毎回、phpを動作させて、動的にページ表示させることで実現しています。
利便性が上がる半面、表示速度が遅くなるというデメリットもあります。単純にhtmlを取得する場合と、プログラムを動作させる場合を比較すると10倍以上の速度差が発生します。
速度差以外にも、必要なサーバースペックも大きく異なります。アクセスが少ないうちは問題になりません。月間数十万PV、数百万PVと増えていくと、必要なサーバー台数が2台、3台と徐々に増えていきます。
インフラ管理が必要
サーバーが必要になるということは、サーバーの管理が必要になります。インフラ管理には、専門の知識が必要になります。
レンタルサーバーで収まる程度のアクセス数であれば気にする必要はありません。アクセスが増えてくるとレンタルサーバーでは対応しきれなくなります。そうなると、パブリッククラウドの利用を検討するなどの対応が必要になります。
静的サイト化するメリット
まずは、単純に静的サイト化するメリットをご紹介します。
WordPressのデメリット WordPress 静的サイト化 セキュリティリスク × 〇 表示速度 × 〇 インフラ管理 × ×
セキュリティリスクが下がる
静的サイト化をすることで、プログラムを動作させる必要がなくなります。そのため、WordPress固有のセキュリティリスクを減らすことが可能です。
ただし、WEBサーバー自体のセキュリティリスクは残ります。
表示が早くなる(低サーバースペックで動作する)
プログラムの動作が必要なくなるので、表示速度が速くなります。サーバースペックについても、低スペックで動作可能になります。
ただし、大量にアクセスが発生すると、回線がボトルネックになる可能性があります。
静的サイト化+AWS活用をするメリット
静的サイト化に加えて、AWSを活用してみます。コンテンツをAmazon S3へ設置し、Amazon CloudFrontで配信する形をとります。
WordPressのデメリット WordPress 静的サイト化 静的サイト化+AWS活用 セキュリティリスク × 〇 ◎ 表示速度 × 〇 ◎ インフラ管理 × × ◎
セキュリティリスクが大幅に下がる
EC2インスタンスを利用する場合は、ミドルウェア設定など利用者の責任範囲が大きく残ります。この構成では、エンドユーザーが閲覧する構成にはEC2インスタンスは含まれません。
Amazon CloudFrontとAmazon S3を利用して配信することで、セキュリティの責任範囲を大幅に減らし、リスクを下げることが可能です。
表示が早くなり、アクセス集中にも対応できる
Amazon CloudFrontを利用することで、コンテンツ配信の最適化が可能です。
コンテンツは、全世界に分散設置されているエッジサーバへキャッシュされます。利用者最寄のエッジサーバーに、キャッシュが存在する場合は、そこからキャッシュが返却されます。 そのため、距離による速度遅延が大幅に低減されます。もちろん、日本国内だけでなく、世界各国を対象として配信することも可能です。 また、コンテンツ配信に最適化されているため、LINEプッシュ通知やテレビなどのメディア露出による突発的なアクセス集中にも対応できます。
インフラ管理が不要になる
ユーザーへ配信する構成は、サーバーレスな構成となります。そのため、インフラ管理が不要となります。
WordPressを動かすEC2インスタンスは残りますが、利用対象は管理者のみです。ベストエフォートのインフラ管理で問題ありません。
静的サイト配信の構成
具体的な配信構成は次のようになっています。
WordPress管理用のEC2インスタンス
Amazon EC2上でWordPressを動作させています。通常のWordPressと同じ要領で問題ありません。
唯一異なるのは、セキュリティグループの設定です。管理者のみアクセスできるようにします。
静的コンテンツ出力プラグインで、Amazon S3へ出力
WordPressのプラグインを使って、静的サイトの出力を行っています。
代表的なプラグインとして「Static Press」と「Static Press S3」があります。この二つを利用することで、静的サイトを指定したS3のバケットへ自動出力することが可能です。
S3をオリジンとした、Amazon CloudFrontでコンテンツ配信
バケットへ出力されたコンテンツは、CloudFrontを経由して配信されています。
Amazon S3単体でも配信は可能です。しかし、独自ドメインのSSLに対応していません。 CloudFrontを利用することで、独自ドメインのhttps配信が可能になります。同時に負荷対策もできるので、CloudFront経由で配信することをおススメしています。
また、S3のセキュリティ対策として、Cloud One File Storage Security(C1FSS) の利用が可能です。S3オブジェクトをリアルタイムスキャンを行い、不正プログラムやマルウェア対策を行うことができます。
WordPressの静的サイト化の注意点
WordPressの静的サイト化をすると、当然のことながらプログラムが動作しなくなります。意外な落とし穴もあるので注意してください。
ランキングプラグイン
よく使うプラグインにランキングプラグインがあります。記事へのアクセス数を集計して、よく見られているページをリコメンドする機能です。
このアクセス数集計は、ページが表示されたタイミングで、WordPressへajaxのリクエストを送ることで集計されています。phpを動作させる必要があるので、完全に静的サイト化してしまった場合に動作しなくなります。
サイト内検索
WordPress標準のサイト内検索も同様です。サイト内検索をするためには、phpを動作させる必要があります。そのため、サイト内検索ができなくなります。
対処方法としては、「Googleカスタム検索」を使う方法があります。カスタム検索を使うことで、サイト内検索をGoogle側で処理することが可能です。
一部分だけ動的に動かしたい場合は
エントリーフォームなど、一部分だけ動的に動かしたい場合があります。その場合は、CloudFrontで複数のオリジンを扱えるように設定を変更しましょう。
たとえば、「/contact/」だけはEC2インスタンスで動作させ、それ以外はS3から配信する。というようなことが可能です。 その場合は、EC2インスタンスのインフラ管理が必要になってしまうので注意が必要です。
関連するFAQ
Q. WordPressを静的化すると何が変わりますか?
A. ページ表示時にPHPが実行されなくなり、配信はHTMLファイル中心になります。その結果、表示速度が安定し、攻撃対象もWordPress本体から切り離されます。一方で、更新内容は「即時反映」ではなく、静的ファイルの再生成と配信更新というプロセスを経る形に変わります。
Q. なぜS3+CloudFront構成を選ぶのですか?他の構成ではダメですか?
A. EC2単体やALB+WordPress運用でも対応は可能ですが、「公開側にアプリケーションサーバーを持たない」構成にすることで、運用負担とセキュリティリスクを大きく減らせます。S3単体配信も可能ですが、実運用ではHTTPS対応やパフォーマンス、キャッシュ制御の柔軟性を考えるとCloudFront併用が前提になります。
Q. 実際の運用フローはどうなりますか?
A. 管理者がEC2上のWordPressで記事を更新 → プラグインで静的HTMLを生成 → S3へアップロード → CloudFront経由で配信 → 必要に応じてキャッシュ無効化、という流れです。動的サイトのような即時反映ではなく、「ビルド+配信」という工程が入るのが大きな違いです。
Q. 本当に運用は楽になりますか?
A. 公開環境にサーバー運用が不要になるため、障害対応やスケール設計の負担は大幅に減ります。ただし、更新時のビルドやキャッシュ制御といった“別の運用タスク”は発生するため、完全にゼロになるわけではありません。
Q. 静的化のデメリットやトレードオフは何ですか?
A. 主に以下の点です:
・更新頻度が高い場合、静的生成(ビルド)がボトルネックになる
・CloudFrontのキャッシュ無効化に手間やコストが発生する
・動的機能(検索・ランキングなど)は別途設計が必要
「更新の即時性」と「配信の安定性」のどちらを優先するかが判断ポイントになります。
Q. どのくらいの規模から検討すべきですか?
A. アクセス増加でサーバー負荷やコストが気になり始めたタイミング、またはセキュリティ対策の運用負担が重くなってきた段階が一つの目安です。特にコーポレートサイトやメディアサイトのように「閲覧中心」であれば効果が出やすいです。
Q. 更新頻度が高いサイトには向いていませんか?
A. 更新頻度が非常に高い場合は、ビルド時間やキャッシュ反映の遅延が課題になります。その場合は「一部のみ静的化」や「動的構成との併用(特定パスだけEC2)」といったハイブリッド構成が現実的です。
Q. 一部だけ動的にすることはできますか?
A. 可能です。CloudFrontでパス単位のオリジン振り分けを行い、例えば「/contact/」のみEC2へ、それ以外はS3から配信する構成にできます。この場合、その動的部分のみインフラ管理が必要になります。
Q. コスト削減はどこで効いてきますか?
A. 高スペックなWebサーバーの常時稼働やスケール対応が不要になり、配信がS3+CloudFrontに集約される点です。特にアクセス変動が大きいサイトほど、従量課金モデルのメリットが出やすくなります。
まとめ
WordPressで作成されたコーポレートサイトを、AWSを活用しながら静的サイト配信している事例をご紹介しました。 コーポレートサイトなどは、動的な変更が不要なサイトが多いのではないでしょうか。WordPressは便利な反面、多くのデメリットも発生します。そのほとんどは、動的に動作することによるものです。 AWSを活用し、静的サイト化することで、WordPressのメリットを活かしつつ、デメリットを解消することが可能です。 是非一度検討してみてはいかがでしょうか。