목차
웹사이트를 구성하기 위해서 필수 구성요소들이 필요합니다. 기본적으로 웹사이트를 구성하기 위해 필수적으로 알아야 하는 스택에 대해서 얘기해 보려고 합니다. 대표적인 스택에는 LEMP과 LAMP이 있으며 이에 대한 정리를 해보려고 합니다. 참고로, 해당 글은 가상서버에 라이믹스 CMS를 설치하여 웹사이트를 구성하는데 기반을 두고 있습니다.
웹사이트 구성을 위한 스택(Stack)이란?
스택이란 웹사이트를 구성하기 위해 운영체계, 웹 서버, 데이터베이스, 프로그래밍 언어들의 선택을 의미합니다. 스택에 요소에 해당하는 것들의 선택에 따라 LEMP, LAMP, WAMP 등의 스택명이 정해집니다.
처음 웹사이트를 구축하는 저에게 리눅스의 종류를 선택하는 것 만으로도 곤욕이었습니다. 가상 서버에 몇 번이나 OS를 설치하고 지운질 모르겠습니다. 여러번의 재시도를 통해 최종적으로 LEMP 스택을 선택했으며, 중간 중간 포기도 많았지만 끝까지 안 되는 부분에 대해 그 이유를 찾아가며 라이믹스 설치까지 완료는 했습니다.
OS의 선택(Linux의 'L')
LEMP나 LAMP에서 첫 알파벳은 운영체계를 의미합니다. Linux는 'L', Window는 'W', MacOs는 'M'을 사용합니다.
제가 사용하는 VPS(virtual private server)는 벌처(vultr)입니다. 가상 프라이빗 서버의 경우 일정 금액을 지불하면서 서버 제공업체의 리소스를 사용하는 겁니다. 쉽게 말해 인터넷상에 가상의 컴퓨터를 임대하는 겁니다.
참고) 클라우드 웨이즈와 같은 곳은 가상서버 제공업체가 아닙니다. 벌처와 같은 가상서버를 구입해 사용자가 원하는 설치 및 유지보수까지 하는 중계인 쯤 됩니다. 부동산과 같은 곳이라 생각하면 됩니다. 저렴한 금액으로 가상서버를 구입하기 위해서는 실제 서버를 제공하는 벌처나 AWS에서 직접 구매하셔야 합니다.
컴퓨터를 구입하고 나면 컴퓨터가 운영될 수 있도록 OS를 설치해야 합니다. 보통 노트북을 구입하면 윈도우를 설치하는 이치와 같습니다. 가상서버를 구입하면 각 업체에서 OS 설치를 지원해주지만 윈도우와 같이 라이선스가 필요한 것들은 추가금액을 지불해야 합니다. 안정성면에서도 떨어지게 됩니다.
Local(집에 있는 컴퓨터)로 웹 서버를 구성할 것이 아니라면 흔히들 무료로 설치가 가능한 Linux를 사용할 겁니다. 벌처에서 제공하주는 리눅스만 해도 우분투, Rocky Linux, CentOS 등 종류가 많아 어떤 것을 설치해야 할 지초 보자 입장에서는 선택도 어렵습니다.
저의 경우 우분투를 결정해서 설치했지만 몇몇 명령어 실행 방식만 다르지 기본적으로 리눅스의 사용과 같기 때문에 들어본 것이나, 인터넷에 설명이 많이 나와 있는 것을 선택하는 것이 좋습니다.
웹 서버 선택(Aphach의 'A', (E)nginx의 'E')
웹 서버는 인터넷상에서 특정 페이지 호출을 요청했을 때 그것을 보여주는 역할 쯤으로 생각하시면 됩니다. 예를 들어 인터넷 창에 'www.naver.com'을 입력하면 해당 주소의 웹 서버는 웹 서버에서 구성하고 있는 여러 가지 처리 중에 네이버의 홈페이지를 표출해 줄 겁니다. 이러한 역할을 웹 서버가 합니다.
웹 서버도 여러 가지가 존재하지만 흔히들 aphache나 nginx를 사용하게 됩니다. 리눅스에서 아파치는 'httpd', 엔진엑스는 'nginx'를 설치합니다.
가상서버에 웹 사이트 구성 시 LEMP인지 LAMP인지는 웹 서버를 아파치로 사용할지 Nginx로 사용할 지에 구분됩니다. 아파치의 경우 서버 구성이 많을 수 있기 때문에 서버의 용량을 많이 차지할 수 있습니다. 이러한 단점 때문에 서버 용량을 고려할 때 nginx를 사용하는 것이 좋을 수 있습니다.
DB 명에 따른 'M'과 프로그램 언어에 따른 'P'
리눅스(L)와 nginx(E)를 사용한다는 가정하에 Mysql과 PHP를 사용하게 된다면 LEMP의 스택을 갖게 되는 겁니다.
저의 경우는 웹 사이트를 구축을 위해 라이믹스란 CMS(contents management system)을 사용했습니다. 라이믹스의 권장설치는 LEMP 또는 LAMP였습니다. 보다 가벼운 스택인 LEMP를 선택하는 것이 가상서버를 구성할 때 좋을 수 있습니다.
마치며
웹사이트 구축에 관련된 글은 다른 분들에게 정보를 전달하기 위한 목적보다, 제가 웹사이트를 구축하는 과정을 정리하고 필요한 내용들을 기록하기 위함입니다.
인터넷상에서 얻은 기술적 정보들을 이용하며 웹 사이트를 구축하면서 정보가 정확하지 않아 헤맸던 내용, 주의해야 할 점 등을 기록하며 향후에 재 구축 시에 도움이 되고자 작성된 글이며, 한 번도 시도해 보지 않았던 초보인제가 주워들은 내용을 정리한 것이기 때문에 다소 틀린 내용이 있을 수 있습니다.