1
0

More than 3 years have passed since last update.

Ruby on Jets で詰まったこと

Posted at

はじめに

エンジニアとして就職して約1年、 久しぶりにRuby を書いてみたいなぁ、とふと思う。

最近流行りで弊社でもガンガン採用しているサーバーレスで実装しようということに。

「サーバーレス Ruby」 で検索すると一番最初にヒットした Ruby on Jets

すごい使いやすそう。。ほぼrails と使い方も同じだし。。

と思ったがいろいろとハマって腹がたったので記事にしましたww

腹立ちポイント

(その1) ruby 2.6 だけサポートされてない。

Ruby on Jets がサポートしている ruby のバージョンは 2.5 と 2.7 らしいです。

2.6 でもアプリの作成はできますが、デプロイでこけます。

(その2) jets deploy でハマった

terminal
$ jets deploy
(省略)

Command Failed cd /tmp/jets/jetsdemo/stage/opt && unzip -qo /tmp/jets/jetsdemo/serverlessgems/downloads/gems/nokogiri-1.11.5.zip > /dev/null 2>&1

これはおそらく Ruby on Rails でも起こるやつだと思いますが書きました。

terminal
$ jets clean:build

で解決

バージョン2.6 から 2.7 に変更したことによるものだと思ってます。

(その3) Serverlessgems のは無料枠にはRate Limitがある

jets deploy するときに、デフォでServerlessgems を使用することになっているのだが、その使用回数には制限があるらしいです。

terminal
$ jets deploy
(省略)

ERROR: Limit Reached. This project cannot be deployed.

You have used 31 out of 30

Your current plan: Free
Please upgrade your plan or wait until your download limit resets.
Your download limit resets every day.


https://rubyonjets.com/docs/extras/ruby-versions/

https://zenn.dev/shibata/articles/94257ebd2d33c4

解決策

(その1) 

Serverlessgems 有料プラン登録

月50ドル〜 プランがいくつかあります。
これでRatelimit 問題は解決できますね。

(その2) jets deploy 時に Serverlessgems を使用しない


Jets.application.configure do
  config.gems.disable = true
end

カスタムレイヤーの作成を自身で作成すれば serverlessgems を利用しなくともデプロイ可能です。

(その3) Serverless Framework でデプロイ

Serverless Framework の serverless-ruby-layerというプラグインを使えば結構簡単にデプロイできます。

こうなると、もはやRuby on Jetsである必要はないですね。 Ruby on Rails でも Sinatra でもフレームワーク使わなくても大丈夫です。

おわりに

やっぱり Serverless Framework のruntime rubyに方が使い勝手いいかもしれないです。

あとは、新しいフレームワーク使う時はちゃんとドキュメント一通り読んでから始めた方がいいですね。笑

あまりにも見切り発車すぎるとしょーもないとこで詰まっちゃうんで。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0