1型でいこう!

My life with type 1 diabetes.

Nightscout:HerokuからマイクロソフトAzureへの移行手順

10/19 追記あり

NightscoutをMongoDB Atlasで継続利用する形でマイクロソフトのCloudサービスAzureに移行する方法がリリースされたので、早速、試してみた。

オリジナルの移行ガイドが実際と異なる部分があったので、確認したり、調べたり、迷ったりしながらセットアップした。そのため半日ほどかかった。

 

私が行った内容、気づいたことを備忘録として記事にまとめる。これを参考にすれば短時間(1時間くらい?)でできると思う。

 

nightscout.github.io

 

1.Azureアカウントの作成

a) アカウントを作成する

クラウド コンピューティング サービス | Microsoft Azure

 

Azure の無料アカウントを今すぐ作成 | Microsoft Azure

 

b)サインインする

(アカウント登録後のサインインで、GitHubアカウントでサインインするを選び、GitHubとのリンクを登録するのが良い)

  • 電話番号の入力
  • 携帯電話に着信がきて、音声でコード番号が通知されるのでメモする
  • コードを入力する
  • カードによる本人確認

GitHubとのリンクを行うと、サインインに数分かかる。

 

クレジットカードに課金される?

クレジットカードの登録により課金されるのでは、との心配が起きるが、

  • Azureに初めてアカウント登録すると、自動的に「12ヶ月間または200US$までの使用」は課金されない無料プランが適用される(初回登録に限定)
  • 「12ヶ月間または200US$までの使用」を超えた場合、使用目的を「開発/テスト」、「1GBメモリ、60分/日の計算は無料」に設定するので、課金されない

これらの条件で通常のNightscoutの使用であれば課金されないと言われている(←Scott Hanselmanの説明)。

なお、「60分/日」は接続時間ではなく、Azureが定めるSKUを指す。使い方によってSKUは変動する(従量課金制)。

 

2.Nightscout Web Appの作成

a) Azureサービスから「リソースを作成」を選ぶ

 

「ホーム」を選択する

 

「リソースの作成」をクリックする

 

b) Webアプリの作成

「Web アプリ」をクリックする

 

c) 自分用のNightsoutアプリを作成する

① アプリ名の指定

の箇所は変更しない(Azure subscription 1はアカウント登録時に無料プランが自動適用されている。地域はアプリを運用するロケーションで、MongoDBを使用するのでDBがUSにあるはずで日本に変更するのは無意味)

以下を入力する

  • アプリ名は、NightscoutのURLに使用される(アプリ名は英数字とハイフンで64文字未満、先頭と末尾にハイフンは不可)
  • 公開は「Dockerコンテナー」を指定する

アプリ名は、次のようにNightscoutをアクセスするURLに組み込まれる。これを理解してアプリ名を決めると良い。

  https://アプリ名.azurewebsites.net/

 

② サービスプランの変更

上記の入力・指定をすると、同じ画面の下段にある「App Service プラン」を変更できるようになるので、 「SKUとサイズ」の右側に表示されている「サイズを変更します」をクリックすると、「スペックの選択」画面になる。

 

「開発/テスト」と「F1(無料)」を選択後、「適用」をクリックする

 

③ Dockerを設定する

「スペックの選択」で「適用」をクリックすると「Webアプリの作成」の基本に戻るので、「SKUとサイズ」が変更されていることを確認後、最下段の「次:Docker」をクリックする。

 

オプションで「単一コンテナー」を、イメージソースで「Docker Hub」を、アクセスの種類で「パブリック」を選び、

イメージとタグに

 nightscout/cgm-remote-monitor:latest

を入力後、最下段の「確認および作成」をクリックする。

 

④ 内容を確認後、デプロイする

「Webアプリの作成」の「確認および作成」画面になるので、指定・入力内容を確認する(この先に進むと変更できないので、しっかり確認する)。

OKであれば、最下段の「作成」をクリックする。


