미처 스크린샷을 찍지 못했는데, 서버에 처음 접속하면 아래와 같이 업데이트 가능한 정보에 대해서 미리 알려줍니다. 정기적으로 업데이트 되는 내용들을 반영해주지 않으면, 보안과 관련해서 문제가 될 수 있으니 아래처럼 나오는 메세지를 잘 확인해줘야합니다.

문제는 위의 내용을 보고 보통 sudo apt-get update 와 sudo apt-get upgrade를 통해 업데이트 된 내용들을 적용해줍니다만, 제가 지금 겪은 에러는 sudo apt-get upgrade를 할때 “/usr/sbin/update-info-dir: 3: /etc/default/locale: //: Permission denied dpkg: error processing package install-info (–configure)” 이런식의 에러메세지를 뿜어내며 진행이 안되더군요. 최종적으로는 “E: Sub-process /usr/bin/dpkg returned an error code (1)” 나왔습니다만, 그 전에 installation-info에 문제가 있다는 에러메세지였습니다.

무슨 이유인지 아무리 뒤져도 나오지 않았습니다만, 한가지 껄끄러운 부분이 있었습니다. locale 설정과 관련해서 제가 default 상태가 아니라 한글로 변환해줬던 적이 있는데, 아마도 이게 문제가 되지 않나 싶더군요.

그래서 sudo nano /etc/default/locale 파일을 아래와 같이 다시 수정해주었습니다.

그리고 sudo update-locale 명령으로 변경된 내용을 적용을 해주고 나니, 다시 우분투가 영문으로 나오기 시작했고 sudo apt upgrade 명령도 정상적으로 수행하기 시작했습니다.

우분투 서버에서 워드프레스 사이트를 운영하면서 한글 주소를 사용하다보니 locale 설정도 변경해줘야하는 줄 알고 적용했던 부분인데, 사실상 우분투 ssh 접속시에 나오는 메세지 일부가 한글로 바뀐다는것 이외에 워드프레스 사이트에 영향을 주지는 않습니다. 알면서도 귀찮아서 그냥 놔뒀는데 이런식으로 업그레이드 상황에서 문제가 터질거라고 생각은 못했네요.

여튼 locale 설정을 바꿔줘서 문제는 해결이 됐습니다.

 

SSL 인증서 – 보안에 신경을 써보자

ssl

네이버에서도 보안이 중요하다고 여겨지는 페이지에는 https 프로토콜을 적용하고 있습니다.

SSL 인증이라는 것은 해당 인증이 적용된 사이트가 개인정보와 같이 민감한 내용들을 탈취 당하지 않도록 보호받고 있다는 이야기입니다. 이번에는 호스팅을 사용하던 때와 달리 아마존 웹 서비스로 옮기면서 서버를 직접 세팅할 수 있게 되었기때문에 SSL 인증서를 직접 설치해봤습니다.

특히나 쇼핑몰처럼 개인 정보를 다루는 곳에서는 SSL 인증서를 필수적으로 설치해야하는데요. 비용이 드는 유료 서비스와 공개적으로 무료 배포중인 서비스들이 있습니다. 유료냐 무료냐에 따라 특별히 성능 차이가 있는 것은 크게 없고, 무료 서비스의경우 3개월마다 새롭게 갱신해줘야하는 번거로움이 뒤따른다는 것이 유일한 단점입니다.

제가 SSL 인증서를 설치하면서 참고한 포스팅들은 아래와 같습니다. 이 곳에 기술된 내용들은 모두 아래의 사이트에서 참고하여 저의 환경에 맞춰서 조금씩 수정해서 작성되었습니다만, 좀 더 깊이 있는 이해를 위해서는 아래 사이트들을 참고하시길 바라겠습니다.

  • https://www.xpressengine.com/tip/23021383
  • http://stonerain.tistory.com/119
  • https://blog.lael.be/post/5107
  • https://blog.lael.be/post/73

그리고 이 사이트 – blog.illustudio.co.kr 이 운영되는 환경은 아래와 같습니다.

  • 우분투 리눅스 16.04.1
  • 아파치 2.4.18

1차적으로 해준 작업은 letsencrypt 설치입니다. 우분투 16.04 이상의 버전이라면 아래 명령어로 바로 설치가 가능합니다.

