【ISUCON14】NginxアクセスログのLTSV化とalp解析で「真のボトルネック」を特定する

ISUCONなどのWebアプリケーション性能改善において、最初につまずきやすいのが「ボトルネックをどう見つけるか」という課題。 推測でコードを直してもスコアは伸びない。Webサーバー(Nginx)のアクセスログをLTSV形式で出力し、ログ解析ツール alp で集計することで、システム全体で最も時間を消費しているエンドポイントをデータに基づいて特定する。 TL;DR:この記事のまとめ 要するに、Ng […]

【ISUCON14】全件集計をCTEで「事前絞り込み」してSQLを33倍高速化した話

ISUCON14のチューニングにおいて、MySQLスロークエリログ(pt-query-digest)で最も重かったクエリを、共通テーブル式(CTE: WITH 句)による事前絞り込みと複合インデックス追加によって改善。 対象SQLの実行時間を 512ms から 15.4ms(約33倍高速化) に短縮し、ベンチマークスコアを 1,323点から1,995点 へ引き上げた技術的な仕組みと手順。 TL;D […]

AWSを触るのが怖いので、Terraformで「作って壊す」を体験してみた

AWSを学びたいものの、料金やリソースの消し忘れが怖く、なかなか手を動かせずにいた。そこで今回はTerraformを使い、空のS3バケットを作成して削除するまでを試した。 TL;DR:この記事でやること 要するに、Terraformを使って東京リージョンに空のS3バケットを1つ作る。AWS上に作成できたことを確認したら、terraform destroyで削除する。 今回はTerraformを体系 […]

エンジニア1周年。電験二種からWebへ転身した僕が、明日から100日100本ノックを始める理由

はじめに:2025年を振り返って 2025年12月31日、エンジニアとして丸1年を迎えました。 7年間の電気主任技術者生活を経てエンジニアへ転身し、必死に走り抜けた1年でした。Laravel、Next.js、Railsなど多くの技術に触れ、自分の手でサービスを形にする面白さを実感しています。 しかし同時に痛感しているのが「圧倒的なアウトプットの必要性」です。2年目は、ただコードを書くだけでなく「価 […]

【2025年10月05日】RDS の JST 化をすることで、個人開発の迷いを断つ

概要 目的:RDS の JST 化をすることで、個人開発の迷いを断つ 本日の学び:RDS は UTC ベースです。設定変更時に再起動します。 本文 RDS のタイムゾーンを JST に変更する手順 RDS のパラメータグループを作成し、time_zone を Asia/Tokyo に設定します パラメータグループを RDS インスタンスに適用し、インスタンスを再起動します RDS インスタンスのタ […]

【2025年10月4日】Laravel relation 学習

はじめに Laravel の hasMany や belongsTo などのリレーションの記述のうち、中間テーブルを使うときのことをまとめます。 本文 モデルのリレーションオブジェクトについて 中間テーブルの仕様 おわりに この記事では、Laravel のリレーションを活用して効率的なデータベース操作を実現する方法について解説しました。 参考 Laravel Documentation ̵ […]

laravel11でアプリを作成

ローカル環境でLaravelアプリの起動まで行いました。 Breezeのユーザー認証が手軽に導入できましたので、Laravel導入時に毎回使おうと思います。 今回は個人開発アプリを作る準備です。 インストール MySQLのユーザー作成 .envの設定 上のMySQLユーザー作成時に設定を合わせる 以下ユーザー認証の導入後にmigrateを行う ユーザー認証の導入 Breezeインストール npm […]

ララベルアプリ本番公開完全マニュアル

【1】前提条件 サーバーに以下がインストール済みであること nginx PHP 8.1以上 MySQL 5.7以上 or MariaDB Composer Node.js 16以上 certbot (Let's Encrypt) Laravelプロジェクトはgit管理されていること SSH秘密鍵でサーバーに接続できること DNS設定が済んでいること 【2】基本のデプロイ手順 2-1. G […]

配列データベース構造の検索テクニック

はじめに プログラミングでは、配列がデータベースのような構造(ハッシュの配列/連想配列の配列)になっていることがよくあります。このブログでは、そのような構造から特定の条件に一致するデータを効率的に検索・抽出する方法を、Ruby と PHP の両方で解説します。 直接フィルタリング まず、最もシンプルな方法として、配列から直接条件に一致するデータをフィルタリングする方法を見てみましょう。 Ruby […]

TIL2025-02-15-プログラミング基礎

Java の super(); 自動呼び出しが特殊なのかも これが普通だと思っていたけど、PHP, Ruby では違うっぽい 具体的に this はどこで決まる? 関数を変数に渡す(this が変わる!) 関数の実行時に決まる アロー関数のthisは? document.getElementById("btn").addEventListener("click&quo […]