10/19 追記あり
NightscoutをMongoDB Atlasで継続利用する形でマイクロソフトのCloudサービスAzureに移行する方法がリリースされたので、早速、試してみた。
オリジナルの移行ガイドが実際と異なる部分があったので、確認したり、調べたり、迷ったりしながらセットアップした。そのため半日ほどかかった。
私が行った内容、気づいたことを備忘録として記事にまとめる。これを参考にすれば短時間(1時間くらい?)でできると思う。
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に発行されるので、その段階で課金が発生するかが分かると思う。