티스토리 뷰

반응형

클라우드웨이스 서버 세팅 전 알아야 할 호스팅의 중요성

 

호스팅 업체를 고르는 기준은 크게 5가지로 재해 복구(DR), 고가용성(HIGH AVAILABILITY), 백업(BACK UP), 내결함성(FAULT TOLERANCE), 그리고 고객 지원입니다. 예전 페이스북의 서버가 7시간 작동을 멈췄을 때 주가 5%와 6천만 달러의 광고 수익이 증발했고, 로블록스도 72시간 서버가 다운되었을 때 15억 달러의 주식이 증발했습니다.

만약 이게 트래픽 많은 내 사이트나 쇼핑몰이였다면? 그만큼 서버는 중요합니다. 물론 온라인 상태가 100%가동되는 건 불가능합니다. 문제는 언제, 어디에서 터질지 모르니까요. 그래서 클라우드 세계 1위 업체인 아마존 웹 서비스(AWS)도 100%가동률을 보장하지 않습니다.

보통 호스팅 업체는 99%부터 99.999%의 가동률을 홍보합니다. 99%의 가동률이면 1년을 기준으로 3.65일, 99.9%는 약 8.8시간, 99.99% 는 약 53분, 99.999%는 약 5.3분이 서버가 멈추는 오프라인 상태입니다. 당연히 99.999%일수록 비쌉니다. AWS은 99.99%의 가용성을 보장합니다. 따라서 호스팅은 99.99%의 가용률이 선택의 기준이 되는 게 좋습니다. 99.9%는 마지노선이지만 쇼핑몰이라면 99.9%도 피해야 합니다.

 

구글이 가장 싫어하는 것

 

구글은 검색이 핵심입니다. 사이트의 정보를 받으면 그 정보를 도서관에서 책 정리하듯 순서대로 정리해 놓습니다. 이걸 색인 혹은 인덱스라고 합니다. 생성된 데이터가 색인이 되면 누군가 검색을 했을 때 색인시켜 놓은 데이터를 불러다가 검색자에게 내가 이거 찾았다고 검색 결과를 보여주게 됩니다. 그런데 어떠한 원인에 의해서 사이트가 열리지 않거나, 페이지가 보여지지 않거나, 혹은 삭제가 되어 데이터가 보여지지 않는다면 검색 엔진 입장에서 이거만큼 열 받는 일이 없습니다.

구글 입장에서는 기껏 검색해서 찾아줬는데 허탕친 것이고 제 역할을 못한 것입니다. 그럼 어떻게 할까요? 반복되면 SEO 지수를 확 떨어트려 버립니다. 나 같아도 열 받게 만든 사이트는 두 번 다시 보지 않습니다. 그럼 검색 결과에 노출이 안 되거나 페이지가 뒤로 밀리게 되고 방문자도 줄어듭니다.

이런 상황이 벌어지는 원인은 크게 3가지가 있습니다. 본인의 설정 실수, 도메인 호스팅, 서버 호스팅입니다. 사람들은 처음에 시작할 때 잘 모르니까 가격 싸고 저렴한 공유호스팅 추천 받아 시작합니다. 이거 가지고 문제 삼지는 않겠지만 왜 호스팅 가격이 싸고 저렴할까요? 가입자 유치의 목적일 뿐 좋은 걸 싸게 뿌리는 기업은 없습니다.

 

방문자가 늘어나면 재빨리 호스팅 업체를 바꾸던가 호스팅 상품을 바꿔서 업그레이드를 해야 하는데 그걸 안 합니다. 매일 서버 확인하는 사람도 거의 없고, 모니터링 보고서조차 보지 않습니다. 트래픽이 올라가면 무조건 클라우드나 VPS로 업그레이드 하세요. 문제가 터지고 나서 수습하려면 늦습니다. 가장 좋은 건 예방입니다.

