AWSのELBが、Laravelのセッションログに大量の履歴を残すことの対策

ELBを使っていると、EC2の storage/sessions にELBのヘルスチェックが残したセッションファイルが大量に残る。

 

1分に4回 × セッション持続時間。

仮に24時間にしたら、4 × 60 × 24 = 5760ファイル。

これは無駄。

 

というわけで、以下で対策ができた。

 

Route::get('/healthcheck', function() {
 config()->set('session.driver', 'array');
 return response('Hello World', 200)
  ->header('Content-Type', 'text/plain');
});

mysql - Laravel Sessions database table filling up with user_agent ELB-HealthChecker/2.0 health checks - Stack Overflow

 

 

セッションドライバ(driver)はリクエスト毎のセッションデータをどこに保存するかを決めます。

array - セッションはPHPの配列として保存されるだけで、リクエスト間で継続しません。
Tip!! セッションデータを持続させないため、arrayドライバは通常テスト時に使用します。

HTTPセッション 7.x Laravel

php - Laravel and Redis: session driver 'array' - Stack Overflow