Reducing AWS Bill

実は AWS に払っている額が結構ある、という事実から目をそらしていたが心に余裕のある今ちょうど bill が届いたので内訳をみてちまちまと削ったら $5/month くらいあっさり削れた。やれやれ。しかし謎の、というかブログをホストしている EC2 instance が高い。Reserve してないからか・・・昔した形跡があるが、とっくに expire していた。えらい無駄遣いしてしまったな。とありえず一年くらい延命処置。

昔はいくつか細かいサービスを立てていたから意味があったが、今やブログのホスティングだけをしている EC2 に金を払うのあほくさい。しかもじっさい static file を proxy いているだけで、一重に昔の URL の互換性を保つためだけだという・・・というか Go でコードをかいてみたかったからだけという・・・。もうこのコードは捨てて managed で金かからない方向にしたいなあ。

オプションを考える。

  • 検索エンジンを信じ古いリンクには死んでもらう。リンクは 404 になる。ドメインは残して、たとえば dodgson.org/ とかにアクセスされたら今のブログにリダイレクトするような HTML を静的にホストする。いちばんラク。
  • Managed にコードをホストする
    • ドメインに応じてスタティックなファイルにリダイレクトする。リンクは切れるが 404 にはならない。
    • 全ての古い URL に同じ HTML を返し、JS でリダイレクトする。ブラウザからのアクセスならリンクは切れない。クローラはさようなら。モダンクローラなら大丈夫な気もする。
    • URL に応じて静的なファイルにリダイレクトする。リンクは切れない。正規表現とかのマッチングをテストするのがかったるい。
    • URL に応じてプロキシする(現状のつくり。部分的にリダイレクトもしているが・・・)GAE にすれば HTTPS にできるかも、という利点はある(がなんらかの HTTP の inclusion が消しきれず労に合わない可能性も感じる。)
    • Managed なサーバにコンテンツもつっこむ。プロキシよりはラクそう。なんとなく。更新のたびに push するのはアホくさいが、どうせそんなに更新しないし良いのでは、という気もする。

Managed なコードを動かすとしたらどこに置くか。

  • GAE. 使い方もしっててるし一番ラク。
  • AWS Lambda. せっかくだから使ってみる。しかしまたメンテできないゴミを増やしてしまうだけな気もする・・・。
  • Firebase. せっかくだから使ってみるつながり。Firebase はお近づきになっておいて損はなさそうだし、Lambda よりはちょっとラクそう。

・・・とか考えたけど GAE を使いサーバサイドでリダイレクトするのが仁義(リンク維持)を果たせる範囲では未知の要素が少なくて一番ラクそうだな・・・。

現状のコード(ひどすぎ)から仕様を読み解くと

  • リダイレクトの必要なドメイン:
    • dodgson.org, www.dodgson.org: tDidary フォーマットの URL を bn.dodgson.org の静的な URL に書き換えてリダイレクトする。"/" は現行のブログに飛ばす。
    • steps.dodgosn.org - ドメインだけ変え blog.dodgson.org にリダイレクト。おなじく "/" は現行のブログに飛ばす。
    • stepped.dogson.org - よくわからんが dodgson.org と同じ扱いで良さそうな雰囲気。
  • すべてのドメインの RSS っぽい URL: 現行のブログの feed に飛ばす。
  • 知らない URL -> 現行のブログに飛ばす。

これくらいかな。なんか行けそうな気がしてきたぞ・・・。

それとは直行した話としていいかげん HTTPS にしたいのだが・・・

Cloudfront 使ってないのだよなー・・・。Free tier もあるっぽいことだし、おとなしくつかて HTTPS にしろということなのだろうね。

まず静的コンテンツを HTTPS にうつして、それからリダイレクタを書くかなあ。一日仕事休んでばーっと片付けたい・・・。