3년 째 사용하고 있지만 한 번도 문제를 일으킨 적이 없는 정말 좋은 호스팅이 클라우드웨이스입니다. 선택은 여러분의 몫이지만 호스팅은 웹사이트의 거의 전부인 만큼 가격만 가지고 호스팅을 선택하는 일은 하지 마세요. 호스팅 업체에서 정확히 어떠한 것을 지원하고 비용에 무엇이 포함되어 있는지 직접 살펴보는 것이 중요합니다.

 

대시보드에서 서버 세팅하기

 

이제 각설하고 클라우드웨이스를 가입했다면 약간의 서버 세팅이 필요합니다. 서버 자체를 건드릴 필요는 없고 서버에 설치한 애플리케이션인 워드프레스가 잘 돌아갈 수 있도록 할 것입니다. 그리고 워드프레스를 접속할 때 WP-ADMIN으로 로그인하지 말고 클라우드웨이스로 로그인해서 주기적으로 서버에 문제가 생기진 않았는지, 알람이 뜬 건 없는지, 백업은 잘 되어 있는지 모니터링 하시기 바랍니다.

우선 아래 사진1처럼 클라우드웨이스를 접속한 뒤 상단에 서버를 클릭해서 서버를 선택합니다.

 

사진1
사진2

화면2에서 연필 모양을 누르면 서버 이름을 변경할 수 있습니다. 서버를 클릭하면 왼쪽에 서버에 대한 세로 메뉴가 나오는데 MASTER CREDENTIALS은 개발자가 아닌 이상 사용할 일이 없습니다. 사진2는 MONITORING 서버의 상태를 보여주며 서버의 메모리, CPU, 저장 공간, 대역폭을 확인할 수 있습니다. 저는 저장 공간이 많기 때문에 무언가를 바꾸거나, 페이지를 변경하거나, 플러그인을 설치하기 전에 수시로 백업을 하고 있습니다.

대역폭의 경우는 매월 1일부터 말일까지의 합계를 보여주는데 대역폭을 결정하는 건 사이트에 있는 동영상, 사진, 폰트, 그리고 설치한 플러그인의 API 호출에 대한 모든 게 더해져서 결정됩니다. 동영상이 크고, 고화질의 해상도 높은 사진도 많다면 대역폭이 늘어나므로 영상이나 사진의 파일 사이즈를 압축해서 줄인 다음 업로드를 하는 게 좋습니다. 클라우드웨이스의 VULTR의 경우 메모리 1GB 서버가 대역폭이 1TB로 부족하지 않습니다.

 

사진3

사진3은 MONITORING DETAILS 탭 입니다. CPU사용량 그래프 변화가 장난 아니죠? CPU사용량이 100으로 폭증해서 그래프의 낙차가 큰 이유는 워드프레스의 Heartbeat API 기능 때문입니다. 글을 쓰거나, 페이지를 오랜시간 켜놓은 상태로 디자인 하다 보면 백엔드 화면에서 오랫동안 머물게 되는데 자세히 살펴보면 수시로 임시 저장이 되는 걸 볼 수 있습니다.

이 임시 저장을 위해 워드프레스에서는 글을 쓸 때는 15초마다, 워드프레스 관리자 대시보드에 있을 때는 60초마다 admin-ajax.php 데이터를 실시간으로 요청 및 호출하게 됩니다. 분명 편리하고 좋은 기능이긴 하지만 호출하는 빈도가 잦을수록 CPU가 ajax요청을 처리하기 위해 일을 많이 하므로 호출하는 시간동안 CPU사용량이 급격하게 늘어나게 되고 저런 그래프를 만들게 됩니다.

그래서 페이지 디자인 작업을 하다 보면 CPU사용량이 100이 될 때 사이트가 느려지고 버벅대는 걸 볼 수 있습니다. 보통의 블로그나 사이트는 CPU사용량이 100을 찍는 일은 생기지 않으니 전혀 걱정할 필요가 없습니다. 위 사진의 사이트는 사용하는 플러그인도 진짜 많고 페이지도 크기 때문에 공유 호스팅이 아닌데도 이런 일이 생깁니다. 공유 호스팅이면 끔찍하겠죠. 이걸 줄이려면 호출하는 시간 주기를 늘리거나 서버의 CPU스펙을 업그레이드 하면 됩니다.

