NetlifyとNowへ引っ越し

Azureで自分のホームページ(と呼べるほどの代物でもないけど。。)をホスティングしていますが 何と月々のフリークレジットの85%以上をこれらのWebアプリが占めていました... 😱

エッ、まじ?

どうりでディープラーニング学習用に使える分が残ってないはずだ...

ということで、これらのWebアプリを無料で運用できるところへ引っ越しさせました。

HTMLサーバーを Azure Web Apps から Netlify へ

無料でホームページを公開したいときの選択肢としてGitHubPagesもありますが前から少し気になっていたNetlifyを使ってみました。

Netlifyのサインアップをして、

  1. 管理画面から New site from Git
  2. ホームページを管理しているBitbucketのプライベートのリポジトリを選択

以上です。

簡単でした。🙂

このままだとURLが (ランダムな文字列).netlify.com なので 好きな名前に変えます。

Site settings > General > Site details > Change site name で変更できました

f:id:sanshonoki:20180121075314p:plain:w300

Node.jsアプリを Azue Web Apps から Now へ

Nowというのは Node.jsやDocker用のPaaSです。 今回、引越し先を探していて初めて知りました。

Dockerでのデプロイができるということは事実上何でもよいということですね。 試しにRailsアプリをDockerでデプロイしたら無事動いてくれました。:-)

デプロイの方法(Node.jsアプリ)
  1. CLIツールのインストール

    $ npm install -g now-cli

  2. 起動用のpackage.json を用意する

     {
       "scripts": {
         "test": "echo \"Error: no test specified\" && exit 1",
         "start": "node server.js"
       },
     }
    
  3. デプロイ

    $ now

    これだけです。メールアドレスを尋ねられて入力するとそのメールアドレスに認証コードを含むメールが飛んできます。リンクをクリックして認証が済むとデプロイが進行します。

以上です。

評判通りに驚くほど簡単でした。🙂

プロダクション用のURLの設定

nowコマンドでデプロイすると毎回違ったURLが発行されるのでプロダクション用にURL固定にしたいときはエイリアスを設定します。

now.json

{
    "alias": "panoplaza-multiscreen"
}

というファイルを用意し、$ now alias とすれば

$nowでデプロイしたURLは https://panoplaza-multiscreen.now.sh/ としてアクセスできるようになります。

Node.jsのバージョンの設定

package.jsonの中でenginesのフィールドを設定すればいいようです。

{
  "engines": {
    "node": "6.x.x"
  },
}

なお、デフォルトは 6.x.x のようですが今後デフォルトのバージョンが変わったときのために念のためセットしてあります。

デプロイの状態を見る
$ now ls

> 1 deployment found under xxx@yyy.com [1s]

panoplaza_multiscreen (1 of 1 total)
 url                                            inst #    state                 age
 panoplazamultiscreen-ezswrmhgyn.now.sh              1    READY                  2h

デプロイのIDを確認できます。

ログを見る
$ now logs panoplazamultiscreen-ezswrmhgyn.now.sh

("panoplazamultiscreen-ezswrmhgyn.now.sh" は自分のデプロイIDに置き換えてください)

デプロイを削除する

公式ページのDocsで見つからずググったらBLOGのページが見つかりました。

$ now rm panoplazamultiscreen-ezswrmhgyn.now.sh

("panoplazamultiscreen-ezswrmhgyn.now.sh" は自分のデプロイIDに置き換えてください)

注意点

無料のOSSプランだとソースコードもログも丸見えになっちゃいます。

確かに https://zeit.co/tsuyoshi/panoplazamultiscreen/utusmcofyf のページは認証がかかってなくソースコードやログが誰でも見えちゃいます。。

f:id:sanshonoki:20180122194923p:plain (右上のLogsもSourceもパブリック)

ソースコードはともかくログまで見えちゃうのは少し気持ち悪いです 🤔

https://(デプロイで発行されたURL)/_src でもソースコードが見れるURLに遷移します)

今回のプロジェクトはソースコードにパスワードやsecret key等の秘密情報を含んでないので公開でも問題ないですがそういった場合は、環境変数を使ったりsecretコマンドを使えばいいようです。

あと、OSSプランは以下のように制限がそこそこありますがちょっとしたものを公開するには問題ないでしょう

  • BANDWIDTH: 1GB
  • LOGS: 100MB
  • INSTANCES: 3
  • MAX FILE SIZE: 1MB
  • STORAGE: 1GB


とりあえず移行できました。ディープラーニングの学習用インスタンスを今より強気に使えるようになるはず ƪ(•◡•ƪ)”