ヤマムギ

growing hard days.

*

WordPress W3 Total Cache のDatabaseCacheをAmazon ElastiCacheのmemcachedに格納する

      2020/01/05


このブログのアーキテクチャは現在こちらです。

データベースは、Amazon Aurora Serverlessを使用しています。
アイドル状態が5分続けば停止するようにしています。
開発検証用の機能かもしれませんが、CloudFrontやElastiCacheを使うことで、コスト効率の向上につながらないか試してみます。

Memcached 用 Amazon ElastiCache を使用して WordPress を高速化するに習って、Database CacheをAmazon ElastiCacheのmemcachedに格納してみます。

セキュリティグループの作成

ElastiCace用のセキュリティグループをあらかじめ作成しました。
11211番ポートに対して、webサーバーからのトラフィックのみ許可するように、ソースはEC2が使用しているセキュリティグループIDを指定しました。

Amazon ElastiCacheの作成

サブネットグループの作成

ElastiCacheダッシュボードでサブネットグループを選択して作成します。
VPCとAZ、サブネットを選択します。
インターネットから直接アクセスする必要はないので、プライベートサブネットを選択しました。

Memcachedの作成

ElastiCacheダッシュボードで[作成]ボタンをクリックしました。

任意の名前を入力して、ノードのタイプを選択しました。
私は一番低いt3.microにしました。

詳細設定であらかじめ作成しておいた、サブネットグループとセキュリティグループを設定しました。

W3 Total Cacheの設定

WordPress管理画面にログインして、設定メニューから、W3 Total Cacheの設定をします。
W3 Total Cacheがすでにインストール済みの環境で設定しました。

[General Setting]で[Database Cache]を有効にして、[Satabase Cache Method]で[Memcached]を選択しました。

この時点ではデフォルト設定のローカルにMemcachedサーバがないので警告が表示されます。

左のメニューペインで、[Database Cache]を選択して、[Memcached hostname:port]にElastiCacheのエンドポイントとポート番号を入力して保存します。

私はなるべくデータベースコネクションを減らしたかったので、キャッシュ保持期間を1日にしてみました。
保存しました。

Memcachedの確認

確認用のEC2インスタンスを別途起動して、webサーバー用のセキュリティグループ、IAMロール(SystemsManagerなどの権限)を設定しました。
ターミナル操作は、セッションマネージャから実行して確認しました。

memcached-tool を使いたかったので、memcachedをインストールしました。
あとは、telnetでも確認したかったのでtelnetをインストールしてます。

キャッシュされている情報が確認できました。

telnet接続後は、 stats や stats itemsでキャッシュされていることが確認できました。


最後までお読みいただきましてありがとうございました!

【PR】 「AWS認定試験対策 AWS クラウドプラクティショナー」という本を書きました。

【PR】 「AWSではじめるLinux入門ガイド」という本を書きました。

【PR】 「ポケットスタディ AWS認定 デベロッパーアソシエイト」という本を書きました。

【PR】 「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル」という本を書きました。

 - AWS , , ,

ad

ad

  関連記事

AWS AmplifyでTodoアプリを作るハンズオンをやってみました

【お手軽ハンズオンで AWS を学ぶ】AWS Amplify で Todo アプ …

AWS Service CatalogポートフォリオをOrganizations組織で共有する

AWS Service Catalogチュートリアルで作成したポートフォリオのO …

Amazon SES, S3で受信したメールをAWS Lambda, SESで別のメールへ転送する

Amazon SESでメール受信で受信したメールを、毎回S3バケットに見に行って …

Amazon RDS MySQLでCSVをload data するときに「Access denied」発生

超小ネタです。 AWSのデータベースサービスの Amazon RDSのMySQL …

Cloud9のデフォルト設定での権限確認(AWS managed temporary credentials)

Cloud9の環境を作成した際のデフォルトアクセス権限は、環境を作成したIAMユ …

GoogleForm,GASからAPI Gateway, Lambdaで入力情報をDynamoDBに格納する

vol.26 AWS認定試験テキスト認定クラウドプラクティショナーのデモ(Dyn …

Amazon Glacierのプロビジョニングされた迅速取り出し容量をなぜか購入しました

過去1年ぐらいのAWSコストをCost Explorerで見てまして、10/10 …

AWS CodeStarで静的webサイトのテンプレートプロジェクトを作成する

執筆環境の検討中です。 CodeCommitは使うつもりで、コミットしたときにE …

RedmineをELB(ALB)でAutoScalingグループへ負荷分散

高可用なRedmineを作るためのELBの設定です。 高可用なRedmine R …

Windows EC2インスタンスでEBSとインスタンスストアを使用する

Amazon EBS基本のデモ(「AWS認定試験テキスト AWS認定 クラウドプ …