Heartbeat API의 조절은 WP Rocket에서 만든 Heartbeat Control 플러그인을 이용하거나 클라우드웨이스의 BREEZE 캐시 플러그인으로 쉽게 변경할 수 있습니다. Heartbeat Control 플러그인 사용 방법은 아래 영상을 참고하시고 BREEZE의 경우는 BREEZE 사용법 글을 보세요.

 

https://youtu.be/By0jdMd_T60

1. 클라우드웨이스 서버 세팅 – SETTINGS & PACKAGES

 

사진4

그 다음 SETTINGS & PACKAGES 메뉴 BASIC탭 입니다. 사진4처럼 설정하면 됩니다. 업로드 사이즈의 경우 기본 100MB로 설정되어 있는데, 업로드 해야 할 파일이 크다면 서버에서 변경해주고 아래에서 설명할 애플리케이션에서도 같이 변경해 줘야 합니다. 그러나 동영상이 아닌 이상 100MB면 충분합니다.

메모리 리미트(MEMORY LIMIT)는 1GB의 서버 사용자라면 256MB면 충분하나 엘레멘토 페이지 빌더와 여러 확장 애드온을 사용해서 작업하는 사이트라면 511MB로 높이는 게 좋습니다. 페이지 빌더나 애드온 위젯은 활성 위젯의 수가 많을수록 메모리 요구량이 높아지게 됩니다. 그래서 메모리 할당량이 충분하지 않으면 무한 로딩을 경험할 수 있습니다. 사악한 애드온은 메모리 1G를 요구하기도 합니다.

 

2. 클라우드웨이스 서버 세팅 – ADVANCED

 

사진5

ADVANCED탭 입니다. PHP에서 MAX INPUT VARIABLES는 기본값이 10,000이지만 값을 1,000으로 낮춘 건 APACHE 에러 로그가 너무 자주 발생해서 클라우드웨이스에서 변경해 준 값입니다. OP캐시 메모리는 64MB가 기본값이고 서버 메모리 1GB 사용자는 255MB까지, 2GB 사용자는 511MB까지 변경해도 문제 없습니다. OPCACHE는 워드프레스가 구동되는 PHP에 기본으로 탑재되어 있는 것으로 사이트의 속도와 관련된 캐시입니다.

 

사진6

PACKAGES탭은 건드릴 게 없지만 PHP의 버전을 변경하고 싶을 때는 여기에서 하면 됩니다. PHP7.4는 2022년 11월 28일을 마지막으로 업데이트 지원이 끝났습니다. 이제는 PHP8.1로 넘어가야 하는데 아직은 다수의 플러그인들이 PHP8.1에 전부 대응을 못하기 때문에 사용중인 모든 플러그인의 PHP8.1에 대한 업데이트가 끝나면 그 때 변경하려고 놔두고 있습니다. PHP버전 업을 할 생각이라면 본인이 사용하는 테마나 플러그인의 업데이트 릴리즈 내역을 확인해서 PHP8에 대한 호환성을 검증했는지 반드시 확인해야 합니다.

 

3.클라우드웨이즈 서버 세팅 – MAINTENANCE

 

사진7

MAINTENANCE 탭 입니다. 모든 서버는 기본적으로 서버 점검을 하게 되는데 서버 점검을 하는 시간에는 사이트가 잠깐이지만 열리지 않는 시간이 발생합니다. 그래서 가장 방문자가 적은 시간에 점검하도록 설정을 하는 것이 좋습니다. 사진을 보면 서버 점검을 일주일 단위로 하게 되는데 저는 매주 토요일 UTC 18:00시로 설정했습니다.

 

