3. VM 복제하기

3.1 VM 복제 방법

이미 만든것과 동일한 VM을 만드는 방법은 아래와 같습니다.

  1. 앞서와 똑같은 방법으로 VM을 생성하고 설치 과정을 거친다.
    1. 장점: 심플하다.
    2. 단점: 생성할 VM 수가 많아지면 그만큼 공수가 많이 든다.
  2. 이미지로 VM 복제: 이미 만든 VM 기반으로 생성한 이미지로 동일한 VM을 만든다.
    1. 장점: 여러 VM을 만들 때 시간 효율이 좋으며 공수가 줄어든다. 이미지로 VM 상태를 저장(보존)할 수 있다.
    2. 단점: 복제 VM 수가 적은 경우에는 시간 효율이 좋지 않다(이미지 만드는 시간). 유료.

  3. userdata로 동일한 VM 생성: VM을 만드는 과정에서 userdata를 입력하여 필요한 구성을 한다.
    1. 장점: 심플하다. 무료. 생성할 때마다 변경이 가능하다.
    2. 단점: userdata로 만들 수 있는 수준의 한계가 있다. 



3.2 이미지로 VM 복제하기

만들어 둔 VM을 이미지(템플릿)으로 만들 수 있습니다.

VM으로 이미지을 만드는 방법은 두 가지가 있습니다.

  • VM 정지 > ROOT DISK로 이미지 만들기
  • ROOT 디스크로 스냅샷 만들기 > 스냅샷으로 이미지 만들기

즉, 디스크/스냅샷/이미지의 관계는 다음과 같습니다.

   디스크 -> 스냅샷 -> 이미지

이 과정은 VM의 정지와 관계가 없으며, 서비스 중에도 사진 찍듯이(스냅샷) 바로 찍어낼 수 있다는 장점이 있습니다.

스냅샷은 주로 data disk 의 상태를 저장할 때 사용합니다.

 

다만, OS disk의 경우 스냅샷 혹은 이미지를 찍어낼 때 정상 부팅이 가능한지, 변동 사항이 없는지 등 문제 발생을 막기 위해 VM 종료 후 이미지를 생성하도록 권고하고 있습니다.

VM을 종료할 경우, 스냅샷 과정 없이 바로 이미지로 만들 수 있습니다.

 

정리하면, 아래와 같습니다.

 

  • OS Disk
    • 정지했을 때: OS Disk > 이미지
    • 정지하지 않을 때: OS Disk > 스냅샷 > 이미지


  • Data Disk
    • 정지 관계 없이: Data Disk > 스냅샷
    • 이미지는 지원하지 않습니다. (OS 가 아니므로)

 

 


KT Cloud Server > 클라우드 서버리스트 > web1 > Action > 정지 를 수행합니다.

정지가 완료되면, 서버를 선택후 하단의 ROOT Disk를 클릭 > 우측 상단 이미지 생성을 클릭합니다.


이미지 생성이 완료되면, 정지했던 VM을 다시 시작 합니다.

 

ㅇ 이미지(템플릿)으로 VM 만들기

내가 만든 이미지로 VM을 만드는 방법은 두 가지가 있습니다.

  • KT Cloud Server > 클라우드 서버 리스트 > 서버 생성 > 서버종류/운영체제 선택하기 > 이미지 선택 > 나의 이미지
  • KT Cloud Server > 스냅샷/이미지 > 나의 이미지 > 이미지 선택 > 서버 신청

여기서는 첫 번째 방법으로 진행해보겠습니다.


서버명과 호스트명은 앞서 web1로 만들었으므로, 이번에는 web2로 입력합니다.

운영체제 > 나의 이미지에서 앞서 만든 이미지를 선택합니다.

서버 사양을 입력 후 생성합니다.

 

서버가 완성되면 비밀번호를 메모 합니다.

앞서 했던 포트포워딩을 동일하게 수행합니다.
이번에는 공인IP의 10002번 포트와 web2의 22번 포트를 연결합니다.

아래와 같은 구성이 완료 됩니다.




SSH로 공인IP:10002로 접속합니다.
이전에 저장한 비밀번호로 접속 합니다.

httpd 서비스가 켜진 web1을 복제하였으므로, web2도 자동으로 httpd 서비스가 구동중일 것입니다.
httpd 서비스 상태를 확인해봅니다.

서비스가 정상이라면, web2를 구분할 수 있도록 index.html을 변경해봅니다.

echo "안녕하세요 web2 입니다" > /var/www/html/index.html

web2도 포트포워딩을 해 봅니다.
web1이 공인IP의 20001번 포트를 사용하였으므로, 이번엔 20002번 포트로 해 봅니다.

아래와 같은 구성이 완료 됩니다.




웹 브라우저에 아래 두 가지 요청을 해 봅니다.

  • 공인IP:10002
  • 공인IP:20002

 

3.3 userdata로 VM 복제

userdata는 VM이 생성된 이후 OS에서 실행할 스크립트를 미리 전달할 수 있습니다.
VM 생성 단계에서 미리 userdata를 파라미터로 입력하면, VM 생성 완료 후 자동으로 실행할 수 있습니다.

즉, VM이 생성되자마자 HTTPD를 미리 설치한 후 자동으로 기동이 되도록 userdata로 처리가 가능합니다.


userdata를 이용하여 같은 VM인 web3을 만들어보겠습니다.

서버 생성 메뉴에 들어가서 아래와 같이 설정합니다.

  • 서버명: web3
  • 호스트명: web3
  • 위치: KOR-Seoul B
  • 운영체제: CentOS 7.0 64bit
  • 서버: 1vCore 1GB
  • userdata 체크



여기서 중요한점은 userdata를 체크하여 VM 생성 후 실행할 명령들을 입력하는 것입니다.

아래를 복사하여 입력합니다.

yum install -y httpd
echo "안녕하세요. web3입니다." > /var/www/html/index.html
systemctl start httpd.service
systemctl enable httpd.service
systemctl stop firewalld
systemctl disable firewalld


생성이 완료되면 web3의 22번 포트와 80포트를 외부에서 접근 가능하도록 포트포워딩 해 줍니다.
여기서는 공용포트 10003과 20003로 포트포워딩 하겠습니다.

 

 

웹 브라우저에 공인IP:20003 으로 접근하여 web3이 뜨는지 확인합니다.