ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • VULTR 서버 사용하기
    Server/클라우드서버(AWS,VULTR) 2025. 12. 14. 21:47

    이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

    설정 순서

    • VULTR 회원가입
    • 서버 생성
    • SSH 접속
    • SSH Key 등록
    • 비밀번호 로그인 차단
    • Docker 설치
    • 1GB 서버 안정화 작업 및 Docker 로그 로테이션 설정 (daemon.json)
    • 기타 서버 설정 (방화벽 + 스왑설정)

     

    VULTR 회원가입

    1. vultr.com에 접속

    2. 회원가입

    3. 결제수단 등록

     

    서버 만들기 (인스턴스 생성)

    1. 로그인 후 Products -> Deploy a Instance 클릭

    $5로 ...

     

    2. Operating System

    안정적인 Ubuntu (22.04 x64) 선택

    • 지원 기간 길다 (보안 업데이트 안정적)
    • Docker / nginx / Java / Spring 관련 문서 전부 22.04 기준
    • Vultr, AWS, GCP 실무 서버 표준

     

     


    SSH Keys 설정

    • 비밀번호 로그인 X (보안 취약)
    • SSH 키 로그인 V (표준, 편함)

    STEP 1. 서버 정보 확인

    Vultr 대시보드에서 생성된 서버 클릭 -> 아래 2개 확인

    • Public IPv4
    • Root Password (SSH Key 안 넣고 만들었으면 있음)

    STEP 2. 서버 전속 (처음 1번만 비밀번호)

    로컬 터미널에서:

    $ ssh root@서버IP
    
    # 처음이면
    $ password: Vultr에서 보여준 root 비밀번호 붙여넣기

    STEP 3. 로컬에서 공개키 만들기

    로컬 PC 터미널에서

    # 전부 Enter 눌러도 됨
    $ ssh-keygen -t ed25519
    
    # 공개키 복사
    $ cat ~/.ssh/id_ed25519.pub
    
    # 출력되는 ssh-ed25519 AAAA... 전체 복사

    STEP 4. 접속한 서버에 SSH Key 등록 (이제부터 비밀번호 안 씀)

    서버 안에서

    $ mkdir -p ~/.ssh
    
    # ~/.ssh/authorized_keys 파일에 로컬에서 만든 공개키 붙여넣기
    $ vi ~/.ssh/authorized_keys
    
    # 권한 설정
    $ chmod 700 ~/.ssh
    $ chmod 600 ~/.ssh/authorized_keys

    STEP 5. 비밀번호 로그인 차단 (보안 필수)

    # PasswordAuthentication no으로 변경
    $ vim /etc/ssh/sshd_config
    
    # 저장 후 재시작
    $ systemctl restart ssh

    PasswordAuthentication no 추가

    STEP 6. Docker 설치 (핵심)

    # 도커 설치
    $ apt update
    $ apt install -y docker.io docker-compose
    $ systemctl enable docker
    $ systemctl start docker
    
    # 확인
    $ docker --version
    $ docker-compose --version

    STEP 7. 1GB 서버 필수 메모리 튜닝

    $ sudo vi /etc/docker/daemon.json
    
    # 아래 붙혀넣기
    {
      "log-driver": "json-file",
      "log-opts": {
        "max-size": "10m",
        "max-file": "3"
      }
    }
    
    # docker daemon 재시작
    $ systemctl restart docker
    1. log-driver: "json-file"
      • Docker 기본 로그 방식
      • docker logs 명령 사용 가능
      • 표준 + 가장 안정적
    2. "max-size": "10m"
      • 로그 파일 하나당 최대 10MB
      • 10MB 넘으면 새 파일 생성
      • 무한 증가 방지 핵심 옵션
    3. "max-file": "3"
      • 최대 3개 로그 파일만 유지
      • 즉, 컨테이너 하나당
      • 10MB x 3 = 최대 30MB
    4. 이걸 안 하면 실제로 생기는 일
      • Spring Boot 로그 많음
      • 에러 로그 반복 출력
      • 하루 이틀 지나면 디스크 100%, 컨테이너 정지, SSH 접속도 안 됨
      • $5 서버에서 제일 흔한 사망 원인

     

    기타 서버 설정

    1. 방화벽(UFW) 설정 (5분)

    지금은:

    • 모든 포트 열려 있음
    • 인터넷에 그대로 노출
    • 최소 설정 (SSH/웹만 열고 나머지는 차단)
    # 최소 설정
    $ sudo apt install -y ufw
    $ sudo ufw allow OpenSSH
    $ sudo ufw allow 80
    $ sudo ufw allow 443
    $ sudo ufw enable
    
    # 확인
    $ sudo ufw status

    2. 메모리 보호 (OOM 방지) - 1GB 서버 필수

    Spring Boot 쓰면 OOM Kill 자주 발생함.

    서버 "급사" 방지용 안전벨트

    • 스왑 파일 생성 (2GB 권장)
    $ sudo fallocate -l 2G /swapfile
    $ sudo chmod 600 /swapfile
    $ sudo mkswap /swapfile
    $ sudo swapon /swapfile
    • 부팅 시 자동 적용
    $ echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
    • 확인
    $ free -h

     

    Shell Alias 설정 방법

    # 설정 파일 열기
    $ vi ~/.zshrc
    
    # alias 추가
    alias myserver='ssh root@192.168.1.100'
    
    # 여러개 등록시
    alias dev='ssh ubuntu@dev.example.com'
    alias prod='ssh root@10.0.0.50'
    alias db='ssh admin@192.168.1.200 -p 2222'
    
    # 설정 적용
    $ source ~/.zshrc
    
    # 사용
    $ myserver

    이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

    댓글

Designed by Tistory.