ZeitのNowでServerless Docker(Beta)を試す
という記事を見たので試してみました。
▲Nowとは
- Zeit(←ツァイトと読む)が作ってるシンプルなPaaS
- Dockerizeされたものならデプロイ可能
- 最大3インスタンスまでは無料で使える
Zeitとは
Next.js(ReactでSSRを提供するフレームワーク)やMicro(Node.jsのExpress相当のフレームワーク)を作ってる会社。
Mongoose(Node.jsからMongoDBを操作するためのライブラリ)やsocket.io(Node.jsからWebSocketを使うためのライブラリ)を作った人が所属してるそうです。
▲NowのServerless Docker(ベータ)とは
- コールドブート(電源OFFからの起動)が早い
- CPU、メモリの割り当てが出来る(
c.125-m512
というように) - 最大実行時間(デフォルトは5分、最大30分)
- オートスケーリングも出来る(デフォルトは10)
- DockerfileにEXPOSEでポート番号を書かなくても良い
やってみよう
1.公式クライアントアプリをインストール
2.Dockerfile
を用意。EXPOSEいらない。ここではswaggerを立ててみる。書くのは1行だけ。
FROM swaggerapi/swagger-ui
3.Dockerfileと同じところにnow.json
を用意。何も考えずに以下のように書く。
{ "type": "docker", "features": { "cloud": "v2" } }
4.作成した2ファイルがあるディレクトリからターミナルでnow
と叩く
無料版(OSS版)だとpublicアクセスになってしまうよと言われるので、よければ「y」を入力。
> Success! Deployment ready
を出たら成功です。
> https://[ディレクトリ名]-[uniqueキー].now.sh [in clipboard]
と返って来てるので、ブラウザからアクセスするとswaggerサーバが起動しています。