오늘날의 빠르게 변화하는 개발 환경에서는 배포 자동화가 필수입니다. 특히 로컬에서 개발한 Docker Compose 환경을 Cafe24 가상 서버에 자동으로 배포하는 방법은 시간과 노력을 절약해 줍니다. 이를 통해 쉽게 업데이트할 수 있는 환경을 만들고, 개발과 운영의 효율성을 높일 수 있습니다. 이번 글에서는 이러한 자동 배포 방법을 자세히 알아보겠습니다.
1. SSH 액세스 설정: 첫걸음부터 안전하게
먼저, 로컬 환경에서 Cafe24 서버로 SSH 접속할 수 있도록 설정하는 것이 중요합니다. 이를 통해 서버에 비밀번호 없이 접속할 수 있습니다. 안전하고 신뢰할 수 있는 연결을 통해 서버와 상호작용할 수 있게 되죠.
SSH 키 생성 및 설정 방법
로컬에서 SSH 키를 생성한 후, 이를 서버에 복사하여 접속을 설정합니다. SSH 키가 없다면 다음 명령어로 키를 생성하세요:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
SSH 키가 생성되면 Cafe24 서버에 SSH 키를 복사합니다:
ssh-copy-id your_username@cafe24_server_ip
이렇게 하면 서버에 안전하게 접속할 수 있습니다. 이제부터는 비밀번호 입력 없이 SSH 키로 바로 연결할 수 있죠.
2. Docker Compose 파일 준비: 배포의 핵심
Docker Compose 파일은 애플리케이션의 환경을 설정하고 배포하는 데 중요한 역할을 합니다. 이를 Cafe24 서버로 복사해 배포하는 과정에서 Git 또는 Rsync를 사용할 수 있습니다.
Git을 사용한 배포 (추천)
Git을 사용하여 로컬 프로젝트를 관리하는 경우, Cafe24 서버에서 해당 Git 저장소를 클론하고, 이후 변경사항을 쉽게 반영할 수 있습니다. Git을 사용하면 버전 관리와 배포 과정이 더욱 간편해집니다.
1. Cafe24 서버에 Git 설치
sudo apt update
sudo apt install git
2. 로컬 프로젝트를 GitHub 또는 GitLab에 푸시
git add .
git commit -m "Initial commit"
git push origin main
3. Cafe24 서버에서 프로젝트 클론
git clone https://github.com/yourusername/yourproject.git
cd yourproject
docker-compose up -d
이제 `docker-compose up -d` 명령을 통해 배포가 완료됩니다.
Rsync를 사용한 파일 동기화
Git을 사용하지 않는 경우, Rsync를 이용해 로컬의 프로젝트 파일을 Cafe24 서버로 직접 동기화할 수 있습니다. Rsync는 파일을 동기화하고 전송하는 데 매우 유용한 도구입니다.
rsync -avz ./your-local-project-directory/ your_username@cafe24_server_ip:/home/your_username/your-server-directory/
동기화 후, Cafe24 서버에서 Docker Compose 실행:
ssh your_username@cafe24_server_ip
cd /home/your_username/your-server-directory/
docker-compose up -d
3. 배포 자동화를 위한 CI/CD 도구 사용
배포 자동화를 원한다면 CI/CD 도구를 사용하는 것이 좋습니다. GitHub Actions, GitLab CI/CD, Jenkins 등의 도구를 통해 자동으로 프로젝트를 빌드하고 배포할 수 있습니다. 이는 개발과 운영 사이의 간극을 줄여 좀 더 원활한 워크플로우를 가능하게 합니다.
GitHub Actions를 사용한 자동화 예시
GitHub Actions는 자동 배포를 위한 훌륭한 도구입니다. 다음과 같은 예시를 통해 자동 배포를 설정할 수 있습니다:
name: Deploy to Cafe24 Server
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Set up SSH
uses: webfactory/ssh-agent@v0.5.3
with:
ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}
- name: Rsync files to Cafe24 server
run: |
rsync -avz ./ your_username@cafe24_server_ip:/home/your_username/your-server-directory/
- name: SSH into server and deploy
run: |
ssh your_username@cafe24_server_ip << 'EOF'
cd /home/your_username/your-server-directory/
docker-compose up -d
EOF
이 설정은 main 브랜치에 푸시할 때마다 자동으로 서버에 배포합니다.
4. 추가 고려 사항: Docker 설치 및 포트 열기
배포를 하기 전에 서버에 Docker와 Docker Compose가 설치되어 있어야 합니다. 설치되지 않았다면 아래 명령어로 설치합니다:
sudo apt update
sudo apt install docker.io
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
또한, 방화벽 설정을 통해 외부에서 접속할 수 있도록 포트를 열어야 합니다. 이를 위해서는 아래 명령어를 사용합니다:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
이 과정을 통해 외부에서 애플리케이션에 접근할 수 있게 됩니다.
결론: 간편한 자동 배포로 개발 속도 향상
로컬 Docker 환경을 Cafe24 가상 서버에 자동으로 배포하는 방법을 살펴보았습니다. Git이나 Rsync를 사용한 배포 방식은 효율적이며, CI/CD 도구를 활용하면 배포 자동화가 가능합니다. 이를 통해 개발 속도를 높이고, 서버 관리와 업데이트를 훨씬 더 쉽게 할 수 있습니다. 자동 배포를 통해 서버 운영이 더 간편해지길 바랍니다.