본문 바로가기

개발/개발 관련 Contents

피같은 내 돈을 아끼기 위한 무료 서버 구축 1

반응형

 

1. Docker 개념 & 무료 서버 구축 (오늘 작성할 글)

2. AWS Free Tier vs. 개인 서버, 어디서 배포하는 게 좋을까?

3. Docker Compose로 Node.js + DB + 프론트엔드 쉽게 배포하는 법

4. 무료 클라우드 DB(MongoDB Atlas) vs. 로컬 DB 운영 전략

5. AdSense & 무료 서버에서 광고 수익화 가능한가?

 

💡 [1편] Docker 개념 & 무료 서버 구축

 

1️⃣ 무료 서버 배포가 필요한 이유

 

개인 프로젝트나 사이드 프로젝트를 만들다 보면, 서버를 배포할 때 가장 먼저 드는 고민이 비용 문제다.

무료로 배포하고 싶은데 어디서 해야 하지?

AWS Free Tier를 써야 할까? 내 남는 노트북을 활용해야 할까?

Docker를 사용하면 무료 서버 운영이 더 쉬워질까?

 

이런 고민을 해결하기 위해, 이번 시리즈에서는 돈을 아끼면서도 효율적인 서버 운영 전략을 공유해보려고 한다.

오늘은 첫 번째 주제로, Docker를 활용한 무료 서버 구축 방법에 대해 다뤄보자.

 

2️⃣ Docker란? 왜 서버 구축에 사용할까?

 

🐳 Docker의 핵심 개념

 

Docker는 애플리케이션 실행 환경을 컨테이너로 관리하는 기술이다.

즉, 어떤 환경에서든 동일하게 실행할 수 있도록 패키징하는 도구라고 보면 된다.

 

🔹 Docker가 필요한 이유

서버를 바꾸더라도 환경 설정을 다시 하지 않아도 됨

개발 환경과 배포 환경을 동일하게 유지 가능

로컬, 클라우드 어디서든 빠르게 배포 가능

여러 개의 서비스(백엔드, 프론트엔드, DB)를 한 번에 실행 가능

 

3️⃣ 무료 서버 배포를 위한 Docker 활용법

오늘은 Docker를 활용해서, 개인 노트북에서 서버를 운영하는 방법을 다룬다.

 

 

4️⃣ Mac에서 Docker로 무료 서버 구축하기

 

🔹 사전 준비

 

1. Docker & Docker Compose 설치

 

# Mac용 Docker 설치 (Homebrew)
brew install --cask docker

 

2. 프로젝트 구조 예시

/your-project
├── client (React)
├── server (Express.js)
├── docker-compose.yml

 

 

3. Docker Compose 설정 (docker-compose.yml)

version: "3"
services:
  mongodb:
    image: mongo
    container_name: your-project-mongo
    restart: always
    ports:
      - "27017:27017"
    environment:
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: example
    volumes:
      - mongo_data:/data/db

  server:
    build: ./server
    container_name: your-project-server
    restart: always
    ports:
      - "5001:5001"
    depends_on:
      - mongodb
    environment:
      MONGO_URI: "mongodb://root:example@mongodb:27017"
    volumes:
      - ./server:/app
    command: ["node", "index.js"]

  client:
    build: ./client
    container_name: your-project-client
    restart: always
    ports:
      - "3000:3000"
    depends_on:
      - server
    volumes:
      - ./client:/app
    stdin_open: true
    tty: true

volumes:
  mongo_data:

 

이 설정을 통해, 한 줄의 명령어로 서버, 클라이언트, 데이터베이스까지 실행할 수 있다.

 

4. 서버 실행

docker-compose up -d

 

-d 옵션은 백그라운드 실행을 의미한다.

이 명령어를 실행하면 서버, 클라이언트, MongoDB가 자동으로 실행된다.

 

5. 접속 확인

브라우저에서 http://localhost:3000 접속

API 서버 확인: http://localhost:5001

DB 상태 확인: docker ps

 

 

5️⃣ MacBook vs AWS Free Tier, 어디서 운영할까?

 

MacBook (i5, 8GB RAM)에서 직접 운영하면 훨씬 안정적 (제 남는 맥북)

EC2 Free Tier는 성능 부족으로 운영이 어려움 (1GB RAM 한계)

Docker로 개발하면 나중에 클라우드로 쉽게 이전 가능!

 

🔹 추천 전략

MVP 단계 → MacBook에서 Docker로 실행 (완전 무료)

트래픽 증가 → AWS, Railway, Render 같은 클라우드로 이전

데이터베이스 → MongoDB Atlas 같은 클라우드 DB 고려

 

✅ MacBook에서 운영하는 것이 더 좋은 이유

 

RAM 8GB 이상이라 AWS Free Tier(1GB)보다 성능이 좋음

Docker 사용 시 서버, DB까지 한 번에 실행 가능

퍼블릭 IP가 필요하지 않다면 완전 무료

 

❌ AWS Free Tier의 단점

 

메모리 1GB 제한으로 서버가 자주 다운될 가능성 있음

1년 후 과금 시작

무료 티어 내에서는 성능이 매우 제한적

 

🔥 결론: 무료 서버 운영, 남는 노트북 + Docker가 답이다!

 

💡 무료로 서버를 운영하려면 MacBook에서 Docker로 실행하는 것이 가장 안정적이고 효율적이다.

💡 Docker Compose를 활용하면 프론트엔드, 백엔드, DB까지 한 번에 실행 가능

💡 나중에 트래픽이 증가하면, 클라우드 서버로 손쉽게 이전할 수 있음!

 

⏭️ 다음 편 예고

 

다음 글에서는 **“AWS Free Tier vs. 개인 서버, 어디서 배포하는 게 좋을까?”**를 주제로 다룰 예정이다.

무료 서버 배포를 고민하는 개발자라면 다음 글도 기대해 보자.

반응형