letsencrypt 설치가 끝나고나면 이제 인증서를 다운로드 받을 차례입니다. 아래 명령어를 입력해서 다운받고자하는 사이트를 명시해줘야합니다.

저의 경우엔 절대경로에 워드프레스가 설치되어있는 패스를 지정해주고, 도메인에는 현재 서비스되고있는 blog.illustudio.co.kr이라는 주소를 입력했습니다. 도메인별로 인증서를 따로 받아야하기때문에 -d 옵션을 반복적으로 넣으면서 여러개의 도메인 설치도 가능하다고 합니다만, 저의 경우엔 illustudio.co.kr도 같이 넣으니 에러가 발생해서 하나씩 진행하기로 했습니다.

이메일 주소를 입력받는 확인 창이 뜨고 난 뒤로는 정상 설치가 진행됐을 경우 안내 문구가 출력됩니다만, 에러가 발생하면 에러메세지에 따라 적절한 조치가 필요합니다.

아파치 서버 설정

그리고 https://blog.illustudio.co.kr 이라는 주소가 실질적으로 사용되기 위해 필요한 작업을 apache 설정 파일에서 명시해주도록 합니다. 아래 명령어를 통해 아파치 설정 파일을 열도록 합니다.

‘설정파일’이란 파일 이름은 상황에 따라 다르게 적용되야합니다. default를 그대로 쓰시는 분들도 있겠지만 저의 경우엔 blog로 따로 설정파일을 만들어서 관리해줬습니다. 그리고 아래 내용을 새롭게 추가했습니다.

HTTPS 프로토콜은 443 포트로 들어오기때문에 80번 포트로 들어올 경우 필요한 내용을 기술했더라도 443 포트로 들어올 경우에 어떻게 작동할 것인지 위에 기술한 소스 코드를 추가해주어야 됩니다. 그리고 아래의 명령어를 순서대로 입력해 SSL을 활성화시키고, 수정한 설정파일을 사용할 수 있도록 활성화시키고, 아파치 서버를 재시작해주면 됩니다.

그리고 추가적으로 서버상에서 443포트를 허용해주는 아래 명령어도 입력해줍니다.

위의 명령어를 입력하긴 했습니다만, 만약의 경우를 위해 저는 아마존 웹서비스 상에서 Security Groups 메뉴에서 https 443포트를 허용하는 규칙을 하나 더 추가했습니다.

SSL 적용 상태 확인 및  체크

SSL이 제대로 적용되고 있는지 체크하는 사이트를 통해 점검을 해봤습니다.

그 결과가 아래 스크린샷입니다.

SSL 인증서

정상적으로 모두 검사를 통과했네요

그리고 아래 사이트를 통해서 인증서도 제대로 설치되었고, 보안도 제대로 작동하고 있는지 등급을 체크해볼 수 있습니다.

 

SSL

A 등급이 나왔군요. 다행입니다. 저는 구형브라우저는 배려하지 않습니다.

A등급이 나왔다는건 SSL 인증서가 완벽하게 설치됐으며, 보안이 취약한 구형 브라우저(대표적으로 IE6~8) 에서는 정상작동하지 않는다는 이야기입니다. B등급 정도면 제대로 설치도 됐고, 대부분의 브라우저에서 작동한다는 이야기이고, C등급이 나왔다면 SSL 인증서를 설치하나 마나라는 이야기입니다.

인증서 자동 갱신

그리고 letsencrypt SSL 인증서는 3개월마다 한번씩 인증을 새롭게 해줘야하기때문에 까먹고 있다가는 어렵게 해놓은 인증서가 도루묵이 됩니다. 그렇다고 3개월마다 꼬박꼬박 챙기기도 어려우니 자동으로 매주 월요일 새벽에 업데이트 내용을 확인하고 자동으로 인증하는 코드를 추가했습니다. – https://blog.lael.be/post/5107 4번 챕터 참고

아래 명령어를 입력해 자동으로 수행할 명령을 입력할 수 있는 화면으로 진입합니다. 에디터를 고르라는 창이 뜰 경우 원하는 에디터를 선택하면 됩니다. 저는 2번 nano가 쉽고 편해서 nano로 편집했습니다.

