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 にしたいのだが・・・
- ssl - HTTPS for Amazon S3 static website - Stack Overflow
- amazon web services - https on S3 WITHOUT cloudfront possible? - Stack Overflow
Cloudfront 使ってないのだよなー・・・。Free tier もあるっぽいことだし、おとなしくつかて HTTPS にしろということなのだろうね。
まず静的コンテンツを HTTPS にうつして、それからリダイレクタを書くかなあ。一日仕事休んでばーっと片付けたい・・・。