y-ohgi's blog

TODO: ここになにかかく

GCP

Firebase Realtime Databaseの更新をCloud Functionsで検知する

TL;DR FirebaseのRealtime DatabaseのイベントをCloud Functions for Firebaseでキャッチする Realtime Databaseの特定のパスのデータの変更内容を検知する About Firebase Realtime Database(以下DB)内で発火されたイベントを取得し、変更内容を確認したい…

kustomizeで管理するGKE-autopilot

TL;DR GKEのmanifestをkustomizeで管理する際のサンプルです 例としてdevとprod環境を分けてプロビジョニングします 概要 kustomizeとは kustomizeとはKubernetesのマニフェスト(yamlベースのIaC)を管理するために使用されるツールです。 素のmanifestファ…

CloudRun上でFinchで作成したcontainerdのコンテナイメージを動かしたかった

TL;DR Finchでbuild/pushしたコンテナイメージをCloudRunで使いたかった FinchでGCPのArtifact RegistryへログインできずにDockerでpushする結果に。 概要 Finchで作成したコンテナイメージをCloud bRun Versions finch v0.6.2 nestjs/nest v9.8.0 node v20.…

Cloud RunサイドカーでDataDog APMを利用する

TL;DR Cloud Runでサイドカー機能が23/05/16にプレビューが発表されました サイドカーコンテナとしてdatpadog agentを並走させ、APMのトレースを取得を試しました About Cloud Runにサイドカーがプレビューとしてリリースされました。 モニタリングやプロキ…

GCS をローカルのdocker-composeでエミュレートする

TL;DR fsouza/fake-gcs-server を使用し、ローカルでGCS をエミュレートする docker-compose 上で他のサービスと協調して動作させる golang で実装されているため動作が速い 概要 クラウド選定時にGCP を使用する際、GCS が必要なサービスでした。 そのため…

GKE-autopilot とCloud SQL を使用したGCP 環境を構築する

TL;DR GKE-autopilot で環境構築をする例 一般的なAPI サーバーを構築することを目指し、GKE-autopilot、GCP のマネージド証明書を使ったhttps 化、Cloud SQL との疎通をさせる kustomize で複数環境の構築 About GCP リソース/API は基本的に手作業でやりつ…

サーバーレスでclubhouse みたいなボイスチャットサービス「mixroom」を開発しました

TL;DR clubhouse のような複数人でのボイスチャットサービス「mixroom」をつくりました 主にSkyWay・Firebase・Next.js を使いました。 https://mixroom.fun 「mixroom」 とは mixroom は"目的ベース"でボイスチャットをする場所を提供するサービスです。 昨…

GKEのWorkloadIdentityを使用してモダンなアクセス制御を実現する

概要 GKE からGCP のサービスや機能にPod 単位で権限を割り振るための機能 "Workload Identity" の概要と使い方についてです。 公式ドキュメントは以下になります。 ワークロード ID | Kubernetes Engine ドキュメント | Google Cloud Workload Identity と…

Cloud Run でNuxtを動かす

TL;DR Cloud Nextで発表された新サービス "Cloud Run" でNuxt.jsを動かした そもそもCloudRunとは httpリクエストを待ち受けるコンテナを動かすためのサービス。 GCRに上げたコンテナを選択すると良い感じに動かしてくれる。 GCPって他にもコンテナ動かすサ…

GKEへExpressを立ち上げる

概要 社内LT会でK8sのライブデプロイをするためのチートシート 構成 手順 Expressプロジェクトを作成 Express作成用Dockerを立ち上げ $ docker run -it -p 3000:3000 -v `pwd`:/data -w /data node:10-alpine ash express コマンドをインストールし、プロジ…

Cloud BuildとkustomizeでGKEのCDパイプラインを作る

概要 Cloud BuildでCDをしたいので、する。 ついでにkustomizeも組み合わせる。 ※プロダクションに導入するには権限がガバガバなので適宜修正。 今回のリポジトリ github.com 目次 概要 今回のリポジトリ 目次 やること スタック CDの流れ 1. CircleCIでGitH…

Google App EngineでPHP7.2が使えるようになったので試す

概要 GAEにphp7.2のランタイムktkr やるぞ Google Cloud Platform Blog: Bringing the best of serverless to you とりあえずphp7系を試す phpを書く ルーティング用コードを記述 app.yaml の handlers はphp7では効かないので index.php へ記述する // info…

社内LT会でKnativeについて発表した

概要 LTやったよ 次回勉強会に向けての反省 社内LT会について クラウドインフラ系で社内勉強会をいくつか主催させていただいています。 クラウドインフラLT会 クラウドインフラランチ会 Kubernetes輪読会 この3つを定期的にやっていて、今回は「CloudNext'18…

Knativeを試してみる

概要 Kubernetes上でサーバーレスを動かすためのOSSフレームワークのKnativeを試した 概要 Knativeとは Serverless コンポーネント 試す 0. 前提 1. GKE Clusterの作成 2. cluster-admin権限を現在のユーザーへ与える 3. Istioのインストール 4. Knativeのイ…

Pull Request毎にGAEでSwaggerをプレビューさせる

概要 APIの量産が必要になったものの、複数人でAPIを量産しているとSwaggerのPRも量産されてく。 Swaggerのレビューはyamlを見てレビューするわけだけど、わざわざSwaggerのプレビューをするためにブランチにチェックアウトしてpullしてサーバー立てるのはし…

GKEでhttps

概要 GKEでhttpsを用いるために、Let's Encrypt cert-managerを試した覚え書き。 jetstack/cert-manager: Automatically provision and manage TLS certificates in Kubernetes 環境 macOS Sierra GKE v1.9.6 helm v2.9.1 $ kubectl version Client Version:…

GCPを複数プロジェクト触るのでbashを良い感じにする

GCP

概要 お仕事でGCPを複数プロジェクト扱うことになった 操作は基本 gcloudコマンドから行っているので、shellを良い感じにしたいのがモチベーション。 // あとGAEのデプロイ先GCPプロジェクトを間違えたのもモチベーション... それと、GKEも使うのでそっちも…

GCPのCloud SpannerをGAEで動かす

概要 GCPのCloud Spannerについて調べて動かしてみた話 やったこと Cloud Spannerの調査 GAEからCloud Spannerを叩く アウトプット github: https://github.com/y-ohgi/gcp-practice GAE(Google App Engine) GCPのPaaS 勝手にスケールするし負荷分散もしてく…