Debian 12, 11, 10에 Memcached를 설치하는 방법

Brad Fitzpatrick은 2003년에 LiveJournal 웹사이트용 Memcached를 강력한 오픈 소스 캐싱 시스템으로 개발하여 데이터베이스 부하를 줄여 동적 웹 애플리케이션의 성능을 향상시켰습니다. 그 이후로 트래픽이 많은 많은 웹사이트와 애플리케이션에 필수적이 되었습니다. Debian 12 Bookworm, Debian 11 Bullseye 또는 Debian 10 Buster에 Memcached를 설치하기 전에 아래에서 Memcached에 대한 몇 가지 주요 사항을 살펴보겠습니다.

주요 특징 및 이점:

  • 확장성: 초당 수백만 개의 작업을 처리하는 Memcached는 대규모 웹 애플리케이션 및 서비스에 이상적입니다.
  • 분산 캐싱: 분산 캐싱 아키텍처를 사용하는 Memcached는 여러 서버에 걸쳐 수평 확장을 허용하여 전체 캐시 용량을 확장합니다.
  • 메모리 내 저장소: 메모리 내 키-값 저장소인 Memcached는 캐시된 데이터에 대한 빠른 액세스를 보장하여 디스크 기반 스토리지 시스템의 대기 시간을 크게 줄입니다.
  • 간단한 API: Memcached는 PHP, Python, Ruby 등을 포함한 다양한 프로그래밍 언어를 지원하는 간단한 API를 제공합니다.
  • 캐시 만료: 이 시스템을 통해 개발자는 캐시된 데이터의 만료 시간을 설정하여 캐시에서 오래되거나 오래된 데이터를 자동으로 제거할 수 있습니다.
  • 경량: 최소한의 CPU 및 메모리 오버헤드로 Memcached는 시스템 리소스를 크게 소모하지 않고 다양한 서버 구성에서 효율적으로 실행됩니다.
  • 유연한 데이터 유형: Memcached는 문자열, 정수, 복합 객체 등 다양한 데이터 유형을 수용하므로 다양한 사용 사례에 다용도로 사용할 수 있습니다.

다음 가이드는 가장 안정적인 버전을 위한 기본 Debian 저장소 또는 최신 버전 작업을 선호하는 사람들을 위한 최신 바이너리 다운로드 및 컴파일이라는 두 가지 방법을 사용하여 Debian에서 Memcached를 설치하는 과정을 안내합니다.

방법 1: 기본 APT 저장소를 통해 Memcached 설치

이 섹션에서는 APT 패키지 관리자를 사용하여 Debian Linux 시스템에 Memcached를 설치합니다. 여기에는 시스템 패키지를 업데이트하고 몇 가지 유용한 도구를 사용하여 Memcached를 설치하는 작업이 포함됩니다.

Memcached 설치 전에 Debian 시스템 업데이트

최신 패키지 버전과 보안 업데이트가 있는지 확인하려면 Debian 시스템을 업데이트하는 것부터 시작하세요. 다음 명령을 실행하십시오.

sudo apt update && sudo apt upgrade

이 명령은 패키지 목록을 업데이트하고 오래된 패키지를 최신 버전으로 업그레이드합니다.

Memcached 및 Libmemcached-tools 설치

데비안은 기본 저장소에 Memcached를 포함하므로 설치가 간단합니다. Memcached를 설치하려면 다음 명령을 실행하십시오.

sudo apt install memcached libmemcached-tools

이 명령은 Memcached와 libmemcached-tools 패키지. 그만큼 libmemcached-tools 패키지는 Memcached와 더 많은 상호 작용 및 관리 기능을 활성화하는 추가 명령줄 유틸리티를 제공합니다.

방법2: 소스를 통해 Memcached 설치

이 섹션에서는 소스 코드에서 컴파일하여 Debian 시스템에 Memcached를 설치하는 방법을 다룹니다. 최신 버전의 Memcached를 사용하거나 특정 요구 사항에 맞게 빌드를 사용자 정의하려는 경우 소스에서 설치하는 것이 도움이 될 수 있습니다.

Memcached 소스 다운로드

먼저 Memcached를 방문하세요. 최신 릴리스 페이지 현재 버전을 찾으려면 다음을 사용하십시오 wget 직접 다운로드하는 명령:

wget https://memcached.org/latest

Memcached 소스 아카이브 추출

그런 다음, 다음 명령을 실행하여 다운로드한 소스 코드를 추출합니다.