편집 창이 뜨면 아래 소스코드를 맨 하단에 넣어줍니다. 제가 참고한 사이트에서 설명하는 바에 의하면 “월요일 5시 10분에 새로운 인증서가 발급됐는지 확인하고 적용한다음, 5분뒤인  5시 15분에 아파치 서버를 리로드 하는 명령이 순차적으로 진행”되도록 예약해놓는 내용이라고 합니다.

ssl

이런식으로 작성되었습니다.

워드프레스 접속 주소 설정

이제 마지막으로 워드프레스 상에서 설정 > 일반으로 들어가서 아래와 같이 https로 주소를 바꿔주고 저장해주어야합니다.

저의 경우에는 관리자 화면으로 바로 들어갈 수가 없어서 어쩔수 없이 phpmyadmin으로 접속해서 데이터베이스상에서 wp_options 테이블에서 바로 수정해주었습니다. 혹시라도 사이트 주소를 잘못 바꿔서 정상접속이 안될 경우에도 아래 사진과 같이 데이터베이스상에서 직접 수정해주면 잘못 연결된 워드프레스 주소를 정정 할 수 있습니다.

이러한 과정을 모두 마무리하고 웹브라우저에서 https://blog.illustudio.co.kr로 접속하면, 아래와 같이 PC와 모바일 브라우저에서도 보안상 안전한 사이트라고 안내되는걸 확인할 수 있습니다.

ssl

PC용 구글 크롬 브라우저 주소창

ssl

아이폰용 사파리 모바일 브라우저

ssl

아이폰용 구글 크롬 모바일 브라우저

HTTPS 보안 프로토콜로 접속되도록 설정

하지만 보통 사용자들이 입력할때 https://까지 입력하는 경우는 흔치 않습니다. 보통 그냥 blog.illustudio.co.kr을 입력하는 편이 더 자연스럽죠. 이런 경우에는 힘들게 https로 준비된 사이트임에도 불구하고 http로 접속이 됩니다.

그래서 아파치 mod_redirect 를 이용해 http 즉 80번 포트로 접속할 경우 강제로 https 프로토콜로 접속하도록 설정해주는 부분을 추가했습니다. 참고 – http://taesachi.com/?p=6 

아래 화면과 같이 virtualhost 80번 포트 접속시에 리다이렉트 시키도록 설정 된 부분이 맨 밑에 기술 되어있는 것을 확인할 수 있습니다.

이 과정을 모두 마무리 한다음 다시 아파치 서버를 재시작 (sudo service apache2 restart) 시켜주면 별도 입력 없이도 https 보안 프로토콜을 통해 접속하는 것을 확인 할 수 있습니다.

좋은 내용을 공유해주신 분들 덕분에 성공적으로 SSL 설치를 마칠 수 있었습니다. 추후에 다시 설치할 불상사(?)를 겪을지도 몰라 설치 과정을 기록하는 차원에서 포스팅했습니다.

Route531 은 기본적으로 인스턴스2 상에서 생성된 하위폴더를 서브도메인으로 지정해주는 기능이 없다. 현재 이 곳에서 운영되고 있는 블로그 주소를 예로 들면 illustudio.co.kr/blog 를 blog.illustudio.co.kr 로 만들어 주는 기능이 없다는 이야기다.

이것을 가능하게 하려면 일단 Route53에서 blog.illustudio.co.kr 이란 서브도메인을 a 레코드로 생성해주는데, illustudio.co.kr 와 동일한 IP로 연결되도록 설정한다. illustudio.co.kr / blog.illustudio.co.kr  두 주소 모두 같은 장소로 들어오게 만들어주는 것이다.

그리고 이 주소를 식별해서 연결될 폴더를 지정해주는 부분은 아파치 서버에서 세팅한다. 우분투를 기준으로 봤을때 LAMP를 설치했다면 /etc/apache2/sites-available/default.conf 파일에서 설정해줘야한다.

아래 소스를 참고해서 적절하게 필요한 부분을 추가/수정해서 사용할 필요가 있다.

