LoginSignup
8
12

More than 3 years have passed since last update.

Unuboを使ってみた話

Last updated at Posted at 2019-09-29

:warning: Unubo はサービス終了したようです。(2020/06/13 追記)

先日paiza開発日誌で紹介されていたUnuboを使って簡単なサービスをデプロイしてみました。

このUnubo、まだ日本では全然広まっていないようですが、完全無料で「1 GB RAM, 1 CPU, and 500 MB storage」のサーバーを無料で複数利用できてめっちゃ便利です。
今後有料版のプランもリリースされていくようです(公式Twitterより)。

とりあえず今回はサンプルのflaskアプリケーションをデプロイしてみましょう。

構成

Unubo Apps Python
Python 3.7
Flask 0.12

手順

Unubo App の作成

スクリーンショット 2019-09-30 6.46.44.png
RegionはとりあえずAsiaで。

Data storeのドキュメントに

Please not that databases can only be accessed from apps within the same region.

という記述があったので、DBも使うつもりの方はRegionを合わせましょう。

デプロイ設定

Repository

スクリーンショット 2019-09-30 6.52.50.png
RepositoryのCONNECTからGitHubのデプロイ用リポジトリを選択しましょう。

Deployment settings(Commands)

アプリの起動用のコマンドを記述しましょう。
後述しますが、Unuboのサンプルコード通りとするなら

python app.py

gunicornを使用するなら

gunicorn app:app

としておきましょう。

Secrets

スクリーンショット 2019-09-30 7.12.03.png

ここに環境変数をセットできます。
また、コード中で呼び出す際は os.environ.get を使用すればおkです。

SECRET = os.environ.get('SECRET') # 'SECRET_VALUE'
SECRETS = json.loads(os.environ.get('SECRETS')) # ディクショナリで取得できる

Domains と Monitor は使用していませんm(._.)m

コード

公式のドキュメントが、flaskのサンプルコードを公開してくれています。

app.py(サンプル)
import os
from flask import Flask, render_template

app = Flask(__name__)

# Bind to PORT if defined, otherwise default to 5000.
port = int(os.environ.get('PORT', 5000))

@app.route('/')
def hello():
    # return 'Welcome to Python on Unubo Cloud'
    return render_template('index.html')

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=port)
requirements.txt(サンプル)

Flask==0.12

コードをGitHubにpushして、Deployボタンを押下すれば{app名}.unubo.appにデプロイされます。

試しに作ったもの

IPAカウントダウン
IPA試験までの時間をカウントダウンをしています。
デザイン手抜きです(UIKit使い方よくわかってない)。
また実装したAPIをGoogleAppsScriptから叩いて、IPAカウントダウンbotが7時台、12時台、19時台にカウントダウンツイートをするようにしています。

感想

デプロイでそんなにつまることもなかったしUIもすっきりしていて使いやすいです。
これを無料で使えるのは素晴らしい。
公式Twitterがエゴサしっかりしていて、めっちゃリプライくれるのも好感もてます。

8
12
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
8
12