⑤ デプロイ完了

アプリのデプロイが行われ、完了すると以下の画面になる。

「デプロイが完了しました」の表示がない場合は、④までの指定に誤りがある。エラーの原因を見極め、修正する(①からやり直し?)

デプロイが完了したのを確認後、「リソースに移動」をクリックして、Web Appの構成を行う。

 

3.Nightscout Web Appを構成する

① 構成画面へ移動する

「構成」をクリックする


② 別のブラウザでHerokuにログインし、Config Varsを表示する

Nightscoutのアプリをクリックする



「Settings」をクリックする

下方へスクロールして、Reveal Config Vars へ移動する

 

HerokuのConfigration Variablesが表示される

 

 

③ HerokuのConfig VarsをAzureにコピーする

(①で表示したAzureアプリの構成画面と、②で表示したHerokuの画面を左右または上下に並べると便利)

「新しいアプリケーション設定」をクリックする

 

追加/編集のウィンドウが開くので、HerokuのConfig Varsの各項目から名前と値をコピー&ペーストして、最下段の「OK」をクリックする。これをすべてのConfig Varsの項目で繰り返す。

追記(10/19):Config Varsは、値を持たない(null、何も無い状態)ものもコピーする(既存のHerokuからすべてのVariablesをコピーする)。値を持たない(null)Variableは、名前のみをコピー&ペースト後「OK」をクリックする(スペース(空白文字)があると考えるのは誤り)。

すべての項目を写し終わったら、コピー漏れがないかなどを確認する。

 

Dexcom使用者は下記に注意:

追記(10/19)

Scott Hanselmanの移行ガイドに上記の記載があるが、この記載はConfig Varsの必要な項目のみをコピーする想定になっている。すべてのConfig Varsを機械的にコピーすれば、正常に動くと思う。

当初、Config Varsで必要と考えたVariableに限定してコピーしたが、レポート作成時に不具合が起きた。すべてのConfig Varsのコピーを行い解決した。

 

Config Varsのコピーが終わったら、「保存」をクリックする。

 

確認メッセージが表示されるので、「続行」をクリックする。

 

④ HerokuのNightscoutをMaintenance Modeにする

HerokuのアプリをMaintenance Modeに変更する。これ以降、Herokuのアプリは使えない(戻したい時は、Maintenannce ModeをOFFにする)。

 

⑤ Uploaderを変更する

NigjtscoutのURLを下記で確認する。

 

私は、Medtronic 770Gを使用しているので、xDrip+Carelinkの設定を変更したが、それ以外の場合は次のようにする。

 

URLは
  https://アプリ名.azurewebsites.net/

となるが、Azureの上記画面(の箇所)で確認する。

 

以上で、移行完了。

 

4.正常に動くことを確認する

一通り動かしてみたが、若干の不具合(パラメタ設定の問題?)があったが、以前と同様に操作でき、問題はない。

アプリのデプロイが成功し、すべてのConfig Varsをきちんとコピーできていれば、正常に動くはず。もしNighscoutにアクセスできない場合は、これら(デプロイとコピー)のどこかに問題がある、あるいはURLが正しくない、が原因。

 

5.その他

Scott Hanselmanの移行ガイドは、実際のAzure画面と異なる部分がある(恐らく、彼と環境が異なることが原因と思う)。そのため、Azureアカウント登録後、無料プランを確認する表示を行えなかった。『SubscriptionでFree Trial』と表示されない原因を探して、いろいろ操作した結果、12ヶ月間無料の権利を失ってしまった。

 

従量課金制の適用でスタートすることになってしまった。


私自身が1ヶ月使用後に課金されないかどうかの実験台となる。

使用料が発生しているかを、Azureのサブスクリプションで確認できるので、定期的にチェックする予定。

追記(10/19)

請求書の発行日が決まっている。10月分の請求書が11/9に発行されるので、その段階で課金が発生するかが分かると思う。