이런 부분을 해결해주고 나면 기본적으로 동일한 아이피로 들어오더라도, 사용자가 어떤 도메인을 입력하고 들어왔느냐에 따라서 아파치 서버가 적절한 위치로 연결해주게 되는 것이다. 위의 내용을 default.conf가 아닌 별도의 파일로 따로 생성해서 작성했다면, 아래의 명령어를 입력해서 작성된 파일이 사용가능한 상태 – enabled 시켜줘야한다. 기본 default.conf 파일을 수정해줬다면, 이미 enable되어있는 상태이니 a2ensite 명령어를 사용할 필요는 없다.

이렇게 아파치 서버에 가상호스트를 설정해주면 서브도메인을 사용할 수 있다. 다시 한 번 정리하자면, 아마존 웹 서비스의 Route53에서는 서브도메인을 지원하지 않기 때문에 우회적인 방법으로 아파치 가상호스트를 이용해서 서브도메인을 사용하는 방법이다.

워드프레스 멀티 사이트를 운영하거나, 별개의 사이트를 다수 운영할 경우에 서브도메인을 할당하고 싶을 때 활용할 수 있는 방법이다.


  1. 아마존에서 제공하는 DNS – Domain Name Service. 쉽게 말해서 도메인 주소를 관리해주는 서비스다. (유료) 
  2. 아마존에서 제공하는 가상의 서버를 인스턴스라고 한다. 아마존의 인프라를 이용해 클릭 한 번으로 서버가 주어지게 된다.  ‘프리티어’ 라는 서비스로 1년간 무료체험을 제공하고 있다. 
git hub

옥토캣 Octocat – 문어다리를 갖고 있는 고양이라는 재미있는 설정의 깃 허브 대표 마스코트.

github – 무엇인가?

github – 깃허브라는 서비스를 이해하기전에 먼저 git이 무엇인지 알아야할 필요가 있습니다. 깃허브는 git을 웹 상에서도 손쉽게 관리할 수 있도록 허브 역할을 하는 곳이기때문입니다. 자세한 소개는 아래 링크를 통해 개념을 파악할 수 있을 겁니다.

다시 git – 깃으로 돌아와 이것에 대해서 이야기를 해보자면, 개발자들 사이에서는 이미 오래 전부터 쓰여오던 “버전관리” 라는 것을 하기 위해 필요한 시스템입니다. 깃에 대해 이미 무척이나 잘 설명된 부분이 있기때문에, 아래 인용된 내용을 참고하겠습니다.

그래픽 디자이너나 웹 디자이너도 버전 관리 시스템(VCS – Version Control System)을 사용할 수 있다. VCS로 이미지나 레이아웃의 버전(변경 이력 혹은 수정 내용)을 관리하는 것은 매우 현명하다. VCS를 사용하면 각 파일을 이전 상태로 되돌릴 수 있고, 프로젝트를 통째로 이전 상태로 되돌릴 수 있고, 시간에 따라 수정 내용을 비교해 볼 수 있고, 누가 문제를 일으켰는지도 추적할 수 있고, 누가 언제 만들어낸 이슈인지도 알 수 있다. VCS를 사용하면 파일을 잃어버리거나 잘못 고쳤을 때도 쉽게 복구할 수 있다. 이런 모든 장점을 큰 노력 없이 이용할 수 있다. -출처  :https://git-scm.com/book/ko/v2/%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0-%EB%B2%84%EC%A0%84-%EA%B4%80%EB%A6%AC%EB%9E%80%3F

버전관리?

간단하게 이야기하자면 많은 디자이너들이 “최종1.psd”,”최종_최종2.psd”와 같은 파일을 수 없이 만들고 무엇이 진짜 최종인지 모를 혼란스러운 상황을 벗어날 수 있는 효율적인 시스템이라는 말입니다.

간혹 오늘내내 진행해왔던 내용보다 어제밤에 잠들기 전에 만든 것이 나은 상황이라고 가정해봅시다. 그런데 어제 파일을 덮어 씌운 바람에 찾을 수가 없는 상황이라고 하면 참 깜깜하겠죠? 버전관리 툴은 이렇게 과거의 작업으로도 돌아갈 수 있는 저장소 역할도 하고 있습니다. 더 쉽게 이야기하면 포토샵 히스토리와도 비슷하다고 볼 수 있겠네요.