tar -xvf latest

계속하기 전에 추출된 디렉터리로 이동하세요. 디렉터리 이름은 다운로드한 버전에 따라 다릅니다.

cd memcached-{place version number here}

바꾸다 {version_number} 실제 버전 번호와 함께.

Memcached 컴파일에 필요한 초기 패키지 설치

Memcached를 컴파일하기 전에 필요한 빌드 종속성을 설치해야 합니다. 설치하려면 다음 명령을 실행하십시오.

sudo apt install build-essential libevent-dev gcc make libc6-dev

설치된 패키지는 다음과 같은 목적으로 사용됩니다.

  • gcc: Memcached 소스 파일용으로 잘 알려진 C 컴파일러입니다.
  • make: 편집을 지시합니다.
  • libc6-dev: GNU C 라이브러리 및 헤더 파일에 대한 참조를 제공합니다.
  • libevent-dev: 비동기 이벤트 알림을 위한 개발 파일이 포함되어 있습니다.

설치 구성

사용 --prefix= Memcached 바이너리 및 라이브러리가 설치될 디렉터리를 설정하는 매개변수:

./configure --prefix=/usr/local

Memcached 소스 코드 컴파일

Memcached 소스 코드를 다음과 같이 컴파일합니다. make 명령:

make

현재 버전을 확인하여 Memcached를 테스트합니다.

./memcached --version

'make install' 명령을 통해 Memcached 설치

컴파일 프로세스가 완료되면 다음 명령을 실행하여 Memcached를 설치합니다.

sudo make install

이 명령은 시스템에 Memcached를 설치하여 명령줄에서 액세스할 수 있도록 합니다. 시스템이 새 라이브러리를 인식하는지 확인하려면 다음을 실행하세요.

sudo ldconfig

Memcached 설치 확인

Memcached가 성공적으로 설치되었는지 확인하려면 다음 명령을 실행하십시오.

memcached -V

이 명령은 설치된 Memcached 버전을 표시하여 소스 코드에서 성공적인 설치를 확인합니다.

Memcached용 Systemd 서비스 생성

소스에서 Memcached를 설치하면 시스템 서비스 파일이 자동으로 생성되지 않습니다. Memcached를 서비스로 실행하고 다음을 사용하여 관리하려면 systemctl, Memcached에 대한 사용자 정의 systemd 서비스 파일을 생성해야 합니다. 서비스를 생성하고 활성화하려면 다음 단계를 따르세요.

라는 새 파일을 만듭니다. memcached.service 에서 /etc/systemd/system 원하는 텍스트 편집기를 사용하여 디렉토리를 만듭니다. 이 예에서는 nano:

sudo nano /etc/systemd/system/memcached.service

다음 내용을 memcached.service 파일:

[Unit]
Description=Memcached Service
After=network.target

[Service]
Type=simple
User=memcache
Group=memcache
ExecStart=/usr/local/bin/memcached /etc/memcached.conf
Restart=always

[Install]
WantedBy=multi-user.target

파일을 저장하고 텍스트 편집기를 종료합니다.

만들기 memcache 서비스를 안전하게 실행하기 위한 사용자 및 그룹:

sudo useradd -r -s /sbin/nologin -U -M memcache

새 서비스 파일을 인식하려면 systemd 구성을 다시 로드하세요.

sudo systemctl daemon-reload

마지막으로 서비스를 시작합니다.

sudo systemctl enable memcached --now

Memcached 서비스 상태 관리

이 섹션에서는 Debian 시스템에서 Memcached 서비스 관리를 다룹니다. 여기에는 서비스 상태 확인, 서비스 시작 및 중지, 시스템 부팅 시 실행되도록 구성 등이 포함됩니다.

Memcached 서비스 상태 확인

기본적으로 Memcached는 설치 후에 실행되어야 합니다. 상태를 확인하려면 systemctl 다음과 같이 명령합니다:

systemctl status memcached

이 명령은 Memcached 서비스의 현재 상태를 표시합니다.

Memcached 서비스 시작

Memcached가 실행되고 있지 않으면 다음 명령을 사용하여 서비스를 시작할 수 있습니다.

sudo systemctl start memcached

시스템 부팅 시 Memcached 활성화

시스템 부팅 시 Memcached 서비스가 자동으로 시작되도록 하려면 다음 명령을 사용하십시오.

sudo systemctl enable memcached

