AMIMOTO で redis object cache を使用する

AMIMOTO で redis object cache を使用するには、以下の3ステップの作業が必要となります。

  1. redis をインストールする
  2. WordPress プラグイン Redis Object Cache をインストールして有効化する
  3. Redis Object Cache に関する不具合を修復するプラグインをインストールする

では、順番にやり方を説明しましょう。

redis をインストールする

これは、それほど難しくありません。

まず、SSH接続してから /opt/local/amimoto.json を編集してください。

以下のコマンドで対応可能です。

$ TMP_JSON=$(mktemp)
$ jq -s '.[0] * .[1]' <(echo '{"redis":true}') /opt/local/amimoto.json > ${TMP_JSON}
$ sudo mv -f ${TMP_JSON} /opt/local/amimoto.json

次に以下のコマンドを実行します。

$ sudo /opt/local/provision

 
Redis が起動しているかどうかは、以下のコマンドで確認できます。

$ sudo service redis status

Redis Object Cache をインストールして有効化する

まず、wp-config.php に以下のコードを追加しておきます。

/** Redis Cache Settings **/
define('WP_REDIS_HOST', '127.0.0.1');
define('WP_REDIS_PORT', 6379);
define('WP_REDIS_MAXTTL', 3600);
define('WP_CACHE_KEY_SALT', DB_NAME);

設定する各定数の意味は、プラグインの説明読んでください。

wp-cli 使ってやるなら、以下の通り

$ wp plugin install --activate redis-cache
$ wp redis enable

Redis Object Cache に関する不具合を修復するプラグインをインストールする

ファイル redis-cache-fix.php を取ってきて、wp-content/mu-plugins/ ディレクトリに保存してください。
ターミナルでやるなら以下の通り

$ wget https://gist.githubusercontent.com/wokamoto/5c0c8a19a6dbd08e4121aa05d238543c/raw/464d418bcc7f9686852cdc3c0db6d6316278d6ed/redis-cache-fix.php
$ mkdir /path/to/wordpress/wp-content/mu-plugins
$ mv redis-cache-fix.php /path/to/wordpress/wp-content/mu-plugins/

こんな感じで良いかなと

[AWS] AWS Certificate Manager が Tokyo リージョンにやってきた!

AWS Certificate Manager が Tokyo リージョンでも使えるようになりました。
AWS Certificate Manager now available in more regions

以前、SES を使って ACM の承認メール受信する方法を書いてますので、それ参考にしてくださいねー。

S3 で SES 受信するためのバケットポリシーサンプル

[AWS] mailq を監視して CloudWatch のカスタムメトリクスに送信

Web サーバにバックドア仕掛けられて spam 送信の踏み台にされていないかを確認するために mailq の値をカスタムメトリクスに定期的に送信してCloudWatch で検出しておくと、ある日突然 AWS から「Your Amazon EC2 Abuse Report」ってメールが来ることが無くなると思うよ。

#!/bin/sh
# EC2 のインスタンス ID を取得
instanceid=$(curl -s http://169.254.169.254/latest/meta-data/instance-id)

# region を取得
az=$(curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone)
_length=$(echo $((${#az} - 1)))
region=$(echo ${az} | cut -c 1-${_length})

namespace="System/Linux"

# mailq
mailq=$(mailq | grep 'Total requests' | awk '{print $3}')
aws cloudwatch put-metric-data \
 --region ${region} \
 --namespace ${namespace} \
 --dimensions InstanceId=${instanceid} \
 --unit Count \
 --metric-name "MailQueu" \
 --value "$mailq"

[Nginx] nginx: [emerg] could not build the server_names_hash…

Nginx でどんどこバーチャルホストを追加していると、以下の様なエラーが表示されて設定ファイルの再読み込みができなくなることがあります。

nginx: [emerg] could not build the server_names_hash, you should increase server_names_hash_bucket_size: 64

まぁ、言ってるとおりですね。
server_names_hash_bucket が足りなくなってるので増やせよっつってるので、/etc/nginx/nginx.conf に以下を追加しましょう。
網元使ってる場合は /etc/nginx/nginx.conf が再起動時に元に戻ってしまうので /etc/nginx/conf.d/00_server_name_hash_settings.conf という名前で、以下の内容のファイルを作ってやってください。