블로그를 활성화하기 위해 항상 컴퓨터를 켜둘 순 없죠자취생에게 전기비는 치명타에요. 퍼블릭 클라우드, GCPgoogle cloud platform
에서 구동해볼게요.
GCP는 처음 시작 시 22년 8월 기준, 90일간의 300달러 무료 계정을 제공해요.
아직 이 단계에서는 블로그를 본격적으로 운영하지는 않는 단계이기 때문에 테스트용으로 최소한의 스펙으로 구동했어요.
AWS
의 EC2
와 동일한 인스턴스라 보시면 되요. 저는 이걸로 테스트해볼게요.
스펙은 아래와 같아요.
💡 테스트용 인스턴스 스펙
- 리전 : us-west1(오리건)
- 영역 : us-west4-b
- 시리즈 : N1
- 머신 유형 : f1-micro(vCPU 1개, 614MB 메모리)
- 방화벽 : HTTP/HTTPS 트래픽 허용
- 기타 : 기본 값
가장 저렴한 비용으로 사용 가능한 리전은 us-central1
, us-west1
등이 있어요.
이걸 구분하는건 우측에 낮은 CO2가 표시되어 있어요.
인스턴스 시리즈 및 유형 중 가장 스펙이 낮은 것은 N1
, . f1-micro
이었어요. 그렇게 하면 월 $5.39 달러밖에 안되요
시간이 지나니, 해당 스펙으로 돌리는데 한계가 있어, g1-small로 변경했어요.
다양한 인스턴스를 시도하기 위해 무료 비용을 아껴보기로 했어요.
GCP는 웹 콘솔을 통해 접속할 수 있긴 해요. 하지만 이러면 너무 느려요 ㅠ.
그래서, 저는 SSH 키를 만들어 접속하기로 했어요.
# 옵션 설명
# -t [타입명] : key 생성 type 선택
# -b [숫자] : type 의 bytes 설정, rsa 암호화 방식은 기본 2048인데 4096으로 설정 (보다 안전함)
# -f [파일명] : 생성할 key의 이름
# -C [내용] : 주석 입력, gcp의 메일 계정을 입력
ssh-keygen -t rsa -b 4096 -f gcp_rsa_4096 -C "gcp메일주소"
해당 명령어를 치면 public/private key가 생성되요.
Key 생성 간 Enter passpharase라고 key를 사용해서 ssh 접속 시 입력할 패스워드를 지정하라는 말나와요. 전 그냥 enter 치고 넘겼어요.
결과적으로 이는 password를 따로 치지 않고도 접속할 수 있게 되요.
여기서 .pub
인 public key 값을 GCP의 메타데이터에 넣어요.
참고로 저는 Mac 유저라 cat
명령어로 텍스트를 확인하고 복붙했어요.
여기까지 했다고 끝이 아니에요. 이제 방화벽도 설정해줘야 해요.
원래라면 매우 정교하게 설정해야 겠지만, 단순 테스트 용도로 사용되고 있으므로, 모든 IP에서 특정 포트 번호, 8080을 개방 시켜볼게요.
[VPC 네트워크]/[방화벽]
탭에서 설정을 추가하면 되요.
소스 IPv4 범위
를 0.0.0.0/0
로 주고, 지정된 프로토콜 및 포트를 TCP, 8080으로 지정해줘요.
이로써, GCP에서 8080으로 접속할 수 있게 되요.
# ssh 접속
sudo ssh -i {private key 경로} {생성 시 ID}@{GCP 외부 IP}
GCP
인스턴스가 처음 실행되었을 때 sudo apt udpate
를 수행하고 git
을 설치해요.
sudo apt update
sudo apt-get install git
메시지 서버 프로젝트를 git clone
을 통해 불러왔어요.
이번 프로젝트는 docker
환경에 mongoDB
를 설치해서 실행했어요. docker
를 설치하고 mongoDB
컨테이너를 실행해줍니다.
sudo apt install docker.io
docker run -p 27017:27017 --name mongo_boot -d mongo
그 다음에 maven
을 통해 실행시켜요. 그전에 자바 설치는 여기를 참고하고 설치해주시면 되요.
몬가 기네요 ㅎㅎ
정상 동작하는 것을 확인했어요예이~!.
이것으로 public cloud 환경에서 spring Boot+mongoDB를 활용한 기본 프로젝트를 만들었어요...!
다음에 무엇을 할지 기대해주세요 ㅎㅎ
행궁동 데이터 엔지니어님 블로그 - [GCP] Google Cloud Platform SSH 접속하기 (브라우저 사용 X)