年末年始の長期連休中にLaravelアプリケーションで障害を起こさないための事前点検項目を実案件の経験をもとに解説。ログ容量、SSL証明書、バッチ処理など見落としがちなポイントを網羅します。
年末年始にシステム障害を起こしたくない、でも何をチェックすべき?
こんな悩みありませんか?
- 「年末年始の連休中にサイトが止まったらどうしよう」
- 「過去に長期連休でログがパンクして障害になった」
- 「何をチェックすればいいのかわからない」
- 「連休明けに慌てて対応するのは避けたい」
横浜でWeb制作を20年以上続けてきた私たちFivenine Designでも、年末年始は特に緊張する時期です。なぜなら、普段は気づかない問題が長期連休で一気に表面化するからです。
今回は、実際のクライアント案件で経験した障害事例をもとに、Laravel アプリケーションの年末年始運用で絶対にチェックすべき項目をご紹介します。
実案件で起きた年末年始の障害事例
あるクライアントのECサイトで、1月4日の仕事始めに「サイトが重い」という連絡がありました。調査すると、年末年始の9日間でログファイルが10GBを超え、ディスク容量を圧迫していたのです。
普段なら週1回のログローテーションで問題なかったのですが、連休中はメンテナンスが止まり、アクセスログが蓄積し続けていました。
この経験から、「普段は大丈夫」が連休中は通用しないことを痛感し、今回ご紹介するチェックリストを作成しました。
Laravel年末年始運用 7つの必須チェック項目
1. ログファイルの容量とローテーション設定
最も見落としがちで、最も影響の大きい項目です。
# 現在のログ容量確認
du -sh storage/logs/
df -h # ディスク使用量全体を確認
# 大きなログファイルの特定
find storage/logs/ -name "*.log" -size +100M -ls
チェックポイント:
storage/logs/laravel.logが10MB以上になっていないか- ログローテーションが正しく動作しているか
- 連休期間(9日間)×通常のログ増加量で容量を計算
// config/logging.php でファイルサイズ制限を設定
'daily' => [
'driver' => 'daily',
'path' => storage_path('logs/laravel.log'),
'level' => env('LOG_LEVEL', 'debug'),
'days' => 14,
'replace_placeholders' => true,
],
2. SSL証明書の有効期限
年末年始中に証明書が切れると、サイトアクセス不可になります。
# SSL証明書の有効期限確認
echo | openssl s_client -servername yourdomain.com -connect yourdomain.com:443 2>/dev/null | openssl x509 -noout -dates
有効期限が1月中旬以前の場合は、年内に更新を完了させましょう。
3. 定期実行バッチの動作確認
cron で実行される処理が連休中も正常動作するかチェックします。
# 現在のcron設定確認
crontab -l
# Laravelスケジューラーの動作テスト
php artisan schedule:list
php artisan schedule:test
特に以下の処理は要注意:
- メール送信バッチ(送信制限に引っかからないか)
- データベースクリーンアップ処理
- バックアップ処理
4. データベース接続とパフォーマンス
連休明けの大量アクセスに備えて、データベースの状態をチェックします。
# データベース接続テスト
php artisan tinker
>>> DB::select('SELECT 1 as test');
# スロークエリの確認
php artisan db:monitor --databases=mysql
よくある問題:
- コネクションプールの枯渇
- インデックスが効いていないクエリ
- 長期間実行されていないメンテナンス処理
5. キャッシュとセッションの確認
Redis や Memcached が正常動作しているか確認します。
// キャッシュ動作テスト
php artisan tinker
>>> Cache::put('test_key', 'test_value', 60);
>>> Cache::get('test_key');
// セッション動作テスト
>>> Session::put('test_session', 'test_value');
>>> Session::get('test_session');
6. 外部API連携の確認
決済システムや外部サービスとの連携が正常か確認します。
// 外部API接続テスト例
try {
$response = Http::timeout(10)->get('https://api.external-service.com/health');
if ($response->successful()) {
echo "API connection OK\n";
}
} catch (Exception $e) {
echo "API connection failed: " . $e->getMessage() . "\n";
}
特に年末年始は外部サービス側もメンテナンスが入ることがあるため、代替処理の確認も重要です。
7. 監視とアラートの設定
連休中にすぐ対応できない場合でも、問題を早期発見できる仕組みを整えます。
// 簡易監視スクリプト例
// app/Console/Commands/HealthCheck.php
class HealthCheck extends Command
{
public function handle()
{
// データベース接続確認
try {
DB::select('SELECT 1');
$this->info('Database: OK');
} catch (Exception $e) {
// Slack通知など
$this->error('Database: Failed');
}
// ディスク容量確認
$diskUsage = disk_free_space('/') / disk_total_space('/') * 100;
if ($diskUsage > 90) {
$this->error('Disk usage: ' . $diskUsage . '%');
}
}
}
失敗しやすいポイントと対策
よくある失敗1: 「テストはしたけど本番環境で確認してない」
**ステージング環境でのテストだけでなく、必ず本番環境でも動作確認を行いましょう。**設定ファイルの差分や権限の問題で、本番環境だけで問題が起きることがあります。
よくある失敗2: 「連休中のアクセス増加を想定していない」
ECサイトなどは年末年始にアクセスが普段の2-3倍になることがあります。負荷テストまでは難しくても、過去の同時期のアクセスログを確認して、リソース不足にならないかチェックしましょう。
よくある失敗3: 「障害時の連絡体制が曖昧」
技術的な準備だけでなく、万が一の際の連絡体制や対応手順を関係者と共有しておくことが重要です。
年末年始点検の実施タイミング
12月20日頃には一通りの点検を完了させることをおすすめします。問題が見つかった場合の修正時間を考慮すると、遅くとも12月25日までには対応を完了させたいところです。
まとめ:安心して年末年始を迎えるために
年末年始の障害を防ぐためには、「普段は大丈夫」という感覚を一度リセットして、長期間放置される前提でシステムをチェックすることが重要です。
今すぐやるべきこと:
- 現在のログファイル容量をチェック
- SSL証明書の有効期限を確認
- cron処理の動作状況を確認
これらの基本的なチェックだけでも、大半の障害は防げます。
「チェックはしたいけど、どこから手をつければいいかわからない」「技術的な部分で不安がある」という場合は、お気軽にFivenine Designまでご相談ください。20年以上の運用経験をもとに、安心して年末年始を迎えられるサポートをご提供いたします。