無料PaaSのDeta Cloudを試してみた

今回はDeta CloudというPaaSについて少し調べてみました。これはGoogle検索が日本語設定だとほとんど情報が引っかからないので日本人だと知らない人も多いかもしれませんが、以下の謳い文句でなかなかすごい感じがします。

Build & deploy your ideas on the universe’s most developer friendly cloud platform. Say goodbye to servers and bills. Deta is free for ever.

永久に無料。

Detaについて

Detaは個人向けのPaaS製品を提供しています。2022/2現在、提供機能としては以下の3つ。

  • Deta Micros: アプリケーションランタイム
  • Deta Base: NoSQLデータベース
  • Deta Drive: ファイルストレージ

昨今のクラウド事情を考えると機能面で特に驚くようなところはないのですが、期間限定の無料トライアルとか極小リソースの無料枠という形ではなく、そもそもDetaには課金の仕組みがないのが驚きです。どういうこと?と思いましたが、理念としては以下を掲げています。

For developers, not enterprises

Unlike ‘big cloud’, Deta is made with developers in mind. We have no plans to shift our focus to selling to enterprise.

Free, for purpose

Credit cards and server costs are creativity-killers for developers worldwide. Deta is free, built to back creators and their ideas.

We make money together

Deta is building tools to help developers earn money. We aspire to pay you, not charge you.

開発者はDetaを使って良い製品を作って儲けていただいて、いずれはその儲けからいくらか支払ってもらう形にしていきたいということでしょうか。と思ったら、別製品を作っているようなので収益はそちらで賄うとのことです。

We’re working on a big, parallel product that we will be announcing soon. This product will be responsible for generating revenue. Stay tuned!

ちなみに、僕は業務でFastAPIというフレームワークを使っているんですが、そのFastAPIのドキュメントにDetaがスポンサーになっていると書かれていたことでDetaの存在を知りました。
参考: Deta にデプロイ – FastAPI

試してみる

Deta Microsを実際に使ってみます。Deta自体のサインアップ方法は省略しますが、普通にメールアドレスとパスワードのみで登録できます。クレジットカード登録の画面すら存在していませんし、MFA認証などももちろんありません。

CLIのインストール

Deta CLIをインストールします。なんと今のところpipで入れられないようですので、公式ドキュメントの通りシェル経由で入れます。

$HOME/.deta 以下にコマンドなどがインストールされますので、削除したいときは $HOME/.deta 以下をまるごと消せばいいです。

アプリケーションの準備

MicrosがサポートしているランタイムはPythonとNodeのようですが、今回はPythonでFastAPIのアプリを準備します。MicrosはDockerランタイムではないのでDockerfileは不要、Poetryのみでパッケージ管理しました。

Pythonのバージョンが3.7 ~ 3.9までしか対応していないので(2022/02現在)、今のところは3.10以降の機能は使わないようにしましょう。

注意点として、アプリのエントリーポイントは main:app 固定のようなのでファイル名は main.py、アプリ本体の変数は app としておきます。uvicornのオプションも指定できるのかもしれませんがドキュメントには書いてなさそうなので未調査。

Microsアプリケーションの作成とデプロイ

Pythonランタイムでは requirements.txt でパッケージインストールをするのでデプロイ前に用意しておきます。注意点としては、ハッシュ値付きだとエラーになったので取り除いておく必要がありました。poetryなら –without-hashes オプションを使えばOKです。プロジェクトの作成はdeta newコマンドを使います。

newするだけでデプロイまでされるようなのでダッシュボードを見てみます。

↑の画像だと見切れていますが、画面右上あたりにエントリーポイントのURLが表示されているのでクリックして確認します。”hello, world”と画面に表示されていればOKです。お疲れ様でした。

その他コマンド

いくつかよく使うコマンドを紹介します。

Deta Base

NoSQLデータベースのDeta Baseも無料で利用できます。単純なKVSではなくMongoDBのようなオブジェクトデータベースになっているようです。

サーバレスアプリケーションを作るには必須の機能だと思うのでこちらも活用していきましょう。

Deta Driveについては、公式ドキュメント通りに試そうとしましたが、ランタイム側でエラーが起きて実行できませんでした、。ランタイム側に入るSDKが認識していないように見えます。要調査。

リソースについて

Microsのリソース制限などについては細かいので以下のドキュメントを参照してください。

特にRAMについてはデフォルトで128MBと少ないですが、アプリ単位で512MBか1GBに増強できるようです。1GBだと機械学習の推論APIとか動かすのは少し厳しそうですね。せめて3GBあれば用途はもっと広がるかもしれませんが。また、Deta Baseの容量制限等については記載が見当たりません(?。さすがに無限ではないと思いますが、ドキュメントの整備はまだ完全では無さそうです。

ランタイムの途中変更は以下のコマンドで対応できます。

ちなみにPythonのplatformモジュールで少し調べたところ、ランタイムはAmazon Linux2だったのでDetaプラットフォーム自体はAWS上に構築されているようです。

おわりに

永久に無料というのはいつまで続くのかわかりませんが、今のところアプリも無制限に作れるしアイドル時のシャットダウンも無いので、現状はPythonとNodeしか対応していませんが個人開発用としてはけっこう使えるかと思いました。他の著名なPaaS製品だとHerokuがありますが、それと比較してみてもDetaの方が無料で使えるリソースが大きいのでオススメです。とはいえ対応言語などの機能面ではHerokuに大きく劣ってますし、ダッシュボードのUIもまだまだ荒削りです。シンプルなWeb API等を置いておくのにちょうど良いサービスなのではないでしょうか。冒頭でも書いたようにGoogle検索が日本語設定だとほとんど情報が出てこないので、詳しく調べたい場合は英語設定にして調べることをオススメします。Detaは正式リリースが2021年9月らしく、まだ生まれて間もないようなので今後の動向に期待しましょう。

Deta is free for ever.

参考: Deta vs. Heroku: Finding the better cloud provider – LogRocket Blog

あわせて読む:

コメントを残す

メールアドレスが公開されることはありません。