WordPressで生成した静的サイトをNetlifyで公開する

本ブログではたびたび静的ウェブ配信について説明してきたが、 個人で静的配信するなら決定版といえる方法を紹介する Netlifyとは WordPressで静的サイトを生成し、Netlifyで公開する。Netlifyは 静的サイトのホスティング AWS Lambdaのような関数 フォーム などができる、サーバレスで何らかのサービスを配信するためのプラットフォームである。個人用途であれば大部分の機能を無料で使える(複数ユーザ、Basic認証などは有料)。 端的に言うと静的サイトの配信を無料でできるサービスである。リダイレクトや転送(リバースプロキシ)も可能でリスト形式で設定できる。動的コンテンツは別…

続きを読む →

Googleアナリティクス4のデータをBigQuery出力する

Googleアナリティクス4ではサイト訪問の行動ログをBigQueryに出力できるようになった。 従来のGoogleアナリティクス(ユニバーサルアナリティクス)ではGoogleアナリティクス360(GA360)を利用し、そのうえでGoogleに申請しないとログデータをBigQueryに出力することはできなかった。そのためコスト面での高いハードルがあったのだが、Googleアナリティクス4ではGoogle Cloud Platform(GCP)の従量課金コストだけでログをBigQueryに出力できるようになったのである。以前はこの設定で直接Firebaseの管理画面からダミーアプリを作る手順が必…

続きを読む →

Digdag / TreasureData Workflowのエラー処理

Digdag / TreasureData Workflowのエラー処理。エラー時の処理を指定する_errorだけでなく_checkやfail:>などの処理もあり、エラー発生/成功時の処理をカスタマイズできる。自由度が高く、ワークフローの階層構造とともにうまく使えばワークフローのコードが簡潔になる。公式ドキュメントの説明が不十分なので補足する。 Digdagがエラーと判定して_errorを発動する条件 コマンドの戻り値が0であれば正常、0でなければエラーとみなす。つまりシェルスクリプト(sh:>)の場合は exit 1 であればエラーとなる。 _errorを複数の階層で記述するとど…

続きを読む →

PythonプログラムでGoogle認証してGoogleのサービスを利用する

プログラムの中でGoogleのサービス(API)を操作するとき、Google認証が必要になる。しかしこれがややこしく、Googleの公式のドキュメントの記述も古かったりサービスの種類によって方法がばらばらだったりして分かりにくい。この記事ではこれを整理して説明する。 プログラムでGoogle認証する場面 具体的なケースを想定するとわかりやすいのだが、 たとえばGoogleアナリティクスからAPIでデータ取得し、そのデータをGoogle Cloud StorageやBigQueryに書き込みする場合、Googleアナリティクスのレポート閲覧権限(特定のビューに紐づいた)とGCPの権限(Googl…

続きを読む →

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を使っ…

続きを読む →

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

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

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

続きを読む →