近年では、インフラ環境の進化に伴い、様々なコンテンツが配信されるようになりました。代表的なCMS(Contents Management System)であるWordPressは、個人ブログから大規模なオウンドメディアまで幅広く利用されており、全世界のWebサイトの約4割がWordPressで作られていると言われています。
個人ユーザーにも利用が広がるWordPressですが、企業が利用するにあたっては、高い可用性と、ユーザーのリクエストに遅延なく応答できるコンピュータのリソースを常時確保することが重要です。
そこで、WordPressをAWS (Amazon Web Service)環境で構築するケースが増えています。今まではオープンソースで無料利用できるWordPressと比較的に安価なレンタルサーバーでコストを抑えるケースが主流でした。
では、なぜAWS環境が選ばれるのでしょうか?本記事では、AWS環境にWordPressを構築するメリットと、便利な機能の活用方法についてご紹介します。
目次
1.AWS環境でWordPressを構築するメリット
AWSは、世界で約4割のシェアを占めるクラウドサービスです。アカウント登録をするだけで、初期投資なくあらゆる仮想コンピューティングのリソースを利用することができます。また、スケールアップやスケールダウンなどのサイジングが容易で、利用した時に利用した分だけ請求が発生する仕組みです。 しかし、自由度が高い反面、仮想コンピューティングのリソース、稼働時間、アクセス量、その他実装した機能などに応じて課金される従量制であるがゆえに、請求料金が分かりにくく、小規模なWebサイトでは過剰な請求が発生してしまうケースもあります。 このように、AWS環境を使いこなすにはある程度の知識が必要ですが、企業利用に最適なクラウドサービスのメリットを活かした、可用性と柔軟性に富んだWordPress環境の構築が可能です。次章では、WordPress構築を実現するための具体的なAWSサービスをご紹介します。
2.AWS環境でWordPressを構築する方法について
AWSでは200以上のサービスが提供されており、Webサイトの規模や要件によって様々な構築方法が存在します。ここでは、代表的な2つのサービスについてご紹介します。
(1)Amazon Elastic Compute Cloud(EC2)
EC2は、AWSが以前より提供しているクラウドサービスです。前述した通りのクラウドサービスメリットを活用することができます。また、可用性を高めるための様々な機能を利用することができ、AWSの他のサービスとの連携も可能です。 Webサイトが中規模以上で、一定以上のサービスレベルが求められる環境に向いていますが、構築にはAWSに関してある程度の知識が必要です。
(2)Amazon Lightsail
Amazon Lightsailは、AWSが提供しているVPS(Virtual Private Server)サービスです。VPSとは、クラウドサービスとは異なり、仮想サーバー単体を利用するサービスのことです。Webサイト構築に必要な機能がパッケージで提供されており、月額料金であるため予算の計算がしやすいのも大きな特徴です。 ただし、一度作成したサーバーに対し、リソースの拡張・縮小はできません。また、パッケージで提供されるため、設計の自由度も制限されます。他AWSサービスとの連携も制限されており、クラウドコンピューティングのメリットを享受できない面もあります。 そのため、Amazon Lightsailは小規模Webサイトや、開発・テスト・検証環境、教育を目的としたトライアル環境に向いていると言えるでしょう。
3.AWS環境でWordPressの可用性を高めるための連携事例
AWS環境でWordPressの可用性を高めるための連携事例を一部紹介します。
(1)AutoScalingを利用したWebサイトの自動スケールアウト環境
AutoScalingは、EC2に構築したWebサイトに負荷がかかると、負荷状況に合わせてサーバーの数を自動的に増減させて負荷分散します。これにより、耐障害性の向上にもつながります。このAutoScalingについての詳細は後述します。
(2)ELB(Elastic Load Balancing)によるトラフィック分散
ELBは、負荷分散のロードバランス機能を提供します。EC2構築したWebサイトを複製し、別々のAZ(Availability Zone)に配置してELBでトラフィックを振り分け、負荷分散+冗長環境を構築します。
(3)RDS(Relational Database Service)と連携
RDSを利用しEC2環境と分離することで、データベースに対する可用性を高めることができます。また同様のロジックで、WordPressのバックアップや、コンテンツデータをS3(Simple Storage Service)に保管することも有効な手段です。
(4)LightsailからEC2環境への移行
Lightsailで構築したWordPressは、スナップショット機能を利用することで、EC2へエクスポートできます。最初は自分でLightsailを利用して構築・運用を行い、サイトの規模に応じてEC2への移行をAWSパートナーの導入支援サービスを導入するといった計画も立案可能です。
ここまで、AWS環境でWordPressを構築するメリットや方法についてご紹介しました。Lightsailでも、EC2でも手軽にWordPress環境を構築することが可能です。
4.AutoScalingのコンセプト、メリット、導入にあたっての注意点
ここからは、企業利用を前提として、ワンランク上の高可用性環境実現のためのAutoScaling機能について紹介します。
AutoScalingのコンセプト
高可用性を実現するためには、サーバーの高負荷や、大量のアクセスによる処理の遅延に備える必要があります。 EC2で構築されたサーバーをインスタンスと呼びますが、このインスタンス数を増やし、ELBで負荷分散することで、高負荷・処理遅延を解消し、システム全体の応答処理能力を拡張することができます。また、不要になった時点でインスタンスの削除も可能です。 オンプレミス(物理)環境やLightsail の様なVPSサービスとは異なり、AutoScaling機能を利用することで、この一連の動作を必要な時に自動で行うことができます。 インスタンスの負荷状況やトラフィック量に応じて、最適なEC2インスタンス数で運用するようにしましょう。
AutoScalingの機能
EC2インスタンスのスケーリング設定は、グループ毎に管理が可能です。グループ内でインスタンス数の最大、最小数、増減のトリガーとなる閾値を管理します。
このスケーリングには、処理能力の目標値に対応しスケーリングする「動的スケーリング」と、需要予測に基づいて自動的に増減できる「予測スケーリング」の2つの機能があります。
動的スケーリングは、例えば「サーバーのCPUの使用率が80%を超えたとき」にインスタンスを増加させるといったように、処理能力に対する閾値設定となります。
予測スケーリングは、スケーリンググループに対し、AWSのAI機能によりトラフィックの変動を予測して適正なEC2インスタンスを展開します。例えば、直近の2週間、2日間、24時間ごとに次の24時間を予測するなど、常に閾値が調整されます。また、予測だけを行い機能の整合性を評価することもできます。
Auto Scaling自体の使用は無料であり、設定を行えばすぐに利用可能です。スケーリングの際に増加したインスタンスの起動時間に応じて料金が発生します。
AutoScalingの導入にあたっての注意点
(1)永続的なデータは保持方法を検討する
Auto Scalingで作成されるサーバーは、設定された閾値に応じて生成・削除されます。そのため、サーバー消滅時に永続的データが消失してしまう場合があります。EC2単体でもWordPressのインストールは可能ですが、AutoScalingの実装において、このような問題を回避するためには、データベースやコンテンツデータの格納先としてRDSやS3を利用する必要があります。
(2)元イメージになるEC2インスタンスは起動後すぐに使える状態にしておく
AutoScalingのインスタンスは使い捨てインスタンスです。閾値に応じて自動的にスケールアウトされますが、元イメージとなるインスタンスが起動した直後にリクエストに応答できるよう、必要なサービスが起動する設定をサーバー内部に仕組んでおく必要があります。
(3)突発的なアクセスに対応できない
どこまでを要件とするかにもよりますが、突発的なアクセス増に対して、瞬時の対応ができません。このようなケースにおいては、CDN(Amazon CloudFront)を活用することで対処できる可能性があります。
AutoScalingは可用性を高めてくれますが、システムの停止を「0」にするものではありません。
AutoScalingにはもともとクールダウンタイムという設定値があります。設定した閾値によってインスタンスの起動指示が発動しますが、インスタンスによっては起動に数分要する場合があります。この数分を待たずに起動が完了しないままだと、次々と新しいインスタンスの起動指示を発動してしまうおそれがあります。そこで、クールダウンタイムを設けることで、スケーリングポリシーを意図的に停止させるのです。
このように、AutoScalingはあくまでインスタンスの状態に基づいて、設定された動作ポリシーに忠実に動作しようとする機能であるという点にご注意ください。
4.まとめ
近年、AWS上でWordPressを構築するケースが増えている背景として、Lightsailを気軽に開始できること、またEC2へエクスポートが可能であること、そしてEC2環境では拡張性が高く、様々な高可用性機能を実装できるという点が挙げられるでしょう。 WordPressのようなCMSは“構築すること”が目的ではありません。“価値あるコンテンツを発信し続けること”が目的です。LightsailからのEC2環境への移行、ワンランク上の可用性を目指す時には、AWSパートナーの導入支援なども是非ご検討ください。