むびりす

開発用サーバもOracle Cloud Free Tierに乗り換えた

リリースチェッカーむびりすなどの開発用サーバを、さくらのVPSから、Oracle Cloud Free TierのVMインスタンスに移行しました。さくらのVPSに不満があったわけではなく、節約目的です。年間17,055円が浮くことになります。

リリースチェッカーの本番用サーバは昨秋に移行済みです。開発用サーバも早く移行したかったのですが、Oracle Cloudの空きがなかなか出ず、時間がかかってしまいました。やはり人気なのでしょう。


以下、Oracle Cloudとは無関係な話です。今回の移行を機に、むびりすのRailsを5.2.2から6.0.2.2に上げました。「rails app:update」して「config.hosts」を追加しただけで、あっさり動きました。ついでに、Rubyも2.6.0から2.7.1に上げています。

さらに無関係な話ですが、昨秋の記事に書いたリリースチェッカーの手動デプロイは、その後、DockerのSwarmモードに変更しました。「docker service update」コマンドひとつでデプロイできて便利です。


そんなふうに最近は過ごしています。映画館に行くのが趣味だったのですが、今は無理なので、あいた時間を自作サービスの改善にあてている感じです。

本業は以前からフルリモートで変わりありません。今は、ぼくにとっては初物尽くしのGo+GitHub Actions+ECS(Fargate)でマイクロサービスを作っています。仕事のあるうちは、やるべきことを淡々とやるのがよいと思っています。

むびりすの動作環境をHeroku-18、Ruby 2.6.0、Rails 5.0.0に上げました

今年のテーマは「地に足をつけてやるべきことをやる」に決めました。その一環で、運営しているむびりす(観たい新作映画リストが作れるサービス)を久々にいじり始めています。

サイトのテキストを微修正し、1年半ぶりにHerokuにデプロイしたところ、成功はしたものの、スタック(動作環境)が古いとの警告が出てしまいました。

remote:  !   Warning: You are running on a deprecated stack.
remote:  !   Please upgrade to the latest stack by following the instructions on:
remote:  !   https://devcenter.heroku.com/articles/upgrading-to-the-latest-stack

使っていたCedar-14スタックは、2019年4月でサポートが切れるのです。そこで、最新のHeroku-18に上げることにしました。

ただ、Heroku-18に上げるにはRubyを2.4.5以上にしなければならず、そのためにはRailsを4.2.8以上にしなければなりません。せっかくなので、Rails 5系に上げてしまいました。


そんなわけで、現状は下記の環境で動いています。

対応前対応後
Heroku stackCedar-14Heroku-18
Ruby2.1.52.6.0
Rails4.0.25.0.0

非互換部分の修正や、ついでに始めた開発環境のPostgreSQLアップグレード(8.4から11.1)に意外と手こずりましたが、これでまた、スタートラインに立てたかなという感じです。次はデザイン改善に取り組もうと考えています。Railsも最新の5.2に上げたいところです。


追記(2019-01-11)

その後も色々いじって、下記の環境になりました。

対応前対応後
Heroku stackCedar-14Heroku-18
Ruby2.1.52.6.0
Rails4.0.25.2.2
Web serverUnicornPuma
PostgreSQL9.6.1110.6

Heroku無料枠の変更に伴い、運営中のWebアプリを毎晩眠らせることにした

以前から、人間と同じように夜眠るWebアプリがあってもよい、いや、あってもよいどころか、むしろかわいいんじゃないか、と思っていました。

6月にHerokuの無料枠が変更され、1日に18時間しか起動できなくなるそうなので、これを機に、Herokuで運用している自作Webアプリの「むびりす」を毎晩眠るようにしてみました。

今のところ、開発機のcronで寝かせたり起こしたりしています。

# 0時になったら寝かせる
0 0 * * * cd /path/to/app; heroku maintenance:on
1 0 * * * cd /path/to/app; heroku ps:scale web=0

# 7時になったら起こす
59 6 * * * cd /path/to/app; heroku ps:scale web=1
 0 7 * * * cd /path/to/app; heroku maintenance:off

寝かせている間のメンテナンス画面は、http://a.noare.net/mvls/503 に置いているものです。

$ heroku config | grep MAINTENANCE_PAGE_URL
MAINTENANCE_PAGE_URL:           http://a.noare.net/mvls/503

普通のWebアプリだとこうはできないと思いますが、公開から2年経ってもユーザが2名だけ(ぼくと妻)だったので、躊躇なく進められました。さて、ぼくは喜ぶべきなんでしょうか。


追記(2019-01-11)

今は眠らせていません。経緯は忘れてしまったのですが、現状、ぼくのアカウントは月に1550時間まで無料になっています。なので、眠らせる必要がないのです。

プロフィール
Web開発者。現在の関心事はシステム品質の改善(特に性能効率性と保守性)。JAPAN MENSA会員。
カテゴリ別アーカイブ
記事検索