2026-04-01から1ヶ月間の記事一覧
MCPサーバー(GA4、Search Console)の認証が7日おきに壊れる、という問題に遭遇しました。 エラーは invalid_grant。原因を調べていくと、GCPのOAuth同意画面が「テストモード」のままになっていたせいでした。 何が起きたか MCP連携で使っているGA4とSearc…
ls -ltr を打ったら怒られた。インフラエンジニアなら条件反射で打つあのコマンドが、eza に乗り換えた途端に動かなくなった。 何が起きたか dotfiles に alias ls='eza' を書いて、eza に切り替えた。ls、ls -l、ls -la あたりは普通に動くのでしばらく問題…
ECSローリングアップデートの minimumHealthyPercent と maximumPercent、「タスク数の上下限でしょ」って思ってたんですけど、実際は旧タスクと新タスクのどっちが先に動くかを決めてるパラメータなんですよね。 この2つの組み合わせを正確に理解しておかな…
CUR(Cost and Usage Report)を Athena でクエリしていて、スキャン量が思ったより多くてびっくりした。 調べてたら、Glue ETL で事前に集計しておくと劇的にデータ量を削減できるとわかったのでまとめておく。 CUR の生データがどれだけ大きいか CUR を Ho…
はてなブログの記事って、ブラウザのエディタで書いてそのまま公開、みたいな運用をずっとやってたんですよね。 ローカルにバックアップがないので、なんとなく不安があった。 調べてたら blogsync というツールを見つけて、「あ、これで解決するな」となり…
AWS の内部 AI ツール「Kiro」が本番環境を自律的に削除・再構築して13時間の障害を起こした、という話を調べてたんですよね。 最初はただの「AI が暴走した」系のニュースだと思って流し見してたんですが、掘り下げると「AIエージェントに権限を渡すとはど…
Kafka Connect + Debezium で CDC を構築する — Docker Compose で一発起動 CDC(Change Data Capture)をKafkaで実現するときのデファクトスタンダードがDebeziumです。DBの変更ログをリアルタイムにKafkaへ流せるので、マイクロサービス間のデータ連携やデ…
Secrets Managerの値を変えたのにlambrollでデプロイしたら古い値のままだった。原因はtfstateが terraform plan では更新されないこと。 terraform apply -target=data.xxx でdata sourceだけを狙い撃ちでapplyすれば、tfstateが最新値に更新されます。 何…
Amazon MSK(Kafka)で久しぶりにProducerを接続したら coordinator load in progress が出た。結論から言うと、短時間で収まるなら対応不要。 コーディネーターがメタデータをロード中に返すretriableな一時応答です。 何が起きたか 久しぶりにMSKのクラス…
Kafka Producerのチューニングパラメータをシーケンス図で理解する Kafka Producerのパラメータは数十個あるんですが、send() からACK受信までの内部シーケンスに沿って整理すると、どのパラメータがどの段階に効くかが一気に見えてきます。パラメータ一覧を…
Kafkaのメッセージサイズ上限を上げたのに通らない原因 — 3箇所の制限と設定方法 Kafkaで大きいメッセージを送ろうとして MessageSizeTooLargeException が出たとき、設定を上げる場所はProducer・Broker・Topicの3箇所あります。どれか1つでも漏れると通り…
ECSタスク定義をTerraformから切り離す3つの方法(ignore_changes / Provider 5.x / ecspresso) ECSのタスク定義をTerraformから切り離してCI/CDに移管するには、ignore_changes、Provider 5.xのtrack_latest、ecspressoの3つの方法があります。どれを選ぶ…
ECSネイティブBlue/Greenで同一ListenerRuleにカナリア用TGを同居できない理由と回避策 ECSネイティブBlue/Greenデプロイは、advanced_configuration で指定した ListenerRule の forward config を排他的に管理します。同一 ListenerRule 上にカナリア用の3…
CannotPullContainerError: ECRイメージpull失敗はS3へのegress許可が必要 VPC Endpoint構成(NATなし)かつSGのegressを絞っているECS Fargateで CannotPullContainerError が出たら、SGのegressにS3 prefix listが抜けている可能性があります。 ECRのイメ…
はてなブログのAtomPub APIで予約投稿の時間だけ変えたら、カテゴリが1つに減って本文も古い版に巻き戻った。原因はPUTが「部分更新」ではなく「全体置換」だから。安全に時間だけ変えるには、GETで最新XMLを取得→<updated>だけ差し替え→PUTする。 何が起きたか はて</updated>…
CLIコマンドに名前をつけるとき、動詞から始めると直感的に見える。でも Docker や Azure CLI の設計はドメイン-操作の順になっている。この判断軸をまとめておきます。 「動詞から始めたい」衝動に気づいた スキル(CLIから呼べる小さなコマンド)に名前を…
Claude Code、日常的に使っています。 でもQiitaで「知らないと損する隠しコマンド・時短術 20選」を読んで、知らなかった機能がたくさんあって少し焦りました。 qiita.com 「知らないコマンドばっかりだった」というコメントが並んでいて、自分だけじゃない…
slidev export --format png でスライドを画像にしたら、<v-clicks> で段階表示にしていた要素が全部表示された状態で出力された。--with-clicks オプションを付ければ、各クリックステップが個別の画像として出力されます。 何を調べたか Slidevでプレゼンを作って、</v-clicks>…
Backstageで yarn start したらGitHub連携でエラーが出た。原因は direnv のフックが発火しておらず GITHUB_TOKEN が渡っていなかったこと。対処法は起動コマンドで明示的に export するか direnv exec を使う。 何が起きたか Backstageを yarn start で起動…
lambrollで PackageType: Image のLambda関数をデプロイする場合、ディレクトリにはfunction.jsonだけ置けばいい。 コードはECR上のDockerイメージに含まれているので、lambrollはローカルコードをzip化してアップロードする必要がなく、Code.ImageUri でイ…
zip -r でLambdaのデプロイパッケージを作ると、ソースから削除したファイルがzip内に残り続ける。原因は zip -r が既存アーカイブに対して「追加・上書き」する仕様。 対策は rm -f してから zip -r するか、-FS オプションを使う。 何が起きたか Lambdaの…
Lambda関数にProvisioned Concurrencyを設定しようとしたら UnreservedConcurrentExecution below its minimum value of [10] エラーで弾かれた。調べたところ、自分の環境ではApplied quotaが10になっていた。 新規アカウントではreduced quotaが適用される…
AWSのマルチアカウント環境を一発で構築できるLanding Zone Accelerator(LZA)。35以上のAWSサービスを横断管理する強力なソリューションですが、初回デプロイは「多種多様なエラーと戦い約6時間」という報告があります。 公式目安は最小構成で80〜110分程…
結論を先に書きます。防御層はリソース制約のある実務環境では、独立性が担保できるなら2から始めるのが現実的です。1では単一障害点になり、3以上では管理コストが安全性を食い潰す。 「防御は多いほど安全」は罠 CrowdStrikeの障害(2024年7月)を調べてた…