Memcached 서비스 중지

Memcached 서비스를 중지해야 하는 경우 다음 명령을 사용하세요.

sudo systemctl stop memcached

시스템 부팅 시 Memcached 비활성화

시스템 부팅 시 Memcached 서비스가 자동으로 시작되지 않도록 하려면 다음 명령을 실행합니다.

sudo systemctl disable memcached

Memcached 서비스 다시 시작

예를 들어 구성을 변경한 후 Memcached 서비스를 다시 시작해야 하는 경우 다음 명령을 사용합니다.

sudo systemctl restart memcached

Memcached가 기본 포트에서 수신 대기 중인지 확인

마지막으로 Memcached가 기본 포트를 사용하여 로컬 호스트를 적극적으로 수신하고 있는지 확인합니다. 11211. 이를 확인하려면 다음 명령을 실행하십시오.

ps -ef | grep memcached

출력에는 다음과 유사하게 Memcached가 실행 중이고 지정된 포트에서 수신 중임을 나타내는 줄이 표시되어야 합니다.

memcache    5934       1  0 09:36 ?        00:00:00 /usr/bin/memcached -m 64 -p 11211 -u memcache -l 127.0.0.1 -P /var/run/memcached/memcached.pid
root        6591    3653  0 09:55 pts/0    00:00:00 grep memcached

Memcached 팁 구성

이 섹션에서는 다음을 편집하여 Memcached 설정을 구성하는 방법을 다룹니다. memcached.conf 파일. 수신 IP 주소 조정, UDP 비활성화 및 기본 메모리 할당 변경에 대해 설명합니다.

Memcached 구성 파일 열기

다음 위치에 있는 Memcached 구성 파일을 엽니다. /etc/memcached.conf 다음과 같은 텍스트 편집기를 사용하여 nano:

sudo nano /etc/memcached.conf

소스에서 Memcached를 컴파일한 사용자는 처음 열 때 이를 생성해야 합니다. APT 방법에 비해 파일은 비어 있습니다. 이것을 복사하여 조정을 시작할 수 있습니다.

# Example memcached.conf file

# Start with a cap of 64 megs of memory. It's reasonable, and the daemon default
# Note that the daemon will grow to this size, but does not start out holding this much
# memory
-m 64

# Default port is 11211
-p 11211

# Run the daemon as a background process
-d

# Use syslog logging
-s

# Enable verbose logging
-vv

# Set the maximum number of simultaneous connections
-c 1024

수신 IP 주소 조정

기본적으로 Memcached는 IP 주소 127.0.0.1을 수신합니다. 구성 파일에서 -l 매개변수를 확인하고 올바른 IP 주소로 설정되었는지 확인하십시오. IP 주소를 수정해야 하는 경우 127.0.0.1 새 IP 주소로:

-l 127.0.0.1

UDP 비활성화(선택 사항)

UDP 지원이 필요하지 않으면 비활성화하는 것이 좋습니다. UDP를 비활성화하려면 구성 파일에 다음 줄을 추가하십시오.

-U 0

메모리 할당 구성

Memcached의 기본 메모리 할당은 64MB로, 대규모 웹사이트에는 충분하지 않을 수 있습니다. Memcached를 최대화하려면 메모리 할당을 더 높은 값으로 조정하는 것이 좋습니다.

메모리 할당을 설정하려면 -m 구성 파일의 매개변수를 수정하고 기본값을 원하는 양(MB)으로 바꿉니다. 예를 들어 2GB의 메모리를 할당하려면 값을 다음으로 설정합니다. 2000:

-m 2000

서버의 사용 가능한 메모리와 요구 사항에 따라 이 설정을 조정하세요.

Memcached 저장 및 다시 시작

필요한 사항을 변경한 후 다음을 눌러 구성 파일을 저장합니다. CTRL+O, 이어서 Y, 그런 다음 CTRL+X 텍스트 편집기를 종료합니다. 마지막으로 변경 사항을 적용하려면 Memcached 서비스를 다시 시작하세요.

sudo systemctl restart memcached

추가 Memcached 구성 예

앞서 다룬 구성 옵션 외에도 요구 사항에 따라 Memcached를 미세 조정하기 위해 조정할 수 있는 몇 가지 다른 설정이 있습니다. 다음은 간단한 데모와 함께 몇 가지 예입니다.

사용자 및 그룹 지정

