MCPサーバーのレート制限とコスト管理|Lambda実行回数をどう制御しているか
MCP(Model Context Protocol)サーバーを Lambda で動かすと、エージェントがツールを連続呼び出しするたびに関数が起動します。人間が叩く REST API と違い、「試しに 10 回」「エラーだとも ...
Thousand APIのAPIキー認証をどう設計したか|ハッシュ化・有効期限・失効処理
MCP や SaaS の API を公開すると、クライアントは x-api-key のような共有シークレットでリクエストを送ります。キーを DynamoDB に平文のまま保存すると、DB 漏えい時に全キーが使えなくなります。失 ...
【MySQL】トランザクションの分離レベルを理解する|READ COMMITTEDとREPEATABLE READの違い
同じトランザクション内で SELECT を2回打ったとき、結果が変わらないことを期待していませんか。MySQL の InnoDB では、トランザクション分離レベルによって、その期待が満たされるかどうかが変わります。
【MySQL】N+1問題の検出と解決方法|Laravel Eloquentでの実例とEXPLAINでの確認
一覧画面が遅い、リクエストあたりの SQL が何十本もある、といった症状の裏に N+1 問題 が隠れていることがあります。Laravel の Eloquent では、リレーションをプロパティとして触ると、そのタイミングで SQ ...
【AWS】RDS(MySQL)のバックアップとリストア戦略|スナップショット・自動バックアップの実務設計
RDS for MySQL を本番で動かしていると、「バックアップは取っているつもり」でも、いざ障害や誤削除が起きたときに次の判断で止まりがちです。
自動バックアップと手動スナップショット、どちらを使うべきか【AWS】CloudWatch Logsで本番障害を追う|ログクエリ(Logs Insights)の実践例
本番で障害が出たとき、まず CloudWatch Logs のコンソールでログストリームを開き、エラー文字列を目で追っていませんか。ログ量が多いとスクロールが追いつかず、「いつから増えたか」「どのリクエスト ID か」を掴むま ...
【PHP】型宣言とNull許容型の書き方|strict_typesと実務での落とし穴
PHP の関数やメソッドに型を付けると、想定外の値を実行時に検出しやすくなります。一方でデフォルトではスカラー型が暗黙変換され、declare(strict_types=1) の有無で同じ呼び出しでも結果が変わります。本記事では型宣言 ...
【PHP】Enumの使い方|PHP 8.1の新機能とLaravelでの実践的な活用法
PHP 8.1 で導入された enum(列挙型)は、有限の選択肢を型として表現するための仕組みです。本記事では enum の基本から Laravel でのキャスト・バリデーションまでを整理します。コード例は PHP 8.1 以降、La ...
【Laravel】Middlewareの自作方法|認証・ロギング・APIキー検証の実装パターン
Laravel のルート処理には、認証チェックやログ出力、API キー検証など、多くの HTTP リクエストで共通する処理があります。これらをコントローラやトレイトに散らすと重複が増え、適用順の取り違えも起きやすくなります。ミ ...
【Laravel】Form Requestによるバリデーション設計|authorize・rules・カスタムエラーメッセージ
Laravel のコントローラに $request->validate() を直接書くと、ルールが増えるほどメソッドが長くなります。権限チェックと入力検証も混ざりやすくなります。Form Request は、認可(authori ...