1단계: 클라우드 준비
| ← 메인으로 | 다음: 서버 환경 설정 → |
이제 본격적으로 Laravel 배포를 시작해볼까요? 첫 번째 단계는 클라우드 서버를 준비하는 거예요. 생각보다 간단하니 천천히 따라와주세요!
이 단계에서 배울 내용
- Vultr에서 클라우드 서버 만들기
- SSH로 서버에 처음 접속하기
- 서버 초기 설정하기
- 보안을 위한 사용자 생성하기
- 기본 방화벽 설정하기
💡 예상 소요 시간: 20-30분 정도 걸려요.
1.1 Vultr 인스턴스 생성하기
왜 Vultr을 사용할까요?
Vultr은 사용하기 쉽고, 가격이 합리적이며, 한국(서울) 데이터센터를 제공해서 빠른 응답 속도를 얻을 수 있어요. 물론 AWS, DigitalOcean 등 다른 클라우드도 괜찮습니다!
단계별 서버 생성
1단계: Vultr 계정 로그인
- Vultr 웹사이트에 접속해주세요
- 계정이 없다면 회원가입을 먼저 진행하세요 (신용카드 등록 필요)
2단계: 새 인스턴스 생성
- 대시보드에서 “Deploy New Server” 또는 ”+” 버튼 클릭
- “Deploy New Instance” 선택
3단계: 서버 위치 선택
권장 위치:
✅ Seoul, Korea (가장 빠름)
⭐ Tokyo, Japan (서울이 없다면)
💡 팁: 서울 리전이 가장 빠르지만, 때로는 도쿄가 더 저렴할 수 있어요.
4단계: 서버 타입 선택
- Server Type: Cloud Compute (일반적인 용도)
- CPU & Storage Technology: Regular Performance (충분해요)
5단계: 운영체제 선택
Operating System: Ubuntu 25.10 x64
⚠️ 중요: Ubuntu 25.10은 최신 버전이에요. Vultr에서 지원하지 않는다면 Ubuntu 24.04 LTS를 선택하세요. 이 가이드의 모든 명령어는 동일하게 작동합니다.
6단계: 서버 플랜 선택
학습/테스트용 (이 가이드 기준)
Plan: $6/month
- 1 CPU
- 1GB RAM
- 25GB SSD Storage
- 1TB Bandwidth
실제 서비스 운영용 (권장)
Plan: $12/month 이상
- 1 CPU
- 2GB RAM
- 55GB SSD Storage
- 2TB Bandwidth
💰 비용 안내: 1GB RAM은 학습용이에요. 실제 서비스는 최소 2GB를 권장합니다. 방문자가 많아질수록 더 높은 사양이 필요합니다.
7단계: 추가 기능 설정
- IPv6: ✅ 활성화 (선택사항, 미래를 위해)
- Auto Backups: ☐ 선택 안함 (추가 비용 발생)
- SSH Keys: 나중에 설정할게요
8단계: 서버 라벨 설정
Server Hostname & Label: laravel-demo
알아보기 쉬운 이름으로 지어주세요!
9단계: 배포 시작
- “Deploy Now” 버튼 클릭
- 약 1-2분 후 서버 준비 완료!
서버 정보 확인하기
서버가 생성되면 다음 정보를 확인하세요:
✅ IP Address: 123.456.78.90 (예시)
✅ Username: root
✅ Password: (자동 생성된 비밀번호)
🔒 중요: 비밀번호를 안전한 곳에 복사해두세요! 메모장이나 비밀번호 관리 앱에 저장하는 걸 권장합니다.
1.2 서버 초기 접속하기
이제 서버에 처음으로 접속해볼까요? SSH라는 방법을 사용합니다.
SSH가 뭔가요?
SSH는 원격 서버에 안전하게 접속할 수 있는 방법이에요. 마치 내 컴퓨터처럼 서버를 조작할 수 있습니다.
운영체제별 접속 방법
Mac / Linux 사용자
터미널을 열고 다음 명령어를 입력하세요:
# SSH로 서버 접속
ssh root@123.456.78.90
💡 설명:
123.456.78.90을 여러분의 실제 서버 IP 주소로 바꿔주세요!
처음 접속하면 이런 메시지가 나타납니다:
The authenticity of host '123.456.78.90' can't be established.
Are you sure you want to continue connecting (yes/no)?
yes를 입력하고 Enter를 누르세요.
그 다음 비밀번호를 입력하라는 메시지가 나오면, Vultr에서 받은 비밀번호를 입력합니다 (입력할 때 화면에 아무것도 안 보여도 정상이에요).
Windows 사용자
방법 1: PuTTY 사용
- PuTTY 다운로드
- PuTTY 실행
- Host Name에 서버 IP 입력:
123.456.78.90 - Port:
22 - “Open” 클릭
- 비밀번호 입력
방법 2: Windows Terminal (Windows 10/11)
ssh root@123.456.78.90
Mac/Linux와 동일한 방법으로 진행하면 됩니다.
접속 성공!
접속에 성공하면 이런 화면을 볼 수 있어요:
Welcome to Ubuntu 25.10 (GNU/Linux 6.x.x-generic x86_64)
* Documentation: https://help.ubuntu.com
Last login: ...
root@laravel-demo:~#
축하합니다! 🎉 서버에 접속하셨어요.
1.3 시스템 업데이트
새 서버는 항상 먼저 업데이트를 해줘야 해요. 최신 보안 패치와 버그 수정을 받기 위해서죠.
패키지 목록 업데이트
# 시스템 패키지 목록 업데이트
apt update
💡 설명:
apt는 Ubuntu의 패키지 관리자예요update는 설치 가능한 패키지 목록을 최신화합니다
시스템 업그레이드
# 설치된 패키지들을 최신 버전으로 업그레이드
apt upgrade -y
💡
-y옵션은 뭔가요? 모든 설치 확인 질문에 자동으로 “yes”라고 답하는 옵션이에요. 편리하죠?
이 과정은 3-5분 정도 걸릴 수 있어요. 커피 한 잔 하면서 기다려볼까요? ☕
재부팅 필요한지 확인
# 재부팅이 필요한지 확인
ls -l /var/run/reboot-required 2>/dev/null && echo "재부팅이 필요합니다" || echo "재부팅 불필요"
만약 재부팅이 필요하다고 나오면:
# 시스템 재부팅 (선택사항)
reboot
재부팅하면 SSH 연결이 끊어집니다. 약 1분 후 다시 접속하세요.
1.4 필수 유틸리티 설치
기본적으로 필요한 도구들을 먼저 설치해봅시다.
# 기본 유틸리티 한 번에 설치
apt install -y curl wget unzip software-properties-common \
apt-transport-https ca-certificates gnupg lsb-release
각 도구가 하는 일
| 도구 | 용도 |
|---|---|
| curl | 웹에서 파일 다운로드 |
| wget | curl과 비슷한 다운로드 도구 |
| unzip | 압축 파일 풀기 |
| software-properties-common | 저장소 관리 |
| apt-transport-https | HTTPS 저장소 지원 |
| ca-certificates | SSL 인증서 |
| gnupg | 암호화 키 관리 |
| lsb-release | 시스템 정보 확인 |
시스템 정보 확인
설치가 완료되면 시스템 정보를 확인해봅시다:
# 커널 정보 확인
uname -a
# Ubuntu 버전 확인
lsb_release -a
1.5 보안 사용자 생성
root 계정으로 계속 작업하는 건 위험해요. 일반 사용자를 만들어서 사용하는 게 안전합니다.
deploy 사용자 만들기
# 새 사용자 생성
adduser deploy
이런 질문들이 나올 거예요:
New password: (비밀번호 입력)
Retype new password: (비밀번호 다시 입력)
Full Name []: Deploy User (또는 Enter)
Room Number []: (Enter)
Work Phone []: (Enter)
Home Phone []: (Enter)
Other []: (Enter)
Is the information correct? [Y/n] Y
🔒 보안 팁: 강력한 비밀번호를 설정하세요! 최소 12자 이상, 대소문자+숫자+특수문자 조합을 권장합니다.
sudo 권한 부여
# deploy 사용자를 sudo 그룹에 추가
usermod -aG sudo deploy
💡 sudo가 뭔가요?
sudo는 일반 사용자가 관리자 권한이 필요한 명령을 실행할 때 사용하는 명령어예요. 더 안전한 방식입니다.
SSH 키 설정 (권장)
비밀번호 대신 SSH 키로 로그인하면 훨씬 안전해요.
# SSH 디렉토리 생성
mkdir -p /home/deploy/.ssh
# root의 SSH 키를 deploy 사용자에게 복사
cp ~/.ssh/authorized_keys /home/deploy/.ssh/
# 소유권 및 권한 설정
chown -R deploy:deploy /home/deploy/.ssh
chmod 700 /home/deploy/.ssh
chmod 600 /home/deploy/.ssh/authorized_keys
deploy 사용자로 전환
# deploy 사용자로 전환
su - deploy
# 현재 사용자 확인
whoami
# 출력: deploy
# 현재 디렉토리 확인
pwd
# 출력: /home/deploy
이제부터는 deploy 사용자로 작업할 거예요!
💡 root로 돌아가려면:
exit명령어를 입력하면 됩니다.
1.6 방화벽 설정
서버를 외부 공격으로부터 보호하기 위해 방화벽을 설정해봅시다.
UFW 방화벽이란?
UFW(Uncomplicated Firewall)는 Ubuntu의 쉬운 방화벽이에요. 필요한 포트만 열고 나머지는 차단합니다.
기본 정책 설정
# 모든 들어오는 연결 차단 (기본)
sudo ufw default deny incoming
# 모든 나가는 연결 허용 (기본)
sudo ufw default allow outgoing
💡 설명:
- incoming: 외부에서 서버로 들어오는 연결
- outgoing: 서버에서 외부로 나가는 연결
SSH 포트 허용 (매우 중요!)
# SSH 포트 22번 허용 (이걸 안하면 접속이 끊어져요!)
sudo ufw allow ssh
⚠️ 경고: 이 단계를 빼먹으면 SSH 접속이 차단됩니다!
웹서버 포트 허용
# HTTP 포트 80번 허용
sudo ufw allow 80
# HTTPS 포트 443번 허용
sudo ufw allow 443
방화벽 활성화
# UFW 방화벽 활성화
sudo ufw enable
이런 경고가 나타납니다:
Command may disrupt existing ssh connections. Proceed with operation (y|n)?
y를 입력하고 Enter를 누르세요.
방화벽 상태 확인
# 현재 방화벽 규칙 확인
sudo ufw status verbose
출력 결과:
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
To Action From
-- ------ ----
22/tcp ALLOW IN Anywhere
80/tcp ALLOW IN Anywhere
443/tcp ALLOW IN Anywhere
완벽해요! 🎉
1.7 추가 보안 설정 (선택사항)
더 강력한 보안을 원하시나요? 다음 설정들을 추가해보세요.
SSH 포트 변경 (고급)
기본 SSH 포트(22번)를 변경하면 자동화된 공격을 막을 수 있어요.
# SSH 설정 파일 편집
sudo nano /etc/ssh/sshd_config
다음 줄을 찾아서 수정:
# Port 22
를
Port 2222
로 변경
저장하고 나가기: Ctrl + X, Y, Enter
# 새 포트 방화벽 허용
sudo ufw allow 2222
# SSH 재시작
sudo systemctl restart sshd
⚠️ 주의: 다음 접속부터는
ssh -p 2222 deploy@서버IP로 접속해야 합니다!
Fail2Ban 설치 (무차별 대입 공격 방지)
# Fail2Ban 설치
sudo apt install -y fail2ban
# 자동 시작 설정
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
Fail2Ban은 로그인 시도를 여러 번 실패하면 자동으로 IP를 차단해요.
✅ 1단계 완료 체크리스트
모든 단계를 완료하셨나요? 체크리스트로 확인해봅시다!
- Vultr 인스턴스 생성 완료
- SSH로 서버 접속 성공
- 시스템 업데이트 완료 (
apt update && apt upgrade) - 필수 유틸리티 설치 완료
- deploy 사용자 생성 및 sudo 권한 부여
- SSH 키 설정 (권장)
- UFW 방화벽 설정 (SSH, HTTP, HTTPS 포트 허용)
- 방화벽 활성화 확인
- deploy 사용자로 전환 가능
최종 확인 명령어
모든 설정이 제대로 되었는지 확인해봅시다:
# 현재 사용자 확인 (deploy여야 함)
whoami
# 방화벽 상태 확인
sudo ufw status
# 시스템 정보 확인
uname -a
lsb_release -a
문제 해결
문제 1: SSH 접속이 안 돼요
Connection refused 또는 Connection timeout
해결 방법:
- Vultr 대시보드에서 서버가 “Running” 상태인지 확인
- IP 주소를 정확히 입력했는지 확인
- 인터넷 연결 확인
- 방화벽에서 SSH 포트가 열려있는지 확인
문제 2: 비밀번호가 안 먹혀요
Permission denied (publickey,password)
해결 방법:
- 비밀번호 복사/붙여넣기 시 공백이 포함되지 않았는지 확인
- Vultr 웹 콘솔로 접속해서 비밀번호 재설정
- 대소문자 구분 확인
문제 3: apt 명령어가 안 돼요
E: Could not get lock /var/lib/apt/lists/lock
해결 방법:
# 잠금 파일 제거
sudo rm /var/lib/apt/lists/lock
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock*
# dpkg 재구성
sudo dpkg --configure -a
# 다시 업데이트
sudo apt update
문제 4: 방화벽 때문에 SSH가 끊겼어요
해결 방법:
- Vultr 웹 콘솔로 접속
- 다음 명령어 실행:
sudo ufw allow ssh sudo ufw enable
다음 단계
축하합니다! 1단계를 완료하셨어요! 🎉
서버가 준비되었으니 이제 Laravel을 실행하는데 필요한 소프트웨어들을 설치할 차례입니다.
| ← 메인으로 | 다음: 서버 환경 설정 → |