물론 구글 클라우드에서도 과거에 저장된 내용들을 리비전이라고 하는 형태로 제공하고 있습니다만, 기간제한이 있습니다. 그나마 그래픽작업을 하는 사람들을 위해서 서비스되던 pixelapse나 layervault와 같은 사이트들도 전부 서비스를 종료한 상태라 이제는 그래픽 작업을 하는 사람들을 위한 버전관리 시스템은 거의 없다고 봐도 무방한 상태인것 같습니다.

물론 깃 허브를 이용해서 버전관리를 할 수도 있습니다만 그래픽 작업 파일들은 개당 보통 수십,수백메가까지 용량이 증가하는 경우가 허다합니다.

그러다보니 깃허브를 비롯한 웹 서비스들을 사용하기에는 좀 버거운 것도 사실입니다. 용량 문제를 차치하고서라도 웹 상으로 수백메가의 데이터가 오간다는게 쉬운 일은 아니거든요.  쾌적하게 바로바로 확인하기가 쉽지 않다는 점이 단점이기도 합니다.

그럼에도 불구하고 버전관리를 하고 싶은 사람들을 위해서 깃 허브에서도 psd파일을 확인할 수 있는 환경을 제공하고 있긴 합니다. 하지만 역시 PSD 파일또한 오픈소스처럼 전부에게 공개되버린다는 단점이 있지요. 이를 막기 위해서 Private – 비공개 계정을 사용하기 위해서는 사용료를 지불해야합니다.

얼마전에 만든 노트북 우분투 서버를 활용해보기로 했습니다

처음에는 gitlab이나 bitbucket 같은 github와 유사한 서비스들을 활용해볼까 생각도 해봤습니다만, 파일 업로드/다운로드가 만만치 않다는걸 느끼고 대안을 찾아보다가 얼마전에 노트북을 우분투 서버로 만들었던 것이 떠올랐습니다. 검색을 해보니 역시 우분투(리눅스)에서 git 서버를 활용할 수 있다는걸 알게 됐습니다.

psychoria.tistory.com

다소 절차가 복잡하긴 합니다만, 고대로 따라해보니 되더군요. 크게 우분투 리눅스 명령어에 대한 지식이 없어도 정확하게 따라 입력하면 결과를 얻을 수 있도록 잘 작성된 튜토리얼입니다.

일단 사용해본 소감은 아무래도 집안에서 사용하는 PC와 노트북 사이에 파일이 오가는 수준이다보니 크게 속도면에서 불만족스러운 상황은 없습니다. 다만 가장 큰 문제로 느껴지는 부분은 용량이라고 봐야겠네요. 기록이 남을때마다 고스란히 고용량의 파일이 계속 노트북과 본 작업 PC에 쌓이고 있기때문에 나중에는 정리를 해주어야할 필요가 있을 것 같습니다.

이런 식으로 중요한 변경사항이 있을때마다 커밋을 해두면 불상사(?)가 벌어졌을때 큰 도움이 됩니다. 방금 전 작업할때만 해도 3개의 포즈를 그려놨는데, 시스템이 불안정해서 다운되면서 레이어 하나가 사라져서 그려놓은 포즈가 날아갔죠. 그런데 이전에 커밋해놓은 내용이 있어서 그 파일을 이용해서 없어진 레이어를 복사해와서 다시 붙여넣고 복구할 수 있었습니다.

생각보다 빠른 시간 안에 버전관리의 장점을 몸소 체험하게 됐네요.

언제나 본업과 동떨어진 다소 쓸 데 없다고 생각되는 것들이 재미있습니다.

저는 서버 관리자도, 개발자도 아닌데 이것 저것 필요한 것들을 검색해서 해결하다보니, 잠자고 있던 노트북이 클라우드 서버도 되어주고 깃 서버도 되어주고 있네요. 잠들어있던 자원을 가치있게 활용하게 되어서 참 기분이 좋습니다. 우분투는 생각보다 무척 매력적이면서 동시에 또 불편하기도 합니다.

실제로 최근에 제가 겪은 바에 의하면, 윈도우에서는 서브라임 텍스트를 활용해서  웹 프론트엔드 개발에 대해서 공부할 겸 이것저것 막힘없이 가능했는데, 우분투로 건너가니 한글입력에서 부딪히더군요. 이런 저런 해결책들을 찾아봤습니다만, 결국 서브라임 텍스트에서 한글 입력이 불가능했습니다. 대안으로 제안된 ATOM을 사용해도 한글은 여전히 입력이 안되서 결국 포기했습니다.

