📄 기술 문서: 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 스크립트로 자동화하여 관리하는 것이 좋습니다. 

배포 자동화 단계에서 이 루틴을 포함시키면, 클라우드 환경에서 오토스케일링 시

발생할 수 있는 식별자 중복 문제를 원천 차단할 수 있습니다.