メンチカツ

ロースカツが好きです

ZeitのNowでServerless Docker(Beta)を試す

zeit.co

という記事を見たので試してみました。

▲Nowとは

zeit.co

  • 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.公式クライアントアプリをインストール

f:id:easy-breezy:20180827132819p:plain

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サーバが起動しています。