그런데 그것 말고는 gulp를 활용해서  SASS 컴파일과 브라우저 싱크를 통해 실시간으로 변경된 코드를 브라우저에서 보여주는 기능을 구현될 때도 윈도우보다 속도도 더 빠르고 전반적으로 작업 속도면에서 쾌적했어요. 한글 입력만 문제가 안된다면 우분투에서 작업 하고 싶더군요.

전업 개발자도 아닌데 굳이 이런걸 공부하고 익혀야할 필요가 있느냐고 생각하시는 분들도 있겠지만, 어디까지나 권해보는 것이지 필수사항은 아닙니다. 저도 그냥 취미삼아 하는 상황이거든요. 그래도 이런 시스템을 활용하는 것이 친숙하지 않아서 엄두가 안나서 못하는 분들도 꽤 많을거라고 생각됩니다.

컴퓨터로 그림을 그리거나 디자인을 한다고 해도 자신이 다루는 프로그램만 익혀두고 있는 사람들이 많기 때문이죠. 그래도 이런 시스템이 있다는 사실이라도 알아두면 언젠가 주변에서 누군가의 도움으로 배울 수 있는 기회가 생길 수도 있습니다. 그냥 이런게 있다라고만 알아두어도 좋을겁니다.

배우는 과정이 힘들고 시작이 어려울 뿐이지 익혀두면 정말 편리하고 효율적으로 제공되는 환경들이 무척 신기하고 재미있습니다. 기본적으로 단순 반복을 싫어하는 성격이라 이런 것들을 선호하는지도 모르겠습니다.

아무튼 깃에 대해서는 저도 아직 공부하고 있는 중이라 효율적으로 시스템을 제대로 활용하고 있지 못합니다. 더 효율적인 관리가 가능해진다면 추후에 다시 포스팅하도록 하겠습니다.

클라우드 서버 굳이 만들어서 써야하나?

클라우드 서비스는 이미 오래전부터 써왔습니다만, 개인적으로는 구글 클라우드가 가장 편리하다고 생각합니다. 드롭박스가 먼저 두각을 나타냈습니다만, 구글이 빠르게 영역을 확장해나갔죠. 네이버N드라이브는 사용이 불편하고, 다음은 그나마 있던 클라우드 서비스도 종료했으며, 꾸준히 밀고 가고 있긴 하나 iCloud나 One Drive 같은 서비스들은 좀처럼 구글에게 맥을 추지 못하고 있습니다.

그런데 이러한 클라우드 서비스는 무료 제공되는 용량이 금방 꽉 차버리는 경향이 있습니다. 잘 정리하면서 쓴다면 여유롭게 사용할 수 있겠지만, 정리하는 것도 쉬운 일이 아니죠.

그래서 차선책으로 생각해보는 것이 NAS – Network Attached Storage 입니다. 쉽게 이야기하면 네트워크로 접속할 수 있는 외장하드인 셈인데요. 다양한 기능이 추가되면서 서버처럼 만들어서 웹사이트를 돌리기도 하고, 클라우드 기능도 하고, 동영상,음악 스트리밍 등 다양한 역할을 하기때문에 무척 사랑 받고 있습니다.

NAS도 많이 보급되다보니 저렴한 모델들도 있지만, 시놀로지라는 회사에서 나온 제품이 타사보다 비교적 괜찮은 환경을 제공하고 있습니다. 저는 친구덕분에 시놀로지 제품을 써봤었는데요. 하드가 고장나는 바람에 NAS를 안쓰고 구글 드라이브로 옮겨서 클라우드 서비스를 이용하고 있었습니다.

그런데 곧 용량문제에 부딪히게 됐죠. 장황하게 이야기를 펼쳤습니다만, 결국 돈 안들이고 NAS처럼 사용할 수 있는 방법이 없을까 찾다보니 노트북에 우분투를 설치해서 클라우드 서버 삼아 개인용 NAS로 사용할 수 있다는 것을 알게 됐습니다. 마침 작업용으로는 아쉬운 구형 HP 노트북이 놀고 있어서, 이녀석에게 새로운 임무를 부여하기로 했습니다. HP 노트북 특유의 배배꼬인 BIOS 덕분에 삽질하면서 부팅 설정에만  2~3 시간 이상 까먹은게 함정.

