로컬 Docker 환경을 Cafe24 가상 서버에 자동으로 배포하는 방법

0

오늘날의 빠르게 변화하는 개발 환경에서는 배포 자동화가 필수입니다. 특히 로컬에서 개발한 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 도구를 활용하면 배포 자동화가 가능합니다. 이를 통해 개발 속도를 높이고, 서버 관리와 업데이트를 훨씬 더 쉽게 할 수 있습니다. 자동 배포를 통해 서버 운영이 더 간편해지길 바랍니다.

Leave a Reply