안녕하세요, 클라우드 기술 지원팀입니다.

많이들 궁금해 하시는 인스턴스 유형 변경 방법에 대해 소개해드리고자 합니다.


1. 요구 사항


인스턴스 유형을 변경하기 위한 사전 요구 사항은 아래와 같습니다.
  • 인스턴스 구성과 호환되는 인스턴스 유형을 선택해야합니다. 원하는 인스턴스 유형이 보유한 인스턴스 구성과 호환되지 않는 경우 필요한 인스턴스 유형을 사용하여 애플리케이션을 새 인스턴스로 마이그레이션해야합니다.
  • 인스턴스 유형을 변경하려면 인스턴스가 stopped상태 여야합니다 .
  • 최대 절전 모드가 활성화 된 경우 인스턴스 크기를 조정할 수 없습니다.
  • 인스턴스에 대한 루트 디바이스가 EBS 볼륨인 경우, 인스턴스 유형을 변경하여 인스턴스의 크기를 변경할 수 있습니다.
따라서 반드시 인스턴스를 stop 시킨 후 유형을 변경시켜주셔야 합니다.
또한 인스턴스 유형 변경을 위해서는 현재 인스턴스 유형과 변경하시고자 하는 새 인스턴스 유형이 호환되는 경우에만 인스턴스 크기를 조정할 수 있습니다.
인스턴스 유형 변경에 대한 요구 사항과 방법에 대해서는 아래 링크에 자세히 나와있으니 참고 부탁드립니다.
# 1. 인스턴스 유형 변경

2. 인스턴스 유형 별 변경
구체적으로 변경하시고자 하시는 인스턴스 유형 케이스에 관해 답변드리도록 하겠습니다.
1 .T2 → T3 / r4 -> r5 / m4 -> m5
T3, r5, m5 모두 Nitro 기반 유형이므로 인스턴스 T2, r4, m4 인스턴스의 유형과 다릅니다.
따라서 변경 전에 ENA 드라이버/모듈이 반드시 설치되었는지 확인해야 합니다. 이는 OS가 네트워킹을 불러올 수 있도록 Nitro 시스템에 필요합니다.
최신 AWS AMI를 사용하는 경우 이러한 드라이버는 이미 사전 설치되어 있으며 두 인스턴스 유형으로 실행할 준비가 되어 있습니다.
만약 사용자 지정 AMI를 사용하신다면 인스턴스 유형을 변경하기 전에 아래 내용을 확인해야합니다.
✅ NVMe 드라이버
: AWS NVMe 드라이버는 성능 향상을 위해 Nitro 시스템에서 NVMe 블록 디바이스로 노출되는 EBS 및 SSD 인스턴스 스토어 볼륨과 상호 작용하는 데 사용됩니다.
✅ ENA 드라이버
: ENA 드라이버는 네트워크 어댑터 드라이버에 사용됩니다.
✅ ENA 속성도 인스턴스에 설정되어야합니다.
다시 한 번 강조드리지만, ENA가 활성화 되어 있고, Linux 인스턴스가 Nitro 기반 인스턴스 모듈 및 파일 시스템 탑재 요구 사항을 충족하는지 확인하셔야 합니다.
아래에 인스턴스 유형을 변경하는 방법에 대해 안내드리고자 합니다.
주의 사항
📌 사용 중인 Linux 배포판(Amazon Linux, Ubuntu 등)에 따라 단계가 약간 다를 수 있습니다
📌 반드시 인스턴스 변경전에 AMI/Snapshots of the instance(AMI/스냅샷)을 생성하시고 TEST 후에 적용하시길 바랍니다.
  1. ENA가 활성화 되었는지 확인
    먼저 ENA가 활성화 되어 있는지 확인하시려면 아래 링크의 인스턴스 속성(enaSupport) 항목의 지침을 따라주십시오.
    만약 활성화 되어있다면, 인스턴스를 종료하고 인스턴스의 유형을 변경해주시면 됩니다.
  2. 인스턴스를 중지합니다.
  3. 로컬 컴퓨터에서 다음 명령어를 사용하여 인스턴스에 대한 ENA 지원을 활성화 하십시오.
    $ aws ec2 modify-instance-attribute --instance-id <INSTANCE_ID> --ena-support


     
    
    이 단계를 완료하면 인스턴스에 대해 ENA 지원을 사용할 수 있으며 그런 다음 Nitro 기반 인스턴스 유형(T3, r5, m5)으로 업그레이드 할 수 있습니다.
