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

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

続きを読む →

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

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

続きを読む →

babel/webpackを使ってJavaScriptのソースをリリース用に整備する

babelは新しいESの記法で作ったJavaScriptのソースを古いブラウザでも実行可能に変換してくれるパッケージ。webpackはJavaScriptのソースコードをminifyするパッケージ。普通は組み合わせて使う プロジェクトディレクトリにnode_modulesを作成する場合 パッケージを構築するイメージ プロジェクトディレクトリの作成 mkdir mylib cd mylib package.jsonの作成 npm init パッケージのインストール npm install –save-dev @babel/core @babel/preset-env babel-loader …

続きを読む →

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

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

続きを読む →

ITP2.3までの変遷・最新の仕様と挙動の違い/対策の必要性と方法

ITPの仕様 次々と新しいバージョンがリリースされるITP。微妙にアップデートされ、仕様がわかりにくくなっているので現時点で最新のものを解説する。 ITPの目的と概要 われわれウェブサイト運用者は cookieやローカルストレージなどを使ってブラウザにドメインのデータを保持し、 それらのデータを必要に応じてツール間で連携する ことによって行動計測やコンテンツの出し分けなどのマーケティング活動を行っている。ITPはウェブサイト訪問者のプライバシー保持のためにそれを制限する仕組みである。具体的に何をやっているのかざっくりまとめると、 この3つのケースにおいて cookieなどを使ったデータ保持が短…

続きを読む →

Googleタグマネージャーの使い方&設定をExcelで出力するツール

Googleタグマネージャー(GTM)とはGoogleが提供している無料のタグマネージャ。 Googleアナリティクスの管理に向いている。 設置 タグは2個あり、両方設置する。それぞれ設置個所が決まっている。 ~内 <body>開始タグの直後 ここにないとSearch Consoleなどの認証で失敗する。 タグの設定 タグ+トリガー+変数 のセット→これら設定の一式をコンテナという タグ→実行するタグ トリガー→タグの実行(発火)条件 変数 トリガーの中での条件判定に使う タグに動的に値を渡す(データレイヤー) 条件判定で使う変数は、たとえば クリックしたリンクのURL ログイン済…

続きを読む →

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

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

続きを読む →

URLの指定の仕方

JavaScriptでURLを表すlocationオブジェクト URLとそのパーツはJavaScriptの変数として取得できる。タグマネージャなどでJavaScriptの変数を使ってURL(の一部)を指定する場合や、直接Javascriptを書いてURLを指定する場合にこれらを使うことがある。 変数名 意味 例 window.location.href URL全体 https://example.com/audio/detail.php?id=123#rev window.location.protocol プロトコル https: window.location.hostname ホスト名 …

続きを読む →

格安に使える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ではなく公式クライアントを…

続きを読む →