-
DBの管理系コマンドは導入専門にやっていれば忘れることはないのだが、 分析目的でちょっとインストールした場合など、そんな頻繁に設定しない場合は忘れてしまう。 そんなPostgreSQLの管理コマンド、ユーザ管理など意外と落とし穴があるので復習しておく。 Cloud SQL、RDS、AlloyDBなどのマネージドDBを利用する場合はpg_ctlやinitdbは不要である。 導入手順は インストール データベースディレクトリの作成(initdbコマンド) 起動(pg_ctlコマンド) ユーザの登録(createuserコマンド) データベースの作成(createdbコマンド) データベースの権限管理 という順になる。 pg_ctlコマン …
続きを読む -
プログラムの中でGoogleのサービス(API)を操作するとき、Google認証が必要になる。しかしこれがややこしく、Googleの公式のドキュメントの記述も古かったりサービスの種類によって方法がばらばらだったりして分かりにくい。この記事ではこれを整理して説明する。 プログラムでGoogle認証する場面 具体的なケースを想定するとわかりやすいのだが、 たとえばGoogleアナリティクスからAPIでデータ取得し、そのデータをGoogle Cloud StorageやBigQueryに書き込みする場合、Googleアナリティクスのレポート閲覧権限(特定のビューに紐づいた)とGCPの権限(Google Cloud Storageの書き込み …
続きを読む -
- GCPのIAMポリシー(権限設定) GCPにおける階層と言葉の定義 組織 (フォルダ) プロジェクト 各種リソース Cloud Storage BigQuery Compute Engine
- プロジェクトとリソースを中心に考える。 フォルダや組織はプロジェクトを便宜的に束ねるもの。フォルダや組織は設定しなくてもいい →後述するが、組織/プロジェクト/リソース単位で権限設定ができる アカウント アカウントには2種類 ユーザーアカウント Googleのログイン画面からログインできるアカウント 人間ユーザ。異動や退職とともにアカウントがなくなるケースも想定する必要がある 一部のGoogleアカウントではアカウント単位のコストが発生する …
続きを読む -
最近では機械学習の計算のためにLinuxマシンを構築しては消し、を繰り返すことが多い。サーバの構築と消去が柔軟に可能なことからもEC2やGCEなどクラウドのインスタンスをよく使うということも影響している。 この記事では一般的なサーバ構築の記事では紹介されていない、クラウドのインスタンスで意外と盲点になる点を中心に、機械学習の計算用サーバとして安定した運用をするために最低限必要な設定をまとめた。 GPUドライバ(CUDA、cuDNN)やコンテナランタイム(Docker/NVIDIA Container Toolkit)の設定は別途必要となる。 Linuxで最初にやっておくべき設定 Amazon EC2やGoogle Compute …
続きを読む -
リモートデスクトップで接続される専用のWindowsマシンを用意するにあたり、VPN接続は必須である。VPNにはWireGuardやTailscaleなどゼロ構成の選択肢もあるが、従来型のOpenVPNでサーバ・クライアントともに設定する場合、2026年時点ではOpenVPN 2.6以降でTAPからWintunドライバへの移行が進んでいる。 OpenVPNクライアントをWindows 10/11にインストールし、そこから常時VPNサーバに接続する形でプライベートネットワークを作り、外の端末からセキュアにWindows機にリモートデスクトップ接続する。Windows機をVPNサーバにするのではない。このやり方、意外と難しいので説明する …
続きを読む -
格安で使えるGCEのSpot VM(旧プリエンプティブインスタンス)。問答無用でシャットダウンされるというクセが困りものだが、使いようによってはハイスペックのインスタンスを安く効果的に使うことができる。ここではそのシャットダウン対策と最大限活用するためのヒントを紹介する。 機械学習用途ではVertex AI TrainingやGKE Autopilotなどマネージドサービスが充実しており、GCE直接利用は減少傾向にあるが、GPU/TPUを利用した機械学習ワークロードでコストを抑えたい場合などにSpot VMは有効である。 Spot VM(旧プリエンプティブインスタンス)とは Google Compute EngineのSpot VM …
続きを読む -
データ処理バッチでシェルスクリプトは便利 データ処理などでバッチプログラムを書くことは多い。Pythonなどのプログラム言語を使って全部記述する方法もあるし、最近ではGUIのワークフローを描けるツールも出てきている。 ただシェルスクリプトは依然として強い。シェルスクリプトは概して動作が高速で、イレギュラー処理に対しても柔軟に対応できる。gcloudやawscliなどのコマンドを使って記述できるので、できないことはない。機能がなければコマンドをインストールすることも可能。困ったときにも確実にゴールにたどり着くメリットがある。プログラム言語だとライブラリの出来に依存する。AirflowやPrefect、Cloud Composerなどワ …
続きを読む -
本ブログではたびたび静的ウェブ配信について説明してきたが、 GCP静的ウェブ配信、Firebase Hostingとあわせて、個人で静的配信するなら決定版といえる方法を紹介する。 Netlifyとは WordPressで静的サイトを生成し、Netlifyで公開する。Netlifyは 静的サイトのホスティング AWS Lambdaのような関数 フォーム などができる、サーバレスで何らかのサービスを配信するためのプラットフォームである。個人用途であれば大部分の機能を無料で使える(複数ユーザ、Basic認証などは有料)。 端的に言うと静的サイトの配信を無料でできるサービスである。**リダイレクトや転送(リバースプロキシ)**も可能でリスト …
続きを読む -
この記事はDigdag v0.9.41時点の検証結果に基づく。 Digdag / TreasureData Workflowのエラー処理。エラー時の処理を指定する_errorだけでなく_checkやfail>:などの処理もあり、エラー発生/成功時の処理をカスタマイズできる。自由度が高く、ワークフローの階層構造とともにうまく使えばワークフローのコードが簡潔になる。公式ドキュメントの説明が不十分なので補足する。 Digdagがエラーと判定して_errorを発動する条件 コマンドの戻り値が0であれば正常、0でなければエラーとみなす。つまりシェルスクリプト(sh:>)の場合は exit 1 であればエラーとなる。 _errorを複数の階層で …
続きを読む -
Google Cloud Platformの静的コンテンツ配信機能は低コストで手軽に使うことができる。サーバサイドプログラム(PHPなど)のかかわらない静的ウェブサイトの配信(HTML+CSS+JavaScript+画像+動画など)だけであれば、ApacheやNginxなどのウェブサーバなど不要でできてしまう。スケーラブルでトラフィックによるサーバ負荷を気にする必要がない低コストの環境が簡単に使える。WordPressでも静的配信をしているのであれば相性がいい。キャンペーンのランディングページなどもこれで十分なケースがほとんどである。 この記事ではGoogle Cloud Storageを使った簡単な方法と、少し高度にはなるが独自ド …
続きを読む