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