우분투

우분투 Ubuntu는 남아프리카 반투어로 ‘네가 있으니 내가 있다’라는 뜻으로 공동체 정신, 인류애를 의미한다고 합니다. 바로 이런 공유 정신에서 비롯된 OS – 운영체제입니다. 윈도우나 MacOSX는 돈을 주고 구매하거나 지정된 하드웨어에서만 돌아가기 때문에 경제적인 부담이 작용합니다만, 마찬가지로 공유정신에서 비롯된 리눅스에 기반을 둔 OS이기 때문에 무료로 이용할 수 있습니다.

다만 윈도우나 MacOSX에 비하면 편의성이 좀 떨어지고 사용자가 직접 많은 부분을 설정해줘야하기 때문에 진입장벽이 높은 것이 단점입니다. 사용자가 쉽게 늘지 않는 이유가 바로 이런 점이죠. 구글에서 우분투를 이용해 알파고를 돌리고 있을 정도로 OS 자체는 훌륭합니다만, 잘 사용하기 위해서는 그만큼 사용자도 훌륭(?)해져야 합니다. 저는 훌륭하지 못해서 맨땅에 헤딩만하고 잘 못 씁니다

우분투는 일단 위의 링크를 통해 다운로드 받을 수 있습니다. 다운로드 받은 우분투 ISO 파일을 UUI라는 프로그램을 이용해서 부팅이 가능한 USB로 만들어 줘야합니다. 우분투에 대한 설치는 따로 설명하지 않겠습니다. 대신 아래 두개의 링크를 확인해보시면 설치하는데 도움이 될 것입니다.

goproprada.tistory.com

우분투에 클라우드 서버를 만들어주자

클라우드 서버 역할을 하기 이전에 우분투를 설치하고나면 LAMP(Linux+Apache+MySql+Php)를 설치해서 서버로 만들어주는 과정이 필요합니다. 검색을 해보면 apache , mysql, php 을 순서대로 설치하는 내용들이 많이 나옵니다만, 저 처럼 초심자에게는 어설프게 따라하다가 꼬이면 돌이킬 수 없어서 다시 눈물을 머금고 우분투를 재설치하는 상황까지 가게 됩니다.

그에 비해 무척 간단한 설치 방법이 있더군요.

위의 명령어를 순서대로 입력하면 아래와 같은 과정으로 진행됩니다.

  1. 업데이트 내용이 있나 확인해서 새로운 업데이트 내용을 반영하고
  2. tasksel을 설치하고
  3. tasksel을 이용해서 lamp server를 설치한다

이런 과정을 통해서 아주 간단하게 LAMP 설치가 끝납니다. 이렇게 해주고나면 일단은 우분투가 서버가 됩니다. 이 상태에서이미 PHP와 같은 웹프로그래밍 언어를 이용해 로컬 환경에서 사이트를 개발해볼 수 있는 상태가 됩니다. 클라우드로 만들기 위해서는 여기서 추가적으로 진행되야할 부분이 있는데요.

바로 DDNS 서비스를 이용해서 유동 IP를 고정적으로 인식해주도록 만들 필요가 있습니다. 보통 IP라는 것은 모뎀을 껐다 켰을때마다 새로 갱신되기 때문에 www.naver.com과 같은 주소처럼 고정되어있지 않습니다. 클라우드 서버는 고정된 주소가 필요하기 때문에 DDNS 서비스를 이용한다고 보면 쉬울 겁니다. DDNS 서비스를 이용하는 방법은 다양합니다만, 저는 iptime 공유기에서 DDNS 설정을 제공하고 있기때문에 그 방법을 활용했습니다.

여기까지 진행하는데만해도 시간이 상당히 소요됐습니다. 초보자의 길은 원래 험란하다고 합니다만, 해도 너무하다 싶고 괜히 내가 이걸 왜했나 싶어지고 있었습니다. 그래도 이왕 건든거 끝을 봐야겠죠.

