📄 기술 문서: Ubuntu Server 24.04 LTS 골든 이미지 제작 가이드
본 문서는 Ubuntu Server 24.04 LTS 환경에서 클론(Clone) 배포를 위한 템플릿 이미지를 제작할 때,
시스템 식별자 충돌을 방지하고 각 인스턴스의 독립성을 보장하기 위한 운영 루틴을 정리합니다.
1. 개요 (Overview)
서버를 여러 대로 클론하는 순간, machine-id, hostname, SSH Host Key 등이 겹치면서
네트워크 장애나 보안 이슈가 발생합니다. 핵심은 **"무엇을 비우고, 무엇을 재생성할 것인가"**를
결정하는 것입니다.
2. 현재 상태 확인
템플릿화 작업 전, 현재 인스턴스의 cloud-init 상태를 점검합니다.
# cloud-init 상태 확인
cloud-init status --long || true cloud-id || true
# 인스턴스 메타데이터 흔적 확인
sudo ls -la /var/lib/cloud/ sudo cat /var/lib/cloud/data/instance-id 2>/dev/null || true
3. 클린업 루틴 (Cleanup Routine)
① cloud-init 초기화
다음 부팅 시 첫 부팅처럼 동작하도록 상태를 정리합니다. sudo cloud-init clean --logs --seed
② 머신 ID(machine-id) 재생성 설정
machine-id가 겹치면 DHCP 및 로그 시스템에서 식별 문제가 생기므로 반드시 비워야 합니다.
sudo truncate -s 0 /etc/machine-id sudo rm -f /var/lib/dbus/machine-id
③ 네트워크 및 호스트네임 정리
sudo hostnamectl set-hostname template-ubuntu2404 sudo cat /etc/netplan/*.yaml
4. 보안 및 SSH 설정
모든 인스턴스가 고유한 SSH 키를 가지도록 기존 키를 삭제합니다. (재생성 정책)
sudo rm -f /etc/ssh/ssh_host_*_key /etc/ssh/ssh_host_*_key.pub
5. 최종 이미지 최적화
불필요한 캐시와 기록을 지워 이미지 용량을 최적화합니다.
sudo apt-get clean
sudo rm -rf /var/lib/apt/lists/*
sudo sh -c 'cat /dev/null > /root/.bash_history || true' sync
💡 PHP 프로그래머의 조언
위의 모든 과정은 Bash 스크립트로 자동화하여 관리하는 것이 좋습니다.
배포 자동화 단계에서 이 루틴을 포함시키면, 클라우드 환경에서 오토스케일링 시
발생할 수 있는 식별자 중복 문제를 원천 차단할 수 있습니다.