サイトの見直しなど


これまで個人のプロジェクトにはAWSを使用していて、リザーブドインスタンスを使って費用を節約する観点から、夏のボーナス後の7月を起点にサーバーの運用計画を立てている。

今年度もいよいよそのサーバーの運用計画をまとめなければならない時期となったが、今年度は以下の見直しを予定している。いつになく大規模な見直しである。

はじめに、当サイトのデザイン変更についてきちんとアナウンスしていなかった点はお詫びせねばなるまい。あまりにもドラスティックな変更なために乗っ取りを疑われかねない変更であった。

半年前にグラスモーフィズムもどきのデザインでサイトを製作したのだが、正直微妙だったことを反省したところである。また、そのサイトでは Nuxt.js SSR を採用したが、SSRのためだけにDockerコンテナ(正しくは、AWS ECSで着信を受け付けるために事実上必須になるロードバランサー)を維持するのが正直割に合わないという点も感じていた。

そこで、静的サイトジェネレーターとしてHugoを採用し、サイトのドキュメントをGitリポジトリで管理する方式とする新サイトを計画した。元々サイトのドキュメントをGit管理するのを避けていた理由は、オープンライセンスのドキュメントと一括管理すると問題がある、版権画像類があった場合の扱いに悩んでのことだったが、それは運用で回避することにしてGit管理を採用することにした。

そしてHugo用のテーマを選定した際に、Victoria Drake氏作の Call me Sam が目に留まった。フロントページはメニューだけになる超ドシンプルなテーマである。これだ!と思い採用することにした。

デプロイ先はいくつか候補があったが、最終的にはCloudflare Pagesに決定した。使い勝手はNetlifyと同様だが、日本国内向けにはシンガポールからの配信になってしまうNetlifyとは異なり、こちらは国内にも配信サーバがあるのがポイントである。

同様に、赤べこサイトもCloudflare Pagesからの配信に切り替えた。これで管理しているすべてのページが国内からの配信になる。

これまではドメインによって、DNSがGoogle DomainsだったりNetlifyだったりAWS Route53だったりで分かれていたものを、こういったものが分散しているのは管理上都合が悪いので、Cloudflareに統一した。

2019年末より運用している個人用ActivityPubインスタンスについては、これまでEC2+RDSの構成で運用していたが、今年春ごろから検索クローラーによる負荷問題が表面化してきている。これについては、現時点の対応として、DNSのCloudflare化に伴ってWAFを活用し、自宅のIPv6アドレス以外からのアクセスでハッシュタグ検索を実行しようとした場合はCAPTCHAを通さなければならないように設定している。

そもそもなぜ検索クローラーによる負荷が問題になるのか。これはAWSのストレージのバーストシステムの問題であり、AWSにおいては低価格なEC2/RDSインスタンスのCPU負荷に関してもそうなのだが、継続的な負荷がかかるとパフォーマンスが低下する。これを緩和するために、Multi-AZ構成にして必要に応じてスワップできるようにしたり、あるいはストレージを積み増したりしてきたわけなのだが、個人でしか使わないActivityPubインスタンスで負荷対策の為にここまでの投資をするのは割に合わない。

そこで、バーストシステムの影響を受けないAWS外のサーバを選定しそこに移行する計画とした。ただし画像保存用サーバは対象外である。具体的には、さくらのVPSへの移行を計画している。

この移転はWeb運営グリーン化計画の一環でもある。さくらのVPSの石狩データセンターは、国内では環境配慮型のデータセンターとして著名である。北海道という地の利を生かした外気冷却、敷地内の太陽光発電の活用、LNG主体の電力供給などが行われている。

とはいえ、バーストの影響を受けなくなるだけであり、ハッシュタグ検索の負荷に耐えきれるという保証もないし、個人用インスタンスなので自分以外の直リンクアクセスを受け入れる動機にも乏しいので、このWAF規制は当面の間続ける所存である。