クラウド
Photo by David Watkis
GCP のロードバランサは Web コンソールや CLI を用いて構築することになりやすく、構成のバックアップやリストアに難があります。
一度構築したうえで OpenTofu / Terraform …
Asteriskの設定 は多数のファイルセットで構成されますが、ダイヤルプラン(番号ごとのルーティング)はextensions.confに定義します。
簡素な内線の例 ダイヤルプランは次のような構文 …
gRPC-WebはgRPCサービスをブラウザから利用するためのプロキシプロトコルで、ブラウザが対応する素朴なhttpリクエストをベースに構築されています。
ネイティブgRPCはHTTP/2を前提として …
Asterisk はもっとも有名なオープンソースVoIPサーバーです。
SIPソフトフォンによる内線ネットワークをコアとして、電話網(PSTNゲートウェイ)との統合やCTIにも拡張可能な機能を持ちま …
Windows10の1803バージョン以降では、オプション機能の追加によりWindows標準のOpenSSHサーバーを追加インストールできます。
設定にはWindows特有の仕様がありますが、動作じた …
※ Terraformer は obsolete になりました。現在、同じ目的には OpenTofu の標準機能によるエクスポート が可能です。
Terraformer は、稼働中のクラウドから …
Google Kubernetes Engineは、Pod/ServiceのIPをVPCのサブネット範囲で動的に設定しています(古いクラスタでVPCネイティブでない場合をのぞく)。
Podと …
WindowsにもMicrosoftが配布しているOpenSSHのクライアントがあり、ターミナル上のPowerShellから利用できます。
たとえばAlacrittyなどUnix系OSと同じターミナル …
プロキシを利用した場合、一般的にサービスが受け取る接続元IPはプロキシのIPになります。
じっさいの接続元IPはヘッダーなどから抽出する必要があります。
GCPのHTTPSロードバランサーの場合、 タ …
envoyの HTTPアップグレード 機能は、WebSocketとHTTP CONNECTメソッドをサポートしています。
CONNECTを使うとTCP通信をトンネルできます。
また、SNIに対応したク …
GKE(Google Kubernetes Engine)は、HTTPS サービスを Kubernetes Gateway/Ingress を用いて公開できます。
非 HTTP のサービスを公開するに …
Google Kubernetes Engineのフロントエンドを ingress にする場合、自動でGCPのヘルスチェックが作られ、これを通過しないとPodが正常動作していたとしてもバックエンドサー …
Google Cloudはネットワーク製品のラインアップが充実していますが、製品ごとに機能と受け付けるオプションが異なるため製品理解が重要です。
まず、製品名が互いに似通っていて区別しづらいため、 …
Google Chat (旧Hangouts)はSlackなどと同様のビジネスチャットで、Google Workspaceに統合されています。
テーマ別のスペースやチャットボットなどの一般的な機能に …
Google Kubernetes Engine(GKE)のサーバーはノードプール単位で管理します。
GKEノードのマシンタイプを変更したい場合には、新規ノードプールの作成のうえ、コンテナ移行が必要で …
kubectlなどkubernetesクラスタとの通信は、クラスタごとのルートCAで署名されており、GKEのルートCAは5年で期限が切れるため手動更新が必要です。
Google Kubernetes …
原則として、kubernetesやdockerなどのコンテナは、単一プロセス構成で設計します。 「なるべくシンプルな方が良いから」という曖昧な理由ではなく、対障害の観点でベストプラクティスを検討すると …
JWTについては、発行やリフレッシュなどライフサイクル全体を設計する必要がありますが、envoyは主要な機能であるJWTの有効性検証を提供しています。
対応アルゴリズムなどの概要は、 JWT …
envoyは多様なプロトコルに対応しています。TCPプロキシとしても利用でき、HTTPプロキシ機能と混在も可能です。
TCPはHTTPと比べて取り扱う処理が少ないため、設定もシンプルです。以下はSSH …
envoyは非常に高機能なプロキシですが、Basic認証のフィルタ機能はありません。 Set basic authentication to the endpoint で議論されているように、同等の機 …
envoyのconfig は、設定ファイルにスタティックに定義する方法のほか、xDSプロトコルに沿って動的に設定する方法も利用できます。
xDSはgRPCサービスを構成する方法と、configファイ …
envoyは高機能なネットワークプロキシで、サポートするプロトコルが豊富、動的に構成変更が可能といった特長があります。 高機能プロキシ共通の課題としてconfigが複雑であるため、構成を理解することが …
クラウド・プラットフォームは柔軟に増設可能であり、利用上限は青天井です。課金対象リソースを意識して制御する限り緻密にコストを制御できますが、誤操作・悪用・オートスケールなど、いくつか意図しない課金の余 …
Google Cloud Storage(GCS)はスタティックサイトのホスティングにも利用できます。
基礎的な設定 バケットはサイト専用に用意し、権限はallUsersに読み取り権限を追加します。 …
Google Cloud Build は、CI/CD をホストするサービスです。
Artifact Registry と統合されており、GKE で動作させる docker イメージをビルドする用途に …
日本向けディストリビューション以外の環境では、おおくの場合タイムゾーンがUTC(グリニッジ標準時)に設定されており、JST(日本標準時)と9時間ずれていることがあります。
(現在の時間帯設定は、シェル …
無料SSL証明書のLet’s EncryptがACMEv2プロトコルでワイルドカード証明書発行に対応しました。
ACMEv1でも、サブドメインを羅列することで1枚の証明書に複数ドメインの証明を混載でき …
サービスアカウントは、Google CloudのAPI利用の際にアプリケーションを認証するアカウントです(詳細は 公式ドキュメント 参照)。
多くのケースでは、jsonファイルを取得してAPIクライア …
Google Cloudにも Cloud DNS があり、DNSサーバーをホスト可能です。
Let’s Encryptのワイルドカード証明書取得のためのCertbotプラグインもCloud DNSをサ …
DockerでWebサービスの開発環境を構築する手順は、ソフトウェア・ネットワークの設定が中心となります。
必要なツールのセットアップは各OS用のDockerをインストールするだけでひと通り揃いますが …
Dockerはイメージ取得レジストリのデフォルトに Docker Hub を利用しています。Docker Hubサービス上でビルドできる Automated Build 機能を利用すると …
標準化されたWebサービス認証手段の1つに、プライベートCA(オレオレ認証局)からSSLクライアント証明書を発行する手があります。
パスワード認証などと併用することで、セキュリティ強化を図れます。
大 …
メール配信サービスSendGridを利用する際、Whitelabel(ホワイトラベル)を事前設定しておくことで、迷惑メールフォルダに分類されるスパム判定の度合いや、Gmailなど受信アドレス欄の …
Google Cloud Storage (GCS)には、サイト配信やスタティックファイル配信の機能があります。AWSのS3と似た機能です。
Google Cloud SDKをインストールすると …
クライアント証明書による認証は、追加の機器などを必要とせずに比較的確実にアクセスを制限できるため便利です。またサーバー証明書と異なり、自前発行の証明書でもブラウザーのエラーにならないため、セキュリティ …
Webサービスの普及により、ユーザーが保有するアカウントの数は続々と増えています。
大規模なサービスでは自社サービスを横断利用できるような共通IDへの統合も進んでいますが、多くのWebサイトではなおそ …
Google Compute Engineのmicroインスタンス(f1-micro)上のサービスが安定せず、何度再起動しても数日でハングアップする、という挙動に遭遇しました。
dockerがコンテナ …
Google Compute Engineのインスタンスには、gcloud compute sshコマンドが提供されています。
さらに、Developers Consoleに登録したSSH鍵の情報を用 …
docker/Container VM on Google Compute EngineでPostgresqlのベンチマークを実施。
主にディスク容量と性能の傾向を確認したかったため …