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が可能…

続きを読む →

WordPressのウェブサイトを静的化し、Firebaseで配信する

Firebaseといえばネイティブアプリ(iOS, Android)のイメージがあるが、ウェブ運用でも便利。今回は純粋なWebサイトだけの運用のケースで環境をFirebaseに統一してみた。使うのは以下の機能 Firebase Hosting: 静的HTML、画像などのファイル配信 Google Analytics for Firebase: 計測 これらを独自ドメインのHTTPS環境で公開する。コンテンツはWordPressで管理、生成する。 ドメインは https://marketechlabo.com https://www.marketechlabo.com wwwのないURLからww…

続きを読む →

Bitnamiで1インスタンスに複数のパッケージをインストールする

Bitnamiとは? BitnamiはWordPressやRedmineなどのウェブアプリケーションをPHPやMySQLなどのミドルウェアとともに一式設定済みでパッケージ化して提供してくれるソリューション。例えばAWSのEC2でWordPressを搭載したインスタンスを作るとき、一式インストール済みのインスタンスを選択することができるが、これを提供しているのがBitnamiである。 自前でPHP+Apache+MySQL+CMS(WordPress)をインストールするのとBitnamiはディレクトリ構成や設定ファイルが異なる。 一般的には1インスタンス1パッケージの形で提供されたものを使うこと…

続きを読む →

bashスクリプトのエラー処理のベストプラクティス

データ処理バッチでシェルスクリプトは便利 データ処理などでバッチプログラムを書くことは多い。Pythonなどのプログラム言語を使って全部記述する方法もあるし、最近ではGUIのワークフローを描けるツールも出てきている。 ただシェルスクリプトは依然として強い。シェルスクリプトは概して動作が高速で、イレギュラー処理に対しても柔軟に対応できる。gcloudやawscliなどのコマンドを使って記述できるので、できないことはない。機能がなければコマンドをインストールすることも可能。困ったときにも確実にゴールにたどり着くメリットがある。プログラム言語だとライブラリの出来に依存するし、ワークフロー系のツールは…

続きを読む →

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

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

続きを読む →

Googleアナリティクスのapp+webプロパティのデータをBigQuery出力する

Googleアナリティクスのapp+webプロパティがリリースされ、実はサイト訪問の行動ログをBigQueryに出力できるようになった。 app+webプロパティそのものの説明 これまではGoogleアナリティクス360(GA360)を利用し、そのうえでGoogleに申請しないとログデータをBigQueryに出力することはできなかった。そのためコスト面での高いハードルがあったのだが、今回はFirebase利用に伴うGoogle Cloud Platform(GCP)の従量課金コストだけでログをBigQueryに出力できるようになったのである。しかし連携のための設定手順が大変難しく、有名な記事に…

続きを読む →

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

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

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

続きを読む →

OpenVPNをWindowsにインストールし、リモートデスクトップ接続する

リモートデスクトップで接続される専用のWindowsマシンを用意するにあたり、VPN接続は必須である。VPNにもさまざまなプロトコルがあるが、現在サーバ・クライアントともにOpenVPNが最もインストールしやすい。 OpenVPNクライアントをWindows10にインストールし、そこから常時VPNサーバに接続する形でプライベートネットワークを作り、外の端末からセキュアにWindows機にリモートデスクトップ接続する。Windows機をVPNサーバにするのではない。このやり方、意外と難しいので説明する。 OpenVPNクライアントのインストール vpnux Clientではなく公式クライアントを…

続きを読む →

linuxのテキスト編集(vi, sed, tr, grepなど+xargs)まとめ

linuxなどで使うテキスト編集コマンドの使い方で、これさえ知っていればOKというもののまとめ(vi, sed, grep, sort, uniq, cut, join, tr, nkf, diff)。 後半は特に必要とはいえないため適当。重要なのはvi, sed, grepまでかな。 複数のファイルを扱う場合に使うxargsコマンドについても説明する。 vi ※(数指定)のついているものは、コマンドの前に数を指定することで指定された数だけ該当する操作を行える。 (6hで6字分左に移動) コマンドモードと入力モード コマンドモード→入力モード i: カーソルの直前に挿入(insert) I: …

続きを読む →

PostgreSQLの管理系コマンドまとめ

DBの管理系コマンドは導入専門にやっていれば忘れることはないのだが、 分析目的でちょっとインストールした場合など、そんな頻繁に設定しない場合は忘れてしまう。 そんなPostgreSQLの管理コマンド、ユーザ管理など意外と落とし穴があるので復習しておく。 導入手順は インストール データベースディレクトリの作成(initdbコマンド) 起動(pg_ctlコマンド) ユーザの登録(createuserコマンド) データベースの作成(createdbコマンド) データベースの権限管理 という順になる。 pg_ctlコマンド 起動、停止などのコマンド。 postgresユーザでないと実行できない。 p…

続きを読む →