GCP

GCPについての覚え書き

インフラストラクチャ

概要 Google Cloud認定アソシエイトクラウドエンジニアの試験に向けた勉強をしている際の雑多な覚え書き。 考え方 責任共有モデル 最小権限の原則 組織全体でガバナンスを発揮する 権限の分譲 ステートレスなアプリケーションとイミュータブルなインフラ 自動化によるトイルの削減 スケーラブル・高可用性・堅牢性 モニタリングと自動的な通知 cf. https://blog.g-gen.co.j...

GCP

Google Cloud認定アソシエイトクラウドエンジニアを受験した

インフラストラクチャ

概要 Google Cloud認定アソシエイトクラウドエンジニアを受験して合格したので、再受験するときや別の試験を受けるときのために勉強した過程を振り返っておく。 前提 ソフトウェアエンジニア7~8年目くらい。 GCPの経験は2年くらいあるかな・・どちらかというとAWSのほうが触っている感じ。 モチベーション 業務でAWSとGCPの両方を触る機会があり、AWSの方はアソシエイトレベルの認定を取得し...

GCP

Cloud Functionsを使ってSlack AppのSlash Commandを実装

アプリケーション

概要 Cloud Functionsを使ってSlack AppのSlash Commandを実装する。 今回作ったボイラープレートはこちら。 go-slack-app-on-cloud-functions-boilerplate Slash Commandの使えるSlack Appを作る方法は色々あるが、安く、簡単に、サーバーレスで作れるということでCloudFront Functionsを使って...

slack-bot Slack Golang GCP Cloud Functions

golang-migrateを使ってspannerのDBマイグレーションをする

アプリケーション

概要spannerのDBマイグレーションで、golang-migrateを使ったのでメモ。 使い方dockerで使う想定。dockerではなくバイナリで実行していたが、ホストマシンのopensslのバージョンに依存して動作しない可能性あるようなので、コンテナ実行が無難だと思う。 MIGRATE_VERSION='v4.14.1' docker run -v /migrations:/migrat...

GCP Golang Spanner

goのspannerクライアントのReadOnlyTransactionでハマった

アプリケーション

概要pkg.go.dev - cloud.google.com/go/spannerでReadOnlyTransactionを使ったときにハマったところについてメモ。 何が起きたか?数万件のデータを複数回のリクエストに分けて処理するようなバッチ処理のコードを書いていた。ReadOnlyTransactionを使った処理を以下のように書いていた。  for { // 〜略〜 //...

GCP Spanner