2つのWebサーバーで共用するキャッシュサーバーの建て方をかんたん解説。
前提
- 2台のEC2インスタンスは立てている
- ELBにEC2をひもづけ済み
手順
1.ElasticCacheでMemcachedサーバーを立てる
AWSのコンソール画面ヘッダーのServicesからからElasticCacheを選択し、以下のボタンをクリック。
キャッシュエンジン
Memcachedを選択し、Nextをクリック。
クラスタ構成の設定
いじるのはNodeTypeとClusterNameとNumberofNodesの3つ。
Cluster Name: 適当に。
NodeType: キャッシュサーバーの大きさ。わからなければとりあえずmicroで。
Number of Nodes: ノード数の指定。これを増やせば対象外性を向上させたり、パフォーマンス向上のためのスケールアウトを実行することが可能。
さらに設定
VPC Security Group(s): EC2と同じセキュリティグループを設定する。
※EC2のセキュリティグループで11211ポートを設定しておく。
以上で設定完了。
Configuration Endpointの項目をあとで使うのでメモっておく。
2.サーバーにMemcachedをインストール
以下の手順は2つのEC2インスタンス両方で行う。
Memcachedのインストール
root権限に変更
$ sudo su
インストール
# yum install memcached php-pecl-memcached
自動起動設定&起動
# chkconfig memcached on
# service memcached start
PHP設定の変更
PHPの設定ファイルと、Memcachedの設定ファイルそれぞれを下記のように設定する。
# vi /etc/php.ini
; session.save_handler = files // コメントアウト
; session.save_path = "/var/lib/php/session" // コメントアウト
# vi /etc/php.d/memcached.ini
session.save_handler = memcached // コメントアウトをはずす
session.save_path = hoge.xxxxxx.0001.xxxx1.cache.amazonaws.com:11211" // 追記
※session.save_pathの値はElasticCacheの管理画面のエンドポイントを記述する。
httpd再起動
# service httpd restart
以上で使えるはず。