Ubuntu 20.04LTSにMemcachedをインストールする方法

PHPおよびPythonアプリでMemcachedサーバーを使用して、データベースのパフォーマンスを最適化します

データベースの負荷が高く、Webアプリの速度が低下するという苦痛を感じ、「DBクエリによって引き起こされる遅延を減らす方法はありますか?」と疑問に思ったことがある場合、その質問に対する答えは大いにあります。 Memcachedのフレンドリーなネイバーフッドメモリキャッシュデーモンは、すべての問題を解決するためにここにあります! DBのキャッシュは、DBの負荷を軽減し、動的Webアプリケーションを高速化するための最も簡単な方法の1つです。

Memcachedは、それ自体を高性能の分散メモリオブジェクトキャッシングシステムとして定義します。これは本質的に一般的なものですが、元々はデータベースの負荷を軽減することで動的なWebアプリケーションを高速化するために使用することを目的としています。 2003年に彼のウェブサイトLiveJournalのためにBradFitzpatrickによって開発されました。

この記事では、Ubuntu 20.04にMemcachedをインストールして構成する方法と、その言語固有のクライアントについて説明します。

前提条件

管理者権限を持つユーザーがいるUbuntu20.04でインストールされたシステム、つまり sudo ユーザー。

インストール

Memcachedは公式のUbuntu20.04リポジトリで利用できます。また、Memcachedに加えて、次のようなCLIツールもインストールします。 libmemcached-ツール Memcachedを管理します。次のコマンドを実行して、両方をインストールします

sudo apt install memcachedlibmemcached-tools

インストールの確認

インストールが完了すると、Memcachedデーモンがバックグラウンドで自動的に起動します。インストールを確認するために、次のコマンドを使用できます。 libmemcached-ツール Memcachedサーバーの統計を取得するパッケージ。どちらかを実行します

memcstat --servers localhost

また

memcstat --servers 127.0.0.1

The memcstat コマンドは、実行中のサーバーの統計を表示します。上記のコマンドを実行すると、以下に出力が表示されます。

などのさまざまな統計 稼働時間 すぐに、 バージョンpid 出力として表示されます。ただし、出力が表示されない場合は、Memcachedが実行されていない可能性があります。したがって、Memcachedサーバーを起動するには、次のコマンドを実行する必要があります。

sudo systemctl start memcached

システムの起動時にMemcachedサーバーを実行するには、次のコマンドを使用します。

sudo systemctl enable memcached

Memcachedの構成

memcachedがWebサイトサーバー自体にインストールされている場合、memcachedはローカルホストで動作するように事前構成されているため、構成ファイルを変更する必要はありません。

一方、別のシステムにMemcachedをインストールした場合は、リモートサーバーがMemcachedサーバーにアクセスできるように構成を変更する必要があります。

Memcachedサーバーのリモートアクセスの設定

Memcachedは、DDoS(分散型サービス拒否)攻撃に対して脆弱です。ファイアウォールルールが正しくなく、UDPポートが開いていると、サーバーが開いたままになり、DDoS攻撃に対して脆弱になります。

リスクを軽減するために、構成でMemcachedのUDPプロトコルを無効にするか、信頼できるサーバーのみを許可するようにファイアウォールを設定することができます。

箱から出して、UbuntuはTCPまたはUDPポートが開いていない状態で出荷されます。さらに、ファイアウォールデーモン ufw (複雑でないファイアウォール)はデフォルトでは有効になっていません。

DDoSの脆弱性を軽減できるように、ファイアウォールを有効にしてMemcached構成をセットアップします。

まず、有効にします ufw 次のコマンドを実行します。

sudo systemctl enable ufw

次に、を開始します ufw 以下のコマンドを実行してサービスを実行します。

sudo systemctl start ufw

ファイアウォールが実行されているので、最終的にファイアウォールルールを設定できます。まず、ポート22を有効にしてSSH接続を許可します。目的のサーバーにリモートアクセスするには、SSHが必要です。

sudo ufw allow 22

次に、クライアントのIPアドレス(Webアプリケーションホスト)とサーバーのIPアドレス(Memcachedサーバー)を知る必要があります。

この例では、クライアントIPを次のように想定します。 192.168.0.4 およびMemcachedサーバーのIP 192.168.0.5 ローカルネットワーク上。

したがって、memcachedサーバーからクライアントサーバーへのリモートアクセスを許可するには、次のコマンドを実行します。

sudo ufwは、192.168.0.4から任意のポート11211までを許可します

交換してください 192.168.0.4 希望するクライアントIPアドレスを使用します。

次に、次の場所にあるMemcached構成ファイルを編集します。 /etc/memcached.conf 実行することによって ナノ 指図。

sudo nano /etc/memcached.conf

The memcached.conf 構成ファイルがnanoエディターで開きます。 -l 127.0.0.1 構成の行と置換 127.0.0.1 MemcachedサーバーIPを使用するか、この場合は 192.168.0.5.

プレス交換後 ctrl + o 構成ファイルに書き込んでEnterキーを押すには、を押します。 ctrl + x nanoを終了します。

Memcachedサーバーを再起動して ufw 以下のコマンドを実行してファイアウォールを作成します。

sudo systemctl restart memcached ufw

これで、Ubuntu20.04でのMemcachedサーバーのインストールと構成が完了しました。

Memcachedサーバーへの接続

Memcachedサーバーを使用するには、言語固有のクライアントをインストールする必要があります。幸い、Memcachedは多くの一般的な言語をサポートしています。

したがって、インストール方法を見てみましょう phpPython Memcachedのクライアント。

PHPは最も人気のあるサーバー側スクリプト言語であり、Memcachedは主に、PHPを利用したWebアプリのサーバーパフォーマンスを向上させるためにWeb開発者によって使用されます。

PHPにmemcachedサポートをインストールするには、 走る:

sudo apt install php-memcached

Pythonにも、Memcachedサーバーと連携して動作できるライブラリがいくつかあります。 pymemcached また python-memcached.

次のpipコマンドを実行して、Python用のmemcachedをインストールできます。

pipインストールpymemcache
pip install python-memcached

結論として、Ubuntu 20.04でのMemcachedのインストール、構成、およびいくつかの言語固有のクライアントについて見てきました。

Memcachedのより本質的で高度な使用法については、MemcachedWikiをご覧ください。