Google Cloud Functions / Cloud Functions for Firebaseの微妙な使い勝手

AWSのLambdaは高機能だが、GCPのCloud Functionsは機能が少なめでシンプル。ただ微妙なクセがある。 Google Cloud FunctionsとCloud Functions for Firebaseの関係 Cloud Functions for FirebaseはGoogle Cloud Functionsを簡素化してFirebaseで使えるようにしたもの Node.jsのバージョン8のみ Google Cloud Functionsは独自ドメインが使えないが、Cloud Functions for Firebaseでは使える(独自ドメインSSLのWeb APIが可能…

続きを読む →

Googleクラウドで格安お手軽スケーラブルな静的ウェブ配信

Google Cloud Platformの静的コンテンツ配信機能は低コストで手軽に使うことができる。サーバサイドプログラム(PHPなど)のかかわらない静的ウェブサイトの配信(HTML+CSS+JavaScript+画像+動画など)だけであれば、ApacheやNginxなどのウェブサーバなど不要でできてしまう。スケーラブルでトラフィックによるサーバ負荷を気にする必要がない低コストの環境が簡単に使える。WordPressでも静的配信をしているのであれば相性がいい。キャンペーンのランディングページなどもこれで十分なケースがほとんどである。 この記事ではGoogle Cloud Storageを使っ…

続きを読む →

格安に使えるGCEのプリエンプティブインスタンスの勝手に停止対策

プリエンプティブインスタンスの設定

格安で使えるGCEプリエンプティブインスタンス。問答無用でシャットダウンされるというクセが困りものだが、使いようによってはハイスペックのインスタンスを安く効果的に使うことができる。ここではそのシャットダウン対策と最大限活用するためのヒントを紹介する。 プリエンプティブインスタンスとは Google Compute Engineのプリエンプティブインスタンスは 最大で24時間起動 勝手に停止される(停止することをプリエンプト=preemptするという) 安い(同スペックの通常インスタンスの半額以下、1/3程度) という特徴がある。ミッションクリティカルな用途には向かないが、何よりも安いのでCPU…

続きを読む →

Google ColaboratoryでRを使う

無料でPythonの実行環境を使わせてもらえるGoogle Colaboratory。しかもGPUと12GBのメモリ、350GBのディスクまで使える環境であり、手元のPCよりハイスペックな人も多いだろう。 RユーザにとってはPythonだけでなくRでも使えたらいいのにと思うところである。そこで、この記事ではこの環境でRを使う方法を解説する。 Rを使う4つの方法 実はGoogle ColaboratoryのインスタンスにはRの環境(RのバイナリとJupyter Kernel)がインストールされており、わずかな手順で使えるようになるのである。 参考までにインストールされているKernelの一覧はマ…

続きを読む →

機械学習用のサーバの環境構築メモ(特にGCEやEC2などクラウドインスタンス)

最近では機械学習の計算のためにサーバを構築しては消し、を繰り返すことが多い。サーバの構築と消去が柔軟に可能なことからもEC2やGCEなどクラウドのインスタンスをよく使うということも影響している。 この記事では一般的なサーバ構築の記事では紹介されていない、クラウドのインスタンスで意外と盲点になる点を中心に、機械学習の計算用サーバとして安定した運用をするために最低限必要な設定をまとめた。 Linuxで最初にやっておくべき設定 Amazon EC2やGoogle Compute Engingなどのクラウドインスタンスのデフォルトの設定では不都合があるため、設定を追加する必要がある。 スワップメモリの…

続きを読む →

Google Compute Engineでcronを使って日次バッチ処理を実行する

クラウドを使った理想のバッチ運用 Google Compute Engineのメリットはリサーブ不要で、 使う時間だけ起動してコストメリットを享受できる点にある。 毎日決まったバッチ処理をする時間だけインスタンスを起動し、終了時に停止する運用をすれば、 本当にバッチ処理を実行する時間しか課金対象にならない。 ハイスペックなインスタンスを使ってもそんなにコストはかからない。 そんな運用ができたら、毎日決まった時間にインスタンスを起動することができたら理想なのだが… 実はGoogle Cloud Platformの管理画面上ではできないのだが、 インスタンス管理用のGCEインスタンスを作れば可能に…

続きを読む →

一般的なDBに慣れてきた人がBigQueryを扱う際にハマりやすいポイント(Legacy SQL編)

一般的なSQLに慣れてきた人がBigQuery(Legacy SQL)を使う際によくハマるポイント、 特にGoogleアナリティクス360(旧Googleアナリティクスプレミアム)が出力するログデータを扱う場合に直面する問題を中心に解説する。 Googleアナリティクス360のログデータはBigQueryの特徴的なところを嫌というほど満載している。 ということで、これを扱えれば大概の問題には対応できるようになるだろう。 なおLegacy SQLに限定した話。Standard SQLは未検証。 言語個別の仕様 ネストされたデータ形式 BigQueryでは各レコードの1個のカラムに複数の値、つまり…

続きを読む →