Thumbor 이미지 CDN 설치 방법

Thumbor를 사용하면 필요에 따라 이미지의 크기를 자유롭게 조절하고 압축하고 변환할 수 있습니다.

케이티 헴페니우스
Katie Hempenius

Image CDN을 사용하면 이미지의 미적 요소와 성능을 동적으로 쉽게 최적화할 수 있습니다. 대부분의 이미지 CDN과 달리 Thumbor는 오픈소스이며 이미지 크기 조절, 압축, 변환에 무료로 사용할 수 있습니다. 프로덕션 용도에 적합합니다. WikipediaSquare에서 모두 Thumbor를 사용합니다.

이 가이드에서는 자체 서버에 Thumbor를 설치하는 방법을 설명합니다. Thumbor를 설치하고 나면 이미지 변환을 위한 API로 Thumbor를 사용할 수 있습니다.

소개

Ubuntu 16.04를 실행하는 VM에 Thumbor를 설치합니다. Ubuntu 16.04는 매우 일반적인 이미지이며 이 안내는 모든 클라우드 제공업체에서 사용할 수 있습니다. 로컬 머신에 Thumbor를 설치하는 것보다 VM을 만드는 것이 더 많은 작업처럼 들릴 수도 있지만, VM을 만드는 데 드는 시간을 몇 시간 또는 며칠을 넘기면 Thumbor를 로컬 머신에 제대로 설치하기 위한 번거로움을 덜 수 있습니다. Thumbor는 사용하기 쉽지만 설치하기는 매우 어렵기로 악명 높은데, 이 안내를 따르면 프로세스가 간소화됩니다. 종속 항목이 빠르게 다운로드되면 5~10분 이내에 설치가 완료됩니다.

기본 요건

이 게시물에서는 Google Cloud, AWS, 또는 Azure와 같은 클라우드 플랫폼에서 Ubuntu 16.04 LTS VM을 만드는 방법과 명령줄 도구를 사용하여 VM을 설정하는 방법을 알고 있다고 가정합니다.

Thumbor 종속 항목 설치

Ubuntu의 이미 설치된 패키지를 업데이트하고 업그레이드합니다.

sudo apt-get update -y && sudo apt-get upgrade -y

Python용 패키지 관리자인 pip를 설치합니다. 나중에 pip로 Thumbor를 설치합니다.

sudo apt-get install -y python-pip

Thumbor의 종속 항목을 설치합니다. Thumbor의 문서에는 이러한 종속성이 명시적으로 언급되어 있지 않지만 Thumbor는 이러한 종속성 없이는 성공적으로 설치되지 않습니다.

# ssl packages
sudo apt-get install -y libcurl4-openssl-dev libssl-dev
# computer vision packages
sudo apt-get install -y python-opencv libopencv-dev
# image format packages
sudo apt-get install -y libjpeg-dev libpng-dev libwebp-dev webp

Thumbor 설치

pip를 사용하여 Thumbor를 설치합니다.

sudo pip install thumbor

Thumbor가 정상적으로 설치되면 다음과 같이 작동할 것입니다.

thumbor --help

Thumbor 실행

Thumbor를 실행합니다. 디버그 로깅은 선택사항이지만 시작할 때 유용할 수 있습니다.

thumbor --log-level debug

Thumbor가 실행 중입니다.

개방형 방화벽 포트

기본적으로 Thumbor는 포트 8888에서 실행됩니다. VM의 IP 주소가 12.123.12.122이면 웹브라우저의 http://12.123.12.123:8888/.../$IMAGE에서 Thumbor에 액세스합니다.

하지만 클라우드 제공업체에서는 일반적으로 수신 트래픽을 수락하기 전에 방화벽 포트를 명시적으로 열도록 요구하기 때문에 이 방법은 효과가 없을 것입니다.

방화벽을 업데이트하여 포트 8888을 노출합니다. 자세한 방법은 Google Cloud, AWS, Azure를 참조하세요. Google Cloud의 경우 먼저 VM에 고정 IP 주소를 할당한 다음 외부 HTTP 연결을 허용해야 합니다.

사용해 보기

이제 Thumbor에 액세스하여 사용할 수 있습니다. 다음 URL을 방문하여 사용해 보세요.

http://YOUR_VIRTUAL_MACHINE:8888/unsafe/100x100/https://web.dev/install-thumbor/hero.jpg

이 URL은 HTTP를 사용합니다. Thumbor는 기본적으로 HTTP를 사용하지만 HTTPS를 사용하도록 구성할 수 있습니다.

가로 100픽셀, 세로 100픽셀인 이미지가 표시됩니다. Thumbor에서 URL 문자열에 지정된 이미지(hero.jpg)와 크기를 가져와서 결과를 제공했습니다. URL 문자열 (예: https://web.dev/install-thumbor/hero.jpg)을 다른 이미지 (예: https://your-site.com/cat.jpg) 및 Thumbor도 이미지 크기를 조절합니다.

Thumbor API를 사용하는 방법에 대한 자세한 내용은 Thumbor로 이미지 최적화 도움말을 참조하세요. 특히 Thumbor 구성 파일 설정에 관심이 있을 수도 있습니다.

부록: Systemd 구성

이 단계에서는 VM이 다시 시작된 후에도 Thumbor 프로세스가 계속 실행되는지 확인하는 방법을 설명합니다. 이 단계는 프로덕션 사이트에는 중요하지만 Thumbor만 사용해 보려는 경우에는 선택 사항입니다.

Systemd는 Linux 운영체제의 '시스템 및 서비스 관리자'입니다. systemd를 사용하면 서비스 (프로세스)가 실행되는 시점을 쉽게 구성할 수 있습니다.

VM 부팅 시 Thumbor를 자동으로 시작하도록 systemd를 구성합니다. VM이 다시 시작되면 Thumbor 프로세스도 자동으로 다시 시작됩니다. 이 방법은 사용자가 개입하여 Thumbor를 시작하는 것보다 훨씬 안정적입니다.

/lib/systemd/system 디렉터리로 이동합니다. 이 디렉터리에는 systemd의 서비스 파일이 포함되어 있습니다.

cd /lib/systemd/system

수퍼유저로 thumbor.service 파일을 만듭니다.

sudo touch thumbor.service

즐겨 사용하는 텍스트 편집기 (vim 및 nano는 Ubuntu에 사전 설치되어 있거나 다른 편집기를 설치할 수 있음)를 사용하여 thumbor.service에 다음 구성을 추가합니다. 이 구성은 네트워킹을 사용할 수 있게 되면 /usr/local/bin/thumbor (예: Thumbor 바이너리)를 실행하고 실패 시 Thumbor를 다시 시작합니다.

[Unit]

Description=Service for Thumbor image CDN

Documentation=https://thumbor.readthedocs.io/en/latest/

After=network.target

[Service]

ExecStart=/usr/local/bin/thumbor

Restart=on-failure

[Install]

WantedBy=multi-user.target

systemctlsystemd를 관리하는 데 사용되는 유틸리티입니다. start 명령어를 사용하여 Thumbor를 시작합니다.

sudo systemctl start thumbor.service

다음으로 Thumbor를 '사용 설정'합니다. 즉, Thumbor가 부팅 시 자동으로 시작됩니다.

sudo systemctl enable thumbor.service

status 명령어를 실행하여 systemd가 구성되었는지 확인합니다.

systemctl status thumbor.service

systemd를 사용하도록 thumbor.service를 성공적으로 설정하면 상태에 사용 설정되어 활성으로 표시됩니다.

Thumbor의 상태를 표시하는 Systemctl