現職での技術的活動の振り返りと反省(自戒)

Posted 24. June 2024

Poem #Other

2024年6月30日に今の会社を退職し、翌7月1日から別の会社に入社することになった。

現職の在籍期間は大体3年弱ほどで、アーキテクチャを中心とした技術的な意思決定も色々してきた。新規構築から運用までやってきた中で感じたことや経験豊富なエンジニアからいただいたアドバイスなど、それらを含めて当時の意思決定の反省を自戒を込めてここで書いておく。 ...


READ MORE

Time to read 6 min

Terraformの配列を分割する

Posted 18. April 2024

Programming #Terraform

例えばremote stateとかから引っ張ってきた何かのリストがあったとして

hoge = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"]

それを10個ずつとかの配列に分割したい場合 ...


READ MORE

Time to read 1 min

Lambda(Golang)でイベントデータをいい感じにパースする

Posted 21. March 2024

Programming #Go #Lambda #AWS

Table of Contents

はじめに

Lambdaで色々なイベントソース(SQS, SNS, EventBridge etc.)からのデータをハンドリングする必要があり、各サービス固有の差分を吸収して欲しいデータを取得する処理を実装する機会があったのでメモしておきます。

ベースはこちらの記事を参考にしています。 ...


READ MORE

Time to read 3 min

EnvoyでgRPCのヘルスチェックをHTTP/2で公開する(GKE Ingress向け)

Posted 23. July 2023

Infrastructure #envoy #GKE #GCP #Kubernetes #gRPC

最近、GKE Ingressで立てたロードバランサーでgRPCサーバーを公開するようなことをやったのですが、思ったよりも面倒で大変だったので備忘録も兼ねて記事化しておこうと思います。

Table of Contents

背景

元々GKE上に構築したgRPCサーバーをgrpc-gatewayで公開していたのですが、それを直接公開することになりました(クライアント起因でHTTPにする必要があったが、その必要が無くなったため)。 ...


READ MORE

Time to read 5 min

特定Podのeventをリストアップするコマンド

Posted 30. March 2023

Infrastructure #Kubernetes #snippet

K8s podがdeleteされるときにReadiness probeが失敗する事象を調査していて、特定のpodのeventをリストアップする方法を探すのに少し手間取ったのでメモしておきます。

kubectl get events --sort-by .lastTimestamp --field-selector involvedObject.name={your-pod-name}

なお、ソートやフィルタリング条件を変えたい場合は、kubectl get events -o jsonでどんな構造でフィールド指定すれば良いか確認することができます。 ...


READ MORE

Time to read 1 min

NginxでOpenTelemetry(旧バージョンを含む)

Posted 26. March 2023

Observability #OpenTelemetry #Go #nginx

NginxでOpenTelemetryを使ってみたかったので色々調べてみました(仕事でも一部Nginxを置いているサーバーがあるというのもあり)。

instrumentationできることはもちろんですが、アクセスログの末尾にtrace idやspan idを渡せれば既存のアクセスログの出力方法はそのままで、DatadogのようなSaaS側でログとトレーシングを紐付けることが可能になるのでよりシームレスに移行することが可能になるかと思います。 ...


READ MORE

Time to read 6 min

OpenTelemetryとOpencensusを共存させる

Posted 12. February 2023

Observability #OpenTelemetry #OpenCensus #Tracing #APM #Go

最近Spanner周りのレイテンシーが気にあることがあり、とりあえずgRPCのTracerを入れてみたはいいものの、イマイチしっくり来る情報が取れませんでした。

もともとSpanner clientにはOpenCensusによるトレーシングがすでに実装されていますが、アプリのトレーシングで使用しているFWがOpenTelemetryだったので仕方なくotelgrpcを使用してお茶を濁していたのですが、特にSpanner固有のイベント(トランザクションのリトライとか)を確認できればもう少し深い洞察ができそうだなと思い、共存する方法を調査しました。 ...


READ MORE

Time to read 2 min