Vercel・Cloud Run間の通信をIAMで認証する

5 min read | #開発 #Vercel #Google Cloud #Cloud Run

こんにちは、@p1assです。 Google Cloud の IAM を使ったテクニックを紹介します。

モチベーション

とある趣味のプロジェクトで、Vercel に Node.js のフロントエンドサーバー、Cloud Run にバックエンド API をホスティングするアーキテクチャを設計しました。 Cloud Run にホスティングしている API は、フロントエンドサーバーが SSR するときに呼び出されます。 一方で、ブラウザから直接 API を叩くことはありません。

アーキテクチャ 簡略化したアーキテクチャ

このようなアーキテクチャでは、Vercel から Cloud Run にアクセスできるようにするために、Cloud Run のエンドポイントをインターネットに公開する必要があります。 しかし、何も対策をせずインターネットに公開してしまうと、URL が露出してしまった際に第三者から API を叩かれてしまう危険性がありました。

そこで、IAM の仕組みを使うことで、エンドポイントをインターネットに公開しつつも、Vercel からしか Cloud Run の API を叩けないようにする仕組みを導入したいです。

続きを読む

有機ELテレビを買った 【SONY BRAVIA XRJ-48A90K】

7 min read | #雑記 #テレビ

今回購入したテレビ

こんにちは、@p1assです。

タイトルの通り、数ヶ月前に有機 EL テレビを買いました。 高い買い物でしたが、非常に満足しています! このブログでは、テレビを買った経緯や使い心地、テレビを買うために調べたことなどを紹介します。

続きを読む

バックエンドエンジニアがNext.jsのApp Directoryに夢を見る

6 min read | #設計 #Next.js #React

こんにちは、@p1assです。

最近、Next.js 13 から beta で導入されている App Directory を趣味で触っているのですが、今まで SPA を採用しづらかった事業領域でも React のエコシステムを使えるようになりそうな予感がして、ワクワクしています。

このブログでは、今までどういった課題があり、Next.js の App Directory がそれをどのように解決するのかを紹介します。 なお、内容はあくまで考察であり、実際に運用をしているわけでない点に注意してください。 これは「夢」なのです。

続きを読む

2022年にやったこと

3 min read | #ポエム #アニメ #ライブ #引っ越し #旅行 #ゲーム

こんにちは、@p1assです。

年末なので 2022 年にやったことをまとめようと思います。

続きを読む

『Googleのソフトウェアエンジニアリング』を読んだ

3 min read | #読書 #テスト

こんにちは、@p1ass です。 最近はどっぷり Splatoon 3 にはまっています。

さて、ここ 1 年近く読み進めていた『Google のソフトウェアエンジニアリング』をようやく読み終えました。 大ボリュームで時間がかかってしまいましたが、学びが多くある本だったので感想をまとめようと思います。

続きを読む

ISUCON 12 本選に参加しました

5 min read | #ISUCON #Go

こんにちは、@p1ass です。

前回のブログに引き続き、ISUCON 12 の本選に @km_conner@atrn0 で参加しました。

結果は、参考スコア 218,852 点で失格になりました 😭

PASS してたら総合 5 位のスコアのようです。 僕のミスのためとても悔しいし、申し訳ない気持ちでいっぱいです。

スコア

この記事ではいつも通りやったことを書こうと思います。

GitHub はこちらです。

なお、スコアグラフはこのようになりました。

スコアグラフ

続きを読む

ZigでISUCON 12 の予選をCGOクロスコンパイルする

2 min read | #開発 #Zig

こんにちは、@p1ass です。

先日投稿した記事「ISUCON 12 の予選に参加して、7 位で本選進出を決めました」にて、CGO クロスコンパイルに苦労した話をしました。

その後色々調べたところ、Zig を使うと簡単にコンパイルできることを知ったので試してみました。

続きを読む

ISUCON 12 の予選に参加して、7位で本選進出を決めました

10 min read | #ISUCON #Go

こんにちは、@p1ass です。 先日行われた ISUCON 12 の予選に @km_conner@atrn0 と参加しました。

結果は 35642 点・7 位で、本選に行くことができました。わいわい 🙌

スコア

この記事では、事前準備や本番中に入れた改善について紹介します。 なお、今回はコミットごとのベンチのスコアをほとんどメモしておらず、途中のスコアは概算となる点にご注意ください。

GitHubはこちらです。 masterがバグることが何回かあり、コミットやPR単位で実装を見てもFAILするコードになっている場合があるので注意してください。 (主に僕の実装)

続きを読む

protocの代わりにBuf CLIを使ってスキーマ駆動開発の体験を向上させる

5 min read | #開発 #Protocol Buffers #gRPC

こんにちは、@p1assです。

この記事では、Protocol Buffers に関連した様々なコマンドを実行できる Buf CLI を紹介します。 Buf CLI は、protoc とは異なり、Formatter や Linter、Breaking Change Detector、依存パッケージ管理など、Protocol Buffers を使う上で便利なコマンドが用意されています。 Protocol Buffers を使いたいけど CI のセットアップ等が面倒な人におすすめです。

Bufのロゴ Buf のロゴ(公式サイトより引用)

続きを読む

SPA で役立ちそうな OAuth 2.0 for Browser-Based Apps を読んだ

11 min read | #開発 #OAuth #SPA

こんにちは、@p1assです。

GW 中に SPA で OAuth を使うときのプラクティスについて調べていたところ、OAuth2.0 for Browser-Based Apps という RFC の Internet-Draft を見つけました。

一通り読んでみたところ、現時点でのベストプラクティスが良い感じにまとまっていたので、興味深かったところを抜粋して紹介します。

続きを読む