目的
AWS環境でPHPアプリケーション用のsessionを ElastiCacheを利用する
目次
手順の概要
- PhpRedisのインストール
- php.iniの編集
- 保持されたsessionの確認
実行環境
- ElastiCache (Redis)
- AmazonLinux (2016.09を利用)
- PHP7 (7.0.16を利用)
- PHP-FPM (7.0.16を利用)
- PhpRedis (3.1.1.RC1を利用)
3.1.1無印を利用した事でセッション復元に問題が起きておりましたが、2017/05/29 現在 3.1.2 が出ているようです。
概要図

手順
PhpRedisのインストール
下記に記載に従って、gitにて取得後のディレクトリでコマンドを実行
https://github.com/phpredis/phpredis#installation
php.iniの編集
下記に記載に従って、PHP Session handler設定を追記・変更
https://github.com/phpredis/phpredis#php-session-handler
作成された ElastiCacheのエンドポイントを記載します、SecurityGroupを空けておく事を忘れずに。
(Multi-AZ with Auto-Failoverにて冗長化したいので、cache.m3.medium 以上のサイズを選択する必要があります)
保持されたsessionの確認
sessionを利用しているアプリケーションを動作させ、正常に動作していれば、下記のように redis-cli から sessionが生成されている事を確認できます。
redis-cli を起動
リアルタイムにsession状態の確認
セッション保持数の確認
セッション内容の確認
セッション有効期限の確認
コマンドを打つ度、TTL値がどんどん減っていく事を確認できます。
当初こちらの構成を組んだ際にSessionの自動削除がされるか不安でしたが、file / DBに持たせた時と同様
下記設定により自動的に削除されていく事を確認できました。
php.ini
まとめ
Amazon ElastiCacheを利用する事で、高負荷時のファイルI/OやDB負荷を少しでも減らす対策を簡単に行う事が出来ました。
投稿者プロフィール
-
Japan AWS Ambassadors 2023, 2024
開発会社での ASP型WEBサービス企画 / 開発 / サーバ運用 を経て
2010年よりスカイアーチネットワークスに在籍しております
機械化/効率化/システム構築を軸に人に喜んで頂ける物作りが大好きです。
最新の投稿
Amazon Q2025年6月11日Amazon Q Developer CLI でMCPサーバ起動に失敗したのでトラブルシュートしてもらった
AWS2025年2月25日WebスクレイピングにAmazon CloudWatch Synthetics CanaryとBedrockを利用する
AWS re:Invent 20242025年1月1日AWS re:Invent 2024から読み解く、次世代クラウドコンピューティングの潮流
AWS re:Invent 20242024年12月7日Bedrock Flows と Amazon Q Developer Agentの新機能で生成AIアプリを短時間で作成する