4. 클라우드웨이즈 서버 세팅 – BACK UPS

 

사진8

BACK UPS 메뉴입니다. 여기에서 백업 시간, 백업 주기, 백업 데이터 보관 기간을 설정할 수 있습니다. SCHEDULE TIME은 한국 시간으로 새벽2시 50분, BACKUP FREQUENCY (백업 주기)는 매일, BACKUP RETENTION (백업 데이터를 보관하는 기간)은 일주일로 설정했습니다. 본인이 원하는데로 변경하세요. 로컬 백업(LOCAL BACKUP)은 FTP로 백업본을 다운로드 받아서 컴퓨터에 저장할 수 있도록 하는 기능인데 백업이 중요한 건 맞지만 나는 그렇게 까지는 하고 싶지 않아서 정말 필요할 때만 수동으로 한 번씩 하고 있습니다.

클라우드웨이스는 저장 용량이 널널하기 때문에 로컬 백업을 활성화해도 문제 없으니 백업에 민감한 분들이라면 로컬 백업을 활성화하세요. 단, 로컬 백업은 여러 개를 만들 수 없고 가장 최근 데이터의 버전 하나만 백업이 되며 LOCAL_BACKUPS 폴더에 저장됩니다.

 

사진9

SMTP는 이메일 전송과 관련된 기능입니다. 워드프레스에서 보내는 이메일이 잘 전달되도록 하려면 SMTP의 설정은 반드시 해야 합니다. 대부분 WP Mail SMTP나 Gmail SMTP 플러그인을 사용해서 SMTP를 설정합니다. 헌데 저는 설치된 플러그인이 워낙 많아서 서버에서 해결하려고 클라우드웨이스의 ELASTIC EMAIL 애드온을 사용합니다. 무료는 아니고 유료지만 가격이 혜자입니다. 이메일 수,발신 합계 1000통 기준 월 요금이 0.1달러 밖에 안 합니다. 1000통씩 높일 때마다 0.1달러 추가됩니다.

참고로 클라우드웨이스는 RACKSPACE 도메인 이메일을 사용할 수 있는데 앱 없이 웹으로만 접속해야 하는 단점이 있고, 한글 지원을 하지 않으며, 웹메일을 띄워놓은 상태에서만 메일 도착시 종소리로 알림을 들을 수 있고, 사용자 인터페이스가 완전 심심한 수준입니다. 장점은 이메일 용량이 25GB로 많은데다 월 1달러만 내면 되니까 쓰고 있습니다.

 

RACKSPACE 대시보드

5. 클라우드웨이스 서버 세팅 – APPLICATION

 

사진10

지금부터는 APPLICATIONS 메뉴를 클릭해서 APPLICATION MANAGEMENT로 진입합니다. APPLICATION URL은 내 웹사이트의 프론트엔드로 이동하는 버튼이고 ADMIN PANEL은 백엔드로 접속해서 관리자 페이지로 로그인 하는 버튼입니다. 워드프레스는 로그인을 할 때 아이디를 이메일로 사용합니다.

USERNAME의 이메일 주소는 관리자 로그인 아이디이고, 패스워드는 암호화 표시가 되어 있으며 PASSWORD 는 👁‍🗨아이콘을 클릭하면 확인할 수 있습니다. 로그인을 할 때는 아이디와 비밀번호를 클릭하면 복사되며 관리자 페이지에 붙여넣기하면 됩니다.

APPLICATION CREDENTIALS은 자격 증명으로 사이트에 접속할 수 있는 관리자와 관리자 등급의 권한을 부여받은 사람이 서버 데이터에 접속할 수 있도록 해주는 기능입니다. 서버 데이터의 접속은 암호화 된 SFTP로만 접속이 가능하며 파일질라(FILE ZILLA) FTP 프로그램을 사용해야 합니다.

처음에는 공란이며 접속 아이디와 비밀번호를 만들어야 합니다. SFTP를 사용하는 경우는 파일의 업로드, 다운로드, 파일 변경, 코드 추가, 데이터 내려받을 때 필요합니다.