우분투를 이용해 NAS로 만드는 방법은 NAS용 소프트웨어를 설치하는 방법도 있습니다만, 의외로 삽질하게 만드는 요소가 많다고 하길래 그냥 배제했습니다. 그래서 선택한 것이 OwnCloud에서 파생되었다고 하는 NextCloud 입니다.

사실 국내에서도 OwnCloud 사용자는 간혹 있는 모양인데 NextCloud가 나온지 얼마 안된건지 뭔지 몰라도 국내 사이트 검색결과가 거의 안나오더군요. 그래도 비교적 쉽게 따라해볼 수 있는 튜토리얼이 있어서 이 방법을 따라해보자고 선택했습니다.

위의 링크에서 볼 수 있는 튜토리얼 중 제가 부딪힌 부분은 Step2와 Step3 였습니다. MariaDB를 사용해서 데이터베이스 사용자를 만들고 권한을 부여하는 Step2 와 MariaDB 설정을 바꾸는 Step3 였는데, 다른 부분은 MySql과 기본적으로 베이스가 같아서 막히는 부분이 없었습니다만 유독 Step2와 3가 부딪히더군요. 저는 LAMP로 MySql이 저절로 설치된 상태라서 혹시라도 DB를 두 가지나 깔았다가 충돌일어날까 걱정되서 MariaDB를 설치하지 않았거든요

일단 제가 취한 방법은 phpmyadmin을 설치해서 별도로 사용자를 생성해주는 방법이었습니다. MySQL 명령어를 다룰 줄 아는 분이라면 쉽게 해결 하실 수 있겠습니다만, 저는 SQL 명령어를 다룰 줄 몰라서 직접 화면으로 보고 설정할 수 있는 phpmyadmin 페이지를 이용해 사용자를 만들기로 했습니다. 일단 phpmyadmin을 설치하려면 아래와 같은 명령어를 입력함으로서 간단하게 설치할 수 있습니다.

자세한 내용은 잘 정리된 블로그가 있어서 아래에 링크로 대체합니다.

nomis.tistory.com

2017.07.17 추가 –  위의 링크대로 따라서 설치했는데, 아파치 서버가 정상작동하고 있음에도 불구하고 localhost/phpmyadmin으로 접속되지 않는 경우가 있습니다. 그럴때는 아래 링크의 포스팅을 참고해서 해결 할 수 있습니다.


NextCloud의 튜토리얼중 Redis Cache에 대한 부분은 선택사항이기때문에 굳이 진행하지 않아도 됩니다. 이러한 부분들을 모두 완료하고 나면 비로소 노트북이 클라우드를 제공하게 됩니다. 아까 DDNS에서 설정해준 주소로 웹 브라우저를 이용해 들어가 정상적으로 접속이 되면 성공한 것입니다.

클라우드

접속하면 이런식으로 공유도 할 수 있고, 실시간으로 작업물을 동기화해서 저장할 수 있는 기존의 클라우드 서비스와 유사한 환경이 제공되고 있음을 확인 할 수 있습니다

Nextcloud에서도 구글 클라우드처럼 데스크탑 폴더를 웹 상의 클라우드와 동기화 시킬 수 있는 프로그램을 제공하고 있습니다.

클라우드

민감한 개인정보는 가렸습니다

설치과정이 복잡하고 다소 학습 하기에 어려운 진입장벽이 존재합니다만, 하드디스크가 허용하는 한 이용요금 부담없이 무제한 용량의 클라우드를 이용할 수 있다는 점은 무척이나 메리트가 있습니다.

실제로 얼마나 안정적으로 돌아갈 수 있을지는 조금 더 두고 사용해봐야 알겠지만, 일단 지금까지 첫인상은 무척 깔끔하고 훌륭합니다. 속도도 만족스럽고요. 덕분에 리눅스 우분투하고도 조금 더 친해진 것 같아 기분도 좋네요. 어도비에서 리눅스를 지원하지않는 포토샵과 일러스트레이터 덕분에 윈도우를 포기하기는 어렵겠습니다만, 리눅스도 무척 매력적인 OS이기때문에 클라우드를 핑계로 공부해 볼 수 있어서 좋았습니다. 거의 맨땅에 헤딩하며 16시간 이상 소모한것 같네요…인건비로 따지면 나스 살 돈이네…