espar は静的化エンジンを販売するだけのサービスではありません。
静的化したファイルを espar 公開サーバでホスティングさせて頂きますので、安心/安全/高速にサイトが閲覧できるよう細心の注意を払っています。
espar では、一般的なサイト制作では導入されない高度な技術も惜しみなく投入されています。本コラムでは、そんな espar を支える数々の技術について順にご紹介します。以下の一覧から興味のある技術分野をクリックして下さい。
高速化の技術
負荷分散 (AWS ELB)
esparの公開サーバでは、AWS ELB による負荷分散機能(ロードバランサ)が標準で備わっており、大量アクセスでビクともしないよう複数のWebサーバで負荷を分散しています。
また万が一公開サーバに障害が発生した場合には、残されたサーバで運用を継続しますのでサイトダウンが極めて発生しにくい作りになっています。
espar を導入するだけで、自動的に負荷対策と障害対策を行ったサイトへとアップグレードすることになります。
高速Webサーバ (OpenResty)
esparの公開サーバでは 一般的なWebサーバであるApacheを使用していません。Apach より遥かに高速なWebサーバ OpenResty を採用しています。(国内採用事例にメルカリなどがある)
esparを導入するだけで、サイトの応答速度は理論上確実に上がります。また上述のとおり負荷分散もしているため、大量アクセス時の応答遅延やサイトダウンの心配からも開放されます。
セキュリティの技術
ファイアーウォール (AWS VPC)
espar の公開サーバ環境には、AWS VPC を使ったファイアーウォール(FW)が設置されています。不要なアクセスを一切受け付けない設定となっており、悪意ある第三者が仕掛けてくるTCP/IP層の攻撃からサイトを守ります。
esparを導入することで、堅牢なファイアーウォールを自動的に手に入れることができます。
ビルトインWAF & 静的サイト認証 (OpenResty + LUA)
espar の公開サーバでは、静的化できないページ(問い合わせフォーム等)も動作するようプロキシ技術を使用しています。
そのプロキシアクセスにおけるアプリケーション層の攻撃からWordPressを保護するため、espar では OpenResty の拡張機能言語 LUA を使用してWAF機能を提供しています。(オプション)
またesparでは、静的サイト上で会員限定コンテンツを提供する「認証」の仕組みも用意していますが、その実装にも LUA を使用しています。
監視 (Prometheus / Mackerel)
esparの公開サーバは、監視システムのPrometheusを使って(一部でMackrelを併用)、24時間365日の監視を行っています。サーバに異常が検出された場合には、espar 運用チームがお客様のサイト公開状態を維持できるよう対応を行います。
esparを導入すれば、「サイトが閲覧できないんだけど?」とお客様から指摘されてから慌てて調査対応する苦労からも開放されます。
常時SSL化 (Let’s Encrypt)
espar の公開サーバでは、Let’s Encrypt を使った常時SSL化を行っています。証明書の取得と更新はすべて espar が代行します。
espar を導入すれば、証明書の更新料が不要になるほか、期限切れを気にする心配から開放され、更新忘れによるトラブルもなくなります。また、常時SSL化に対応していないサイトは自動的に対応済みサイトになります。
トラブル予防の技術
自動バックアップ (AWS S3)
espar の公開サーバでは、AWS S3 を使用して静的化したファイルを7日分、バックアップ保管しています。 万が一 espar の公開サーバが故障した場合でもすぐにサイト復旧ができます。(なお、esparの公開サーバは2016年のサービス開始以来、障害の発生は一度もありません)
BCP対策
espar では災害対策にも万全の体制を整えています。
物理的に異なる地域のデータセンターに予備の環境を用意していますので、災害発生時には espar 運用チームがサイトを復旧します。また、海外データセンターにも同様の予備環境を用意しており、有事の際には切り替え対応を行います。
静的化の技術
espar crawler (静的化エンジン)
espar では、espar crawler という弊社独自開発の静的化エンジンを使用しています。既存の静的化エンジンに比べると、静的化の速度と品質の両面で優位性があります。
静的化エンジン | 同時静的化 ページ数 |
複雑な html/CSS |
WP以外の混在 | 開発元 |
---|---|---|---|---|
wget | 1 | ✗ | ◯ | 海外(オープンソース) |
curl | 1 | ✗ | ◯ | 海外(オープンソース) |
StaticPress | 1 | △ | ✗ | 国内(オープンソース) - 開発停止 |
WP Static | 1 | △ | ✗ | 海外(オープンソース) |
espar crawler | 3以上 無制限 | ◯ | ◯ | 国内(当社フィードテイラー) |
espar crawler は、静的化の高速性と再現性を高めるため以下の技術を採用しています。
1. Go言語
espar crawler の開発には、高速処理と並行処理に定評あるGo言語を採用しています。サイト内の複数ページを同時に高速静的化することができますので、サイト全体を比較的短時間で静的化できます。(弊社検証サイト56ページのWordPressサイトで全体静的化に2.78秒)
2. Headlessブラウザ
静的化エンジン espar crawler には、外部ブラウザのレンダリングエンジンを使用する機構が備わっています。この機構によりブラウザを内蔵した静的化エンジンとして振る舞うことができます。
JavaScriptが動作しなければリンク先や画像パスなどが確定しない…といった複雑な作りのサイトの静的化にも対応しています。