위의 방법은 아래 링크에 자세히 설명되어 있으니 참고하셔서 진행해주시면 됩니다.

# 2. Linux 인스턴스에서 ENA(Elastic Network Adapter) 로 향상된 네트워킹 활성화

추가적으로 ENA, NVME가 설치되어 있고 /etc/fstab이 올바르게 구성되었는지 확인하는 데 사용할 수 있는 NitroInstanceChecks 스크립트가 있습니다.
NitroInstanceChecks 스크립트는 인스턴스를 검사하고 유형 변경에 필요한 요구 사항의 통과/실패 상태를 제공합니다.
이 스크립트를 사용하셔서 유형 변경 전에 확인하시는 것을 추천드립니다
  1. 아래의 git 링크에서 NitroInstanceChecks를 다운받습니다.
  2. 인스턴스에 스크립트를 다운로드하고 실행 가능하도록 권한을 변경해줍니다.
    # chmod +x nitro_check_script.sh 


  3. 루트 사용자 또는 sudo로 스크립트를 실행합니다.
    # sudo ./nitro_check_script.sh 


  4. 프롬프트에서 y 또는 n(또는 No)을 입력합니다. /etc/fstab 파일을 재생성하고 수정하여 각 파티션의 디바이스 이름을 UUID로 대체하려면 y를 입력합니다. 원본 fstab 파일은 /etc/fstab.backup.$(date +%F-%H:%M:%S)로 저장됩니다.
  5. 성공적인 출력은 다음과 같습니다.
    ------------------------------------------------ OK  NVMe Module is installed and available on your instance OK  ENA Module is installed and available on your instance OK  fstab file looks fine and does not contain any device names. 


  6. 모든 요구 사항이 충족되었으면 인스턴스를 Nitro 기반 인스턴스 유형으로 변경합니다.
해당 스크립트를 이용하는 방법은 아래 링크에 자세히 안내되어 있습니다.

# 3. Linux 인스턴스의 유형을 Nitro 기반 인스턴스 유형으로 변경한 후에 부팅이 되지 않는 이유는 무엇입니까?

2️⃣ p2 -> p3
해당 인스턴스 타입은 배포판에 따라 방법이 다를 수 있습니다.
CentOS, Red Hat Enterprise Linux, Ubuntu, Debian 배포판을 사용하는 경우 특정 NVIDIA 드라이버를 사용하지 않도록 설정해야 합니다.
아래 링크의 g4 타입 인스턴스라고 쓰여 있는 부분을 참고하여주시면 됩니다.
# 4. Linux 인스턴스 에 NVIDIA 드라이버 설치

3. 참고 사항
추가적으로 인스턴스 변경 시 참고하실 점을 안내드리도록 하겠습니다.
  1. 인스턴스 유형 변경을 하시면 인스턴스를 다른 호스트 머신으로 이동시키지만, 인스턴스 ID 는 변경되지 않습니다.
  2. 인스턴스에 퍼블릭 IPv4 주소가 있는 경우 주소를 해제하고 새 퍼블릭 IPv4 주소를 제공합니다. 인스턴스는 프라이빗 IPv4 주소와 모든 탄력적 IP 주소(EIP), IPv6 주소를 유지합니다.
  3. 인스턴스가 Auto Scaling 그룹에 있는 경우, Amazon EC2 Auto Scaling 서비스는 중단된 인스턴스를 비정상으로 간주해 이를 종료하고 대체 인스턴스를 시작합니다. 따라서 인스턴스 유형을 변경하는 동안 Auto Scaling 프로세스를 일시 중지 하시는 것을 추천드립니다.

추가적인 문의 사항이나 궁금하신 점이 있으시다면 언제든지 기술 지원 센터 포털에 질문 남겨주시길 부탁드립니다 :)