Memcached는 다음을 사용하여 지정된 특정 사용자 및 그룹에서 실행됩니다. -u 매개변수. 예를 들어 Memcached를 다음과 같이 실행하려면 memcache 사용자라면 구성 파일에 다음 줄을 추가하세요.

-u memcache

대용량 메모리 페이지 활성화

시스템이 대용량 메모리 페이지를 지원하는 경우 이 기능을 활성화하면 성능이 향상될 수 있습니다. 대용량 메모리 페이지를 활성화하려면 -L 매개변수를 삭제하고 주석 처리를 해제합니다( # 줄의 시작 부분에):

-L

최대 항목 크기 구성

Memcached의 기본 최대 항목 크기는 1MB입니다. 최대 항목 크기를 늘리려면 -I 매개변수 뒤에 원하는 크기를 입력하세요. 예를 들어 최대 항목 크기를 5MB로 설정하려면 구성 파일에 다음 줄을 추가합니다.

-I 5m

최대 스레드 수 설정

Memcached는 기본적으로 4개의 스레드를 사용합니다. 매개변수를 사용하여 서버의 기능과 작업 부하에 따라 스레드 수를 늘리거나 줄일 수 있습니다. 예를 들어 스레드 수를 8로 설정하려면 다음 줄을 추가합니다.

-t 8

유휴 시간 제한 구성

Memcached는 일정 기간 동안 활동이 없으면 유휴 연결을 자동으로 닫습니다. 유휴 시간 초과를 수정하려면 -o 매개변수 다음에 idle_timeout 그리고 원하는 초 수. 예를 들어 유휴 시간 제한을 600초(10분)로 설정하려면 다음 줄을 추가합니다.

-o idle_timeout=600

SASL 인증 활성화

Memcached 서버에 액세스하기 위해 인증이 필요한 경우 SASL(Simple Authentication and Security Layer) 지원을 활성화할 수 있습니다. SASL을 활성화하려면 -S 매개변수를 삭제하고 주석 처리를 해제합니다( # 줄의 시작 부분에):

-S

구성 파일을 변경한 후에는 항상 Memcached 서비스를 다시 시작해야 합니다.

sudo systemctl restart memcached

Memcached용 UFW 방화벽 설치

Memcached 인스턴스의 보안을 보장하려면 방화벽 규칙을 올바르게 구성하는 것이 중요합니다. 이 섹션에서는 Memcached 서버를 보호하기 위해 UFW(Uncomplicated Firewall)를 설치하고 구성하는 방법을 다룹니다.

UFW가 설치되어 있는지 확인하세요

먼저 데비안 시스템에 UFW가 이미 설치되어 있는지 확인해 봅시다:

sudo ufw --version

UFW가 설치되어 있으면 출력에 해당 버전 번호가 표시됩니다. 그렇지 않은 경우 설치해야 합니다.

Memcached용 Debian에 UFW 설치

데비안 시스템에 UFW를 설치하려면 다음 명령을 실행하세요:

sudo apt install ufw

설치가 완료되면 다음 명령을 사용하여 UFW를 활성화합니다.

sudo ufw enable

Memcached에 대한 UFW 규칙 구성

이제 UFW가 설치되고 활성화되었으므로 TCP 포트 11211에서 허용 규칙을 만들어야 합니다. 생성하는 규칙은 단일 IP 네트워크 연결을 사용하는지 또는 클러스터 네트워크에서 여러 인스턴스를 사용하는지 여부에 따라 설치 및 요구 사항에 따라 달라집니다.

단일 IP 네트워크 연결 예

특정 IP 주소에서 Memcached에 대한 액세스를 허용합니다.

sudo ufw allow proto tcp from <ip_address> to any port 11211

여러 인스턴스가 있는 클러스터 IP 네트워크 연결 예

IP 주소의 서브넷에서 Memcached에 대한 액세스를 허용합니다.

sudo ufw allow proto tcp from <ip_address>/24 to any port 11211

두 번째 UFW 규칙은 서브넷 규칙입니다. 액세스를 허용하기 전에 내부 네트워크가 안전하고 신뢰할 수 있는지 확인하세요.

4단계: UFW 규칙 확인

적절한 규칙을 설정한 후 현재 UFW 규칙을 나열하여 올바르게 구성되었는지 확인하세요.

sudo ufw status

출력에는 구성된 규칙이 표시되어 Memcached 인스턴스가 UFW로 보호되는지 확인해야 합니다.

Memcached 라이브러리 설치

Memcached는 다양한 프로그래밍 언어에 대한 확장 기능을 제공하지만 PHP와 함께 가장 일반적으로 사용됩니다. 이 섹션에서는 PHP, Python 및 Perl용 Memcached 라이브러리를 설치하고 Apache 및 Nginx 웹 서버용 Memcached를 구성하는 과정을 안내합니다.

Memcached용 PHP 라이브러리 설치

Memcached용 PHP 라이브러리를 설치하려면 다음 명령을 실행하십시오.

sudo apt install php-memcached libapache2-mod-php php php-cli

Apache HTTP 서버용 Memcached 구성

Apache HTTP 서버를 사용하는 경우 다음 명령을 실행하여 Memcached 모듈을 활성화합니다.

sudo phpenmod memcached && sudo systemctl restart apache2

Nginx HTTP 서버용 Memcached 구성

Nginx 사용자를 위해 PHP 라이브러리가 설치되면 PHP 구성 블록 내에서 Memcached 지원이 기본적으로 활성화됩니다.

다음은 간단한 nginx 서버 블록 예입니다.

server {
    listen 80;
    server_name example.com;

    root /var/www/example.com;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
    }

    location ~ /\.ht {
        deny all;
    }
}

Memcached용 Python 라이브러리 설치

Memcached에 대한 Python 지원을 설치하려면 다음 명령을 실행하십시오.

sudo apt install python3-pymemcache

Memcached용 Perl 라이브러리 설치

Memcached에 대한 Perl 지원을 설치하려면 다음 명령을 실행하십시오.

sudo apt install libcache-memcached-libmemcached-perl

명령줄에서 Memcached에 액세스

Memcached는 다양한 소프트웨어와 웹 사용자 인터페이스를 통해 모니터링하고 관리할 수 있습니다. 그러나 명령줄을 사용하여 Memcached와 직접 상호 작용하는 것이 성능을 확인하고 콘텐츠를 관리하는 가장 간단한 방법인 경우가 많습니다.

먼저 텔넷을 사용하여 Memcached 서비스에 연결합니다.

telnet localhost 11211

예제 출력:

127.0.0.1 시도 중... localhost에 연결되었습니다. 이스케이프 문자는 '^]'입니다.

다음으로, 다음 명령을 사용하여 Memcached 서비스의 개요를 얻을 수 있습니다.

stats

이 명령은 가동 시간, 캐시의 항목 수, 클라이언트 연결 수 등 Memcached 인스턴스에 대한 다양한 통계를 반환합니다.

Memcached 슬래브(메모리 파티션)를 검사하여 분석을 구체화할 수 있습니다. 예를 들어 다음을 사용하여 연결된 인스턴스의 슬래브를 나열할 수 있습니다.

stats slabs

그리고 다음을 사용하여 각 슬래브 내에 저장된 항목 수를 포함하여 슬래브 목록을 얻습니다.

stats items

Memcached에 저장된 데이터에 액세스하고 조작하려면 다음을 사용할 수 있습니다. cachedump 키를 나열하는 명령입니다. 특정 슬래브의 모든 항목을 나열하려면 다음 명령을 실행하십시오.

stats cachedump [slab ID] [number of items, 0 for all items]

예를 들어:

stats cachedump 1 0

예제 출력:

ITEM 테스트키 [9 b; 1296857316초] 종료

이 예에서 슬래브 1에는 키가 "testkey"인 항목 하나가 포함되어 있습니다. 이 항목의 값을 검색하려면 get 명령:

get testkey

예제 출력:

VALUE testkey 0 9 테스트 데이터 END

마지막으로 "testkey"와 같은 캐시된 항목을 삭제하려면 다음 명령을 사용합니다.

delete testkey

예제 출력:

삭제됨

결론

결론적으로 Debian Linux에 Memcached를 설치하고 구성하면 빠르고 효율적이며 사용하기 쉬운 캐싱 시스템을 제공하여 웹 애플리케이션의 성능을 크게 향상시킬 수 있습니다. 이 가이드에 설명된 단계에 따라 Memcached를 성공적으로 설정하고, 선호하는 웹 서버로 구성하고, UFW를 사용하여 보안을 설정할 수 있습니다. 적절한 구성과 관리를 통해 Memcached는 애플리케이션을 최적화하고 더 나은 사용자 경험을 제공하는 데 필수적일 수 있습니다.

Joshua James

코멘트를 남겨주세요