nodejs나 스프링으로 간단한 앱을 만들고 나면 배포할 호스팅이 필요해 집니다. nodejs는 heroku라는 곳에서도 무료로 배포가 가능한데요, 방법은 좀 복잡하고 DB와의 연결이 가끔 해제되어서 금방 죽더라구요. 그래서 찾아본 aws와 google cloud platform! 말로만 듣던 요녀석들에서 1년 무료 서버 대여를 시작해볼까, 하다가 구글에선 제한된 설정으로 평생 무료 호스팅을 만들 수 있다는 글을 봤습니다.
개요 : https://cloud.google.com/free/docs/gcp-free-tier?hl=ko
가입 : https://cloud.google.com/free/?authuser=2&hl=ko
제한된 설정이란, 바로 이▼것▼ 입니다. f1-micro, 특정지역, 30GB…
우선 구글 아이디를 만들고 Google Cloud Platform에 가입합니다.
GCP는 AWS와 달리 결제할 때가 되어도 자동결제로 넘어가지 않습니다
이것저것 대시보드를 구경해보고 Compute Engine, 즉 나만의 리눅스 한대를 만들기 위해 해당 패널로 들어갑니다.
위에서 본 설정대로 새로운 인스턴스를 만들어 줍니다.
이렇게 세팅하고 오른쪽을 보면 예상 가격 아래에 “이번달 f1-micro ..처음 744시간이 무료입니다” 라는 문구가 있습니다. 이 문구가 뜨는 버전이 바로 “항상 무료”가 적용되는 세팅입니다.
즉 항상 월 744시간은 무료란 뜻이죠. 0.6기가 메모리라 작은 앱을 서비스하기엔 나쁘지 않아보입니다. 하지만 만약 배포했을 때 계속 서버가 꺼진다.. 하면 그냥 한칸 올려서 유료중 가장 저렴한 1.7기가 짜리를 쓰면 정상적으로 배포될거에요ㅎㅎ
이제 브라우저 ssh접속을 활용해 내 컴퓨터에 들어가서 시작하면 됩니다.
가장 먼저 해야 할 일은 root 비밀번호를 새로 지정하는것과 root로 접속해서 이것저것 필요한 것을 인스톨 하는 작업입니다. 기본적으로 ftp 접속을 위한 vsftp와 db설치가 있겠고, wget이나 필요하다면 vim도 설치할 수 있겠네요.
비밀번호 설정
# sudo passwd
root로 접속
# su
모두 설치하고 나면 firewall에 포트를 추가할텐데, Google Cloud Platform에서는 내부에서 설정해봐야 1도 안먹히고 패널에서 직접 설정해야 합니다. 내 인스턴스 맨 오른쪽의 땡땡땡을 눌러 ‘네트워크 세부 정보 보기’로 들어가면 방화벽 규칙탭이 있고 여기서 새로 만들면 됩니다. 저는 톰캣 8080, MariaDB 3306, vsftp 21을 추가했습니다.
소소한 설정으로는 ip를 임시가 아니라 고정으로 바꿀 필요가 있고, MariaDB에서 한글이 깨지지 않도록 하기 위해 /etc/my.cnf 파일 하단에 추가해야 합니다.
[client]
default-character-set = utf8
[mysqld]
init_connect = SET collation_connection = utf8_general_ci
init_connect = SET NAMES utf8
character-set-server = utf8
collation-server = utf8_general_ci
[mysqldump]
default-character-set = utf8
[mysql]
default-character-set = utf8