PHPアプリケーションから ElastiCache Memcachedを使用する場合、AWSが提供している ElastiCache Cluster Clientをインストールする必要がある。(普通の php-pecl-memcached
を入れるとマルチ AZ な Memcachedに対応してなさそう)
AmazonLinux 2 & PHP-FPM 7.3 の場合は以下のような手順になる。
ElastiCache のメニューにある「ElastiCache クラスタークライント」から使用している PHPのバージョンに合ったクライアントをダウンロードする。
ダウンロードしたファイルを SCP などで EC2 にアップロードして展開、配置する。
すでに php-pecl-memcached
をインストールしてしまっている場合はアンインストールする。
sudo yum remove php-pecl-memcached
tar xf AmazonElastiCacheClusterClient-PHP73-64bit-libmemcached-1.0.18.tar.gz sudo mv amazon-elasticache-cluster-client.so /usr/lib64/php/modules echo"extension=amazon-elasticache-cluster-client.so"| sudo tee -a /etc/php.d/50-memcached.ini
PHP-FPM を再起動する。
sudo systemctl restart php-fpm
なお、ElastiCache Cluster Client は EC2 上でもダウンロード出来るのでブラウザで落としてくるの面倒だなぁ、という場合は EC2 上で作業してしまった方が早い。
wget 'https://elasticache-downloads.s3.amazonaws.com/ClusterClient/PHP-7.3/latest-64bit' tar xf latest-64bit sudo mv amazon-elasticache-cluster-client.so /usr/lib64/php/modules echo"extension=amazon-elasticache-cluster-client.so"| sudo tee -a /etc/php.d/50-memcached.ini sudo systemctl restart php-fpm