2023-12-2

Astro + vercelにしました

目次

経緯

 2016年頃に、Wordpress + MySQL でこのサイトを始めたものの、当時からページの追加修正や、そもそも1ページごときに設定項目が多すぎることに不満を感じていた。

 何度目かのサーバーの引っ越しを考えたある日、そろそろ Wordpress や、旧態依然とした MySQL + PHPMyAdmin ともおさらばしたいと考えた。

 思い切って、自前の Wordpress もどきを開発するべく、Azure Static App + Azure Function で React アプリを構築することにした。2021年の12月のことである。

 文章自体は、Azure CosmosDB に、画像や動画は Azure Blog Storage に保存し、ゼロから学習した React にも慣れ、晴れてアプリは1年後の 2022年末に完成し公開に至った。

なぜ AWS を選ばなかったのか

 なぜ、AWS を選ばなかったのか。理由は単純である。 Azure は安いからである。

 結果的には月々300円程度しかかからなかった。それすら広告で稼げないほどの極貧のアクセス数だからともいえる。

 あと、Azure のアカウントを作成した翌日、なんと Azure から電話がかかってきて、ご丁寧に導入の説明をしてくれたというのも決め手のひとつ。

 しかし、使い始めてすぐ分かったが、Azure のドキュメントは、その親切な電話対応とは真逆であった。機械翻訳のせいではない。原文からして分かりにくいのだ。アクティブディレクトリは現在では呼称まで変更され、結局最後まで脳内であやふやなままだった。

なぜ React によるクラウドアプリだったのか

 そもそも、たった40ページほどの内容のために、なぜに1年もかけて useState だの useEffect だのを学んだのかと言えば、PHP を書きたくなかったからである。

 SQL はいい。言語が数学的で潔い。しかしその結果をアプリに流し込むためだけに PHP を書かなければならないのは我慢がならない。文が他のどの言語にも似ていないのに構造にも機能にも特長がない。関数アプリなら何十行のPHPを1行で肩代わりできる。使うのに躊躇する理由はない。

 ここでのクラウドアプリとは、2020年ごろに流行り出した、Static Web App つまり Azure でいう静的アプリのことである。関数アプリと言われる API と組み合わせれば、動作時間のみの課金で済む。もともと趣味のようなサイトなので、PHPを書く苦痛や重課金とは無縁であるべきである。

ではなぜ クラウドアプリをやめたのか

 開発中に導入した node のパッケージの総量は 1GB。必要な機能はだいたいパッケージが存在するので、ついつい手軽なので SNS のアイコンを使うだけでも、npm i してしまう。そして package.json の行が増える。

 それこそ 40 ページそこそこのサイトになぜこんなに大量のコードを扱わなければならないのか疑問に思っていた矢先に Astro が登場した。今回の書き換えは Astro と vercel のせいである。地球人がやっとたどり着いた正しいウェブサイト開発環境である。今こうしてレポジトリの中にさらっと first.mdx を追加して文を書いているのが証拠である。 これでしばらくは落ち着いてメモが書ける。

https://docs.astro.build/ja/getting-started/ https://docs.astro.build/ja/guides/integrations-guide/vercel/#why-astro-vercel

このサイトのブログ部分は、近いうちに GitHub に公開しようとおもう。きっと、Astro もそのうち宇宙に去って、また地球は堂々巡りをはじめるだろうから。その前に。