본문 바로가기

사용자 이미지 생성하기

기존에 생성해놓은 Instance를 선택후 오른쪽 버튼을 클릭후 Image > Create Image를 선택 하면 선택한 Instance의 이미지를 생성해 준한다. 이때 생성된 이미지는 사용자 계정 및 관련 내용이 그대로 이미지화 되어서 추후 동일한 형태의 이미지로 생성이 가능하다.

Instance에서 오른쪽 버튼을 클릭후 Image > Create Image를 하게 되면 Image가 생성이 된다.

이미지 생성 버튼을 클릭하면 Create Image 확인창이 나오고 

Image name / Image description 입력 후 "Create Image" 버튼을 눌러 주면 된다. 

 

이미지 생성시 No reboot 옵션

이때 "No reboot" 체크 박스에 체크를 해주지 않으면 실행중인 Instance가 재부팅 된다. 실제 운영중인 서비스라면 주의 해야 한다. 

재부팅을 하는 이유는 AWS 공식 문서를 확인시 "시스템의 모든 기능을 중지해서 일관된 상태를 유지하기 위해서 인스턴스 전원을 차단후 생성 하도록 유도 하고 있다. 하지만 XFS 와 같은 일부 파일 시스템의 경우 자동으로 동결 / 동결 해제 해서 인스턴스를 재부팅 하지 않고도 안전하게 생성 할수 있다" 라고 나와 있다. 

 

아무래도 시스템의 디스크 사용량이 높지 않고 사용량이 높지 않을 경우 문제 없을 것으로 보인다.

조금더 자세히 이야기 하자면, 이미지 파일 생성시 시스템 파일  또는 파일 및 객체가 재수없게도 해당 이미지 생성시와 맞물린다면 이미지가 불안정하게 구성(파일이 깨질 가능성)될 가능성이 높아서 재부팅을 하는 것을 권고 하는 것으로 보인다. XFS는 해당 이미지 생성시 잠시 멈춘후 이후 다시 동작하는 기능이 동작하기 때문에 문제가 없는 것으로 생각하면 될것 같다. 

AWS Instance Create Image 생성 화면
생성된 이미지는 왼쪽 메뉴의 Images > AMIs 에서 확인 할수 있다.

 

 

ENA Support Problem.

생성한 AMI 이미지를 생성시 아래와 같은 문제가 발생하는 경우가 있다.

 

오래전에 만들어 놓은 Instance에서 생성한 이미지를 통해 새로운 Instance를 생성할 경우 새로운 Generation의 신규 Instance를 생성할수 없다.

위의 캡쳐 화면과 같이 새로운 Generation의 Instance로 사용자가 생성한 이미지로 Instance로 생성이 안되는 현상이 발생할수 있다. 이는 ENA가 해당 Image에 enable 되어 있지 않아서 발생하는 문제이다. 

해결 방법

아래에 나온 조건들을 만족 시킨 Instance의 이미지를 다시 생성후 해당 이미지로 다시 Instance를 생성시 정상적으로 t3 m5 등의 선택되지 않는 이미지들을 선택해서 Instance가 생성이 가능하다. 

ENA란?

Elastic Network Adapter의 약자로 최신의 프로세스에 최적화 해 대역폭 및 성능을 향상(호스트의 프로세스의 부하 감소)시킨 네트워크 아답터 모듈이다. 기본적으로 Amazone Linux 2 / Amazone Linux AMI 2018.03 이상일 경우 자동으로 설치 되어 있다. 

AWS Instance 변경시 사전 조건

  1. No Device names in fstab (use UUID)
    • 디스크 설정시 /etc/fstab에서 mount point설정시 반드시 UUID로 설정되어 있어야 함.
    • cat /etc/fstab 체크
  2. NVMe drivers need to be installed
    • NVMe의 드라이버가 최신 드라이버로 되어 있어야 한다. 
    • sudo yum update 시 자동으로 업데이트 됨.
  3. ENA Drivers need to be installed and enabled

Nitro Instance Checks Script

https://github.com/awslabs/aws-support-tools/blob/master/EC2/NitroInstanceChecks/nitro_check_script.sh

 

awslabs/aws-support-tools

Tools and sample code provided by AWS Premium Support. - awslabs/aws-support-tools

github.com

위의 사전 조건은 아래의 명령어로 바로 체크 가능하다. 

curl https://raw.githubusercontent.com/awslabs/aws-support-tools/master/EC2/NitroInstanceChecks/nitro_check_script.sh | bash

 

Secuof Blog