AWS

EC2とElasticacheのセッション連携

AWS

構成

  • ロードバランサがあり、配下にEC2が複数台ある
  • EC2のセッションはElasticacheに保存する

 

関連

ElastiCache redisの運用 重要な初期設定

 

 

 

EC2側設定

 

Apache, PHPのインストール

# yum install httpd php php-devel

 

Redisインストール

# amazon-linux-extras install redis4.0

 

php-pecl-redisのインストール

# yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# yum install --enablerepo=epel php-pecl-redis

 

タイムゾーン設定

 

# vi /etc/php.ini

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
;date.timezone =
date.timezone = "Asia/Tokyo" ←追加して下さい

 

 

PHP セッション管理をRedis(AWS ElastiCache)に任せます

# vi /etc/httpd/conf.d/php.conf
 
(略)
 
#php_value session.save_handler "files"
#php_value session.save_path    "/var/lib/php/session"
php_value session.save_handler  "redis"
php_value session.save_path  "tcp://プライマリエンドポイント:6379"


具体例)
#php_value session.save_handler "files"
#php_value session.save_path    "/var/lib/php/session"
php_value session.save_handler  "redis"
php_value session.save_path  "tcp://test-redis.pgyqgq.ng.0001.apne1.cache.amazonaws.com:6379"

 

WEBサーバを再起動して反映させて下さい。

# systemctl restart httpd

 

 

WEBサーバとElastiCacheの疎通確認

 

アクセス出来るか確認します。

# redis-cli -h test-redis.pgyqgq.ng.0001.apne1.cache.amazonaws.com -p 6379

※アクセス出来ない場合はセキュリティグループの設定が怪しいです、
ご確認下さい。

 

アクセス出来たらexitして下さい。

test-redis.pgyqgq.ng.0001.apne1.cache.amazonaws.com:6379> exit

 

動作テスト

# vi /var/www/html/sess.php


<?php
session_start();


if($_SESSION['count'] == "")
{
        $_SESSION['count'] = 1;
        echo $_SESSION['count'];
}
else
{
        echo $_SESSION['count']++;
}

echo "<hr/>";
echo gethostname();

 

http://ロードバランサIP/sess.php

 

# redis-cli -h test-redis.pgyqgq.ng.0001.apne1.cache.amazonaws.com -p 6379

 

URLにアクセス毎にセッションが更新されることを確認出来ます。
http://ロードバランサIP/sess.php

 

http://ロードバランサIP/sess.php


1533794959.273652 [0 172.31.26.240:56748] "get" "PHPREDIS_SESSION:0c830repjnj23kvoub11m10mn1"
1533794959.274091 [0 172.31.26.240:56748] "setex" "PHPREDIS_SESSION:0c830repjnj23kvoub11m10mn1" "1440" "count|i:41;"

※動作状況を確認できます。

Amazonおすすめ

iPad 9世代 2021年最新作

iPad 9世代出たから買い替え。安いぞ!🐱 初めてならiPad。Kindleを外で見るならiPad mini。ほとんどの人には通常のiPadをおすすめします><

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)