サブドメインのNS委譲 — 別AWSアカウントにDNS管理を移す最小コスト設計
AWSアカウント分離でstaging環境を別アカウントに移す際、サブドメイン(例: stg.example.com)のDNS管理をどう扱うかで設計の複雑さが大きく変わる。 問題: 親ゾーンが本番アカウントにある example.com のRoute53ホステッドゾーンが本番アカウントに存在する場合、staging用のDNSレコードを追加するたびに本番アカウントを操作することになる。 N...
AWSアカウント分離でstaging環境を別アカウントに移す際、サブドメイン(例: stg.example.com)のDNS管理をどう扱うかで設計の複雑さが大きく変わる。 問題: 親ゾーンが本番アカウントにある example.com のRoute53ホステッドゾーンが本番アカウントに存在する場合、staging用のDNSレコードを追加するたびに本番アカウントを操作することになる。 N...
TL;DR Homebrew で個別にインストールした pyenv, rbenv, nodenv, goenv, tfenv を anyenv に統合する。シェル設定がスッキリし、brew upgrade による依存関係破壊(expat 問題など)も回避できる。 背景: なぜ anyenv に移行するのか Homebrew の brew upgrade で Python が壊れた。原因...
現象 CloudWatch Logs のログ配信チェックで、nginx の access.log が数日間 0 bytes のままだった。実際にはアクセスがあるのにログが記録されていない状態。 調査 lsof で nginx のファイルディスクリプタを確認すると、access.log ではなくローテート済みの access.log.1 を掴んでいた。 $ sudo lsof -p $...
「エンジニアみんなでスカウトメール打ちましょう」をやって、成果ゼロだった経験がある。なぜ失敗したのか、構造的に整理する。 スカウトを打っても返信が来ない理由 候補者の行動を考えると明確になる。 スカウトが届く 「どんな会社だろう」と調べる テックブログもない、エンジニアの発信もない、中が見えない 「よく分からないから返信しない」 スカウトの数を増やしても、着地先(...
現象 apt update 実行時に以下のようなエラーが出る。 W: GPG error: https://dl.yarnpkg.com/debian stable InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY ...
TL;DR brew upgrade で Python 3.14 に上がった後、aws コマンドが Symbol not found: _XML_SetAllocTrackerActivationThreshold で死ぬ brew reinstall --build-from-source python@3.14 でソースビルドすれば直る 再発防止に brew pin py...
staging と production で同じ VPC CIDR(例: 10.0.0.0/16)を使っていると、普段は問題なくても将来的にハマるポイントがある。 同一 CIDR で起きる問題 VPC Peering / Transit Gateway が張れない — AWS は重複 CIDR 同士の接続を拒否する VPN 接続時の混乱 — ローカルから両環境に同時接続すると ...
Claude Code はプロジェクトの指示書として CLAUDE.md を読み込むが、配置場所によってスコープと優先順位が異なる。 配置場所一覧 優先度 ファイル スコープ Git管理 1(最高) .claude/CLAUDE.local.md ローカル...
ElastiCache Redis のパッチ(service update)適用時にどの程度のダウンタイムが発生するのか、公式ドキュメントと実測結果をまとめる。 結論 Redis 5.0.6 以降 + Multi-AZ + レプリカありの構成では、計画されたパッチ適用時に書き込み中断は発生しない。これは公式ドキュメントに明記されている。 公式ドキュメントの記載 Minimizing ...
背景 verify-ai の UI を bdiff に寄せる作業をしていた。テストは414件全パス、実装も完了した。しかしブラウザで確認すると、入力フォームの Source と Target が縦に並んだまま。さじを投げた。 なぜそうなったのか、何をすべきだったのかを振り返る。 何が起きていたか 層 状態 ...
GitHub Profile READMEとは GitHubのプロフィールページ(github.com/ユーザー名)にカスタムREADMEを表示できる機能。 自己紹介、技術スタック、リポジトリの紹介などを自由にMarkdownで書ける。 作成手順 1. 自分のユーザー名と同名のリポジトリを作成 リポジトリ名: <ユーザー名>/<ユーザー名> 例: reng...
接続プールとは DB接続をあらかじめ一定数作成しておき、リクエストごとに「借りて返す」仕組み。 Railsがデフォルトで採用している方式。 # Rails database.yml production: pool: 5 checkout_timeout: 5 比較 接続プール(Rails等) リクエストごと生成・破...
TL;DR Neovim + LazyVim でファイルツリー・タブ・LSP・ファジー検索が最初から揃う neo-tree をカスタマイズすると、ツリーでカーソル移動するだけでプレビュー表示される VS Code 的な体験が得られる micro や helix も試したが、プロジェクト単位のコード閲覧には Neovim が一番完成度が高い 背景 ターミナルで VS Co...
TL;DR Target Tracking の複数ポリシーは scale-in が AND 動作(全ポリシーが合意した時のみ縮退) Simple Scaling の複数ポリシーは scale-in が 独立発火(各アラームが個別に scale-in を実行) CPU と Passenger メトリクスを Simple Scaling で併用した結果、Passenger で s...
概要 本番サーバの環境変数ファイルに LD_LIBRARY_PATH と PKG_CONFIG_PATH が追加されているのを見つけて違和感を覚えた。これらは本来、本番実行環境に書くべきものではない。記録としてまとめる。 発端 リポジトリで管理されている environment.repo と、実サーバ上の environment.server を diff したところ、サーバ側にだけ以...