byyanai格安で使えるGCEプリエンプティブインスタンス。問答無用でシャットダウンされるというクセが困りものだが、使いようによってはハイスペックのインスタンスを安く効果的に使うことができる。ここではそのシャットダウン対策と最大限活用するためのヒントを紹介する。勝手に停止される(停止することをプリエンプト=preemptするという)安い(同スペックの通常インスタンスの半額以下、1/3程度)という特徴がある。ミッションクリティカルな用途には向かないが、何よりも安いのでCPUやメモリを大量に使う機械学習の処理をするには向いている。停止された場合には最初からやり直しとなる。CPUを大量に使って短時間でプリエンプトされないうちに処理を終わらせるのがいい(GCEの余剰リソースを使うインスタンスであるため、CPUを数多く使うほどプリエンプトされやすくはなる)インスタンスがプリエンプトされたときに通知インスタンスがプリエンプト状態になると1分後に強制停止されるシャットダウンスクリプトが実行されるつまり停止1分前にスクリプトを実行できる。1分間の間に終了処理を入れることができる。猶予は1分しかないので、大きなファイル(学習結果のスナップショットなど)の保存などはできない。停止したことを通知し、必要に応じてインスタンスを再起動して再学習開始するなど、何らかの対応をできるようにするのがいいだろう。ここではChatwork/Slackに通知する方法を紹介する。<なるべく無停止状態で起動させておくプロセスがストップされるのは仕方ないが、サーバ自体は常時(に近く)稼働させておきたいケース。startコマンドを使うとインスタンスを起動できるが、すでに起動している場合は無視される。startコマンドを送る。プリエンプトされても(理論上)1分以内に再起動できる。サービスのダウンタイムも数分で済むということになる。cronを使ってこれを自動実行すればいい。複数のプリエンプティブインスタンスを集中管理するのもあり。Functionsは機能が少なめでシンプル。Android)のイメージがあるが、ウェブ運用でも便利。今回は純粋なWebサイトだけの運用のケースで環境をFirebaseに統一してみた。Platformの静的コンテンツ配信機能は低コストで手軽に使うことができる。サーバサイドプログラム(PHPなど)のかかわらない静的ウェブサイトの配信(HTML+CSS+JavaScript+画像+動画など)だけであれば、ApacheやNginxなどのウェブサーバなど不要で...marketechlaboGoogleアナリティクスのapp+webプロパティのデータをBigQuery出力するhttps://www.marketechlabo.com/ga-app-web-property-to-bigquery/Googleアナリティクスのapp+webプロパティがリリースされ、実はサイト訪問の行動ログをBigQueryに出力できるようになった。app+webプロパティそのものの説明これまではGoogleアナリティクス360(GA360)を利用し、そのうえでGoogleに申請しないとログデータをBigQuer...marketechlabo機械学習用のサーバの環境構築メモ(特にGCEやEC2などクラウドインスタンス)https://www.marketechlabo.com/linux-mac-server-settings/最近では機械学習の計算のためにサーバを構築しては消し、を繰り返すことが多い。サーバの構築と消去が柔軟に可能なことからもEC2やGCEなどクラウドのインスタンスをよく使うということも影響している。