파일질라는 파일질라 공식 홈페이지에서 다운로드 받을 수 있고 파일질라를 사용한 워드프레스 SFTP접속 방법은 아래 영상을 참고하세요.

 

https://filezilla-project.org/  (파일질라 다운로드)

 

파일질라를 사용한 SFTP접속 방법

 

https://youtu.be/PRTf_DEwPkc

클라우드웨이스 파일질라 SFTP 연결하기

6. 클라우드웨이즈 서버 세팅 – GENERAL

 

사진11

APPLICATION SETTINGS 메뉴의 GENERAL 탭 입니다. FOLDER와 WEBROOT의 이름은 임의로 설정되어 있는데 이름은 자기 마음데로 변경해도 됩니다. 그 다음 DEFAULT EMAIL SENDER에 영문 소문자로 no-reply@도메인으로 변경합니다.

DEFAULT EMAIL SENDER는 메일을 발신만 하고 회신은 받지 않겠다는 설정입니다. 여러곳에서 이메일을 받다 보면 no-reply라고 적혀 있는 걸 자주 보게 되는데 그것과 똑같습니다. 문의 양식은 따로 만들어 두는 걸 권장합니다.

오른쪽 스위치의 내용은 다음과 같습니다. VARNISH는 사이트 캐싱의 하나로 클라우드웨이즈는 사이트의 속도를 조금이라도 더 빠르게 하기 위해 기본으로 활성화 되어 있으며, BREEZE캐시 플러그인에서 캐시할 수 있습니다.

SSH ACCESS는 혼자가 아닌 팀이나 그룹 단위로 서버 작업을 할 때만 사용되므로 비활성화가 기본값이며, CORS HEADERS는 요소를 공유 하는 기능인데 이건 활성화 하지 않습니다. 도메인간 요소의 복사는 엘레멘토 페이지 빌더 자체에서 가능하며, 타사 확장 애드온을 사용하는 경우 크롬 브라우저 웹스토어에서 CORS 확장 프로그램을 사용하면 됩니다.

WEBP REDIRECTION은 내가 웹사이트에 업로드 한 JPG 혹은 PNG 확장자의 이미지를 WEBP 확장자를 가진 이미지 주소로 되돌려 보내는 기능입니다. WEBP를 사용하면 이미지의 파일 크기를 확실히 줄일 수 있다는 장점이 있지만 WEBP를 지원하지 않는 환경에서 접속한 사람이라면 사진이 보이지 않게 되는 문제가 있습니다.

JPG나 PNG 파일은 이미지 압축 프로그램으로 사전에 압축해서 업로드 하는 습관을 들이는 게 좋습니다. 플러그인 사용을 권장하지 않지만 보여줘야 할 사진이 5천장 이상으로 엄청나게 많은 사이트라면 WP COMPRESS나 EWWW 사용을 권장합니다. 단, EWWW는 속도가 빠르지만 이미지를 압축하는 과정에서 서버의 CPU를 사용하기 때문에 공유 호스팅에서는 사용하면 안 됩니다.

 

사진12

HTTPS REDIRECTION은 암호화 된 SSL 도메인으로 이동하도록 합니다. 구글에서도 SSL이 적용된 도메인을 권장하고 있습니다. GEO IP는 지역별 방문자를 추척하는 기능이며, 이 기능이 작동하려면 GEO IP를 사용하는 플러그인이 있어야 작동합니다.

보통 통계를 보기 위해 구글 애널리틱스를 사용하기 때문에 활성화 할 필요가 없습니다. XMLRPC ACCESS는 XMLRPC를 요구하는 플러그인이 없다면 XMLRPC.PHP 서버 공격을 막기 위해 무조건 비활성화합니다. XMLRPC.PHP의 문제는 내 사이트를 통해 다른 사이트를 공격할 수 있다는 것입니다.

XMLRPC ACCESS를 요구하는 플러그인은 워드프레스앱과 JETPACK이 있습니다. JETPACK 사용자가 아니고 다른 호스팅을 사용하는 사람이라면 카페24 워드프레스 호스팅에서 사용하는 DISABLE XML-RPC플러그인을 설치하면 되고, JETPACK을 사용하거나 워드프레스 앱을 사용해 모바일에서 글을 쓰는 사람이라면 All In One WP Security 플러그인을 설치한 다음 방화벽(FIREWALL) 옵션에서 XMLRPC에서 PINGBACK 기능 비활성화에만 체크하면 핑백만 차단되어 JETPACK과 워드프레스앱을 계속 사용할 수 있습니다. XMLRPC는 플러그인보다 서버에서 차단하는 게 좋습니다.

 

7. 클라우드웨이즈 서버 세팅 – PHP FPM SETTINGS

 

사진13

APPLICATION SETTINGS의 PHP FPM SETTINGS 탭 입니다. 여기에서는 워드프레스만을 위해 더 디테일한 설정을 할 수 있습니다. php_admin_value[memory_limit]는 256MB 설정이면 충분합니다. 그러나 512MB로 올려야 하는 경우가 있는데 엘레멘토 페이지 빌더를 사용하면서 여기에 더해 다른 엘레멘토 확장 애드온을 추가로 사용하는 사람이 대상입니다.

엘레멘토나 엘레멘토 확장 애드온의 위젯은 전부 서버의 메모리를 사용합니다. 이 경우 서버의 메모리가 부족하거나 메모리 제한이 작으면 위젯이 작동하지 않기 때문에 페이지 빌더로 페이지를 추가하거나 수정하려고 하면 편집 화면이 열리지 않고 계속 로딩중 상태로 있게 됩니다. 메모리 값을 변경했다면 (;) 세미콜론 기호를 꼭 삭제하고 저장하시기 바랍니다.

 

8. 클라우드웨이즈 서버 세팅 – VARNISH SETTINGS

 

사진14

이제 마지막 설정인 VARNISH SETTINGS 탭 입니다. 여기에서는 VARNISH가 캐싱하면 안 되는 내용을 설정할 수 있습니다. 우커머스 쇼핑몰을 사용하는데 코드엠샵의 멤버스 플러그인 시즌2를 사용한다면 코드엠샵의 멤버스 플러그인과 관련된 쿠키가 캐싱되지 않도록 제외시켜야 합니다. 더불어 BREEZE에서도 캐싱이 되지 않도록 예외 처리를 해줘야 합니다.

이 캐싱 제외 설정을 하지 않으면 코드엠샵의 경우 소셜 로그인과 네이버페이 결제 과정에서 문제가 생깁니다. 안타깝게도 이건 한국에서 우커머스를 사용하는데 있어 큰 문제중 하나입니다. 한국형 플러그인은 우커머스의 편리한 모든 기능을 다 사용할 수가 없습니다.

그럼에도 사용하는 이유는 소셜 로그인, 카카오톡 알림 메시지 자동발송, 택배 추적 및 운송장 관련 기능 때문입니다. 한국에서만 사용되는 이런 한국형 기능은 우커머스에서 지원을 하지 않고 네이버나 카카오톡 로그인, 알림도 우커머스와 연동이나 호환이 되지 않습니다. 결제도 마찬가지입니다. 페이팔이나 스트라이프 결제에 익숙하지 않기 때문에 우커머스 자체는 좋은 기능이 많은데도 사용을 못합니다.

물론 우리나라 은행들도 지원을 하지 않습니다. 그러나 해외 사용자를 대상으로 한다면 국내형 플러그인은 필요가 없기 때문에 콘텐츠 판매, 실물 판매, 사용자 데이터, 이메일 마케팅까지 워드프레스와 우커머스의 모든 장점을 전부 사용할 수 있습니다.

반응형
댓글
반응형