AMI에서 EC2 인스턴스를 시작하려고 할 때 일부 인스턴스 유형이 비활성화되는 이유는 무엇입니까?

최종 업데이트 날짜: 2020년 12월 18일

AMI(Amazon 머신 이미지)에서 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스를 시작하려고 합니다. 시작하려는 인스턴스 유형이 비활성화된 이유는 무엇입니까?

간략한 설명

인스턴스 유형 A1, T4g, M6g, C6g 및 R6g는 AWS Graviton 프로세서를 사용합니다. AWS Graviton 프로세서는 x86_64(AMD64) 대신 aarch64(ARM64) 아키텍처를 사용합니다.

ARM64 아키텍처는 x86_64 아키텍처 제품군에서 사용하는 명령과 다른 CPU 명령어 집합을 사용합니다. 이러한 명령 세트는 프로세서로 명령을 보내는 메커니즘을 제공합니다. 소프트웨어 컴파일 중에 사람이 읽을 수 있는 소프트웨어 코드는 CPU 아키텍처와 관련된 CPU 명령어로 변환됩니다. 해당 아키텍처 유형의 모든 CPU는 이러한 CPU 명령을 사용할 수 있습니다. 그러나 한 아키텍처 유형의 CPU는 다른 유형의 명령 집합을 이해할 수 없습니다. 따라서 하나의 아키텍처에서 컴파일된 AMI는 해당 아키텍처 유형의 CPU에서만 실행됩니다.

ARM64 및 x86_64 아키텍처는 다른 명령어 세트를 사용합니다. 즉, x86_64 아키텍처를 사용하여 생성된 EC2 인스턴스 및 AMI는 ARM64 아키텍처를 사용하는 인스턴스와 호환되지 않습니다. 이러한 비호환성으로 인해 인스턴스 유형을 시작하거나 변경할 때 다음 중 하나가 발생합니다.

  • 선택한 EC2 AMI로 Graviton 인스턴스 유형을 시작할 때 시작 마법사에서 새 인스턴스 유형을 비활성화됨으로 표시할 수 있습니다.
  • 현재 새 아키텍처 유형을 사용하고 있지 않은 이미 배포된 EC2 인스턴스의 인스턴스 유형을 변경하면 오류가 발생할 수 있습니다. 다음과 유사한 오류 메시지가 표시됩니다.
    “'m6g.large'는 아키텍처 'x86_64'의 인스턴스 'i-xyz'에 대한 유효한 인스턴스 유형이 아닙니다”.

다른 아키텍처를 사용하려면 먼저 새 EC2 인스턴스 또는 AMI를 생성합니다.

참고: 향상된 네트워킹을 활성화하지 않으면 AMI가 인스턴스 유형과 호환되지 않을 수 있습니다. 자세한 내용은 EC2 인스턴스에서 향상된 네트워킹을 활성화하고 구성하려면 어떻게 해야 하나요?를 참고하십시오.

해결 방법

새 인스턴스 시작

모든 주요 Linux 배포판은 ARM 아키텍처에서 사용할 수 있습니다. ARM 아키텍처를 사용하여 인스턴스를 시작하려면 다음을 수행합니다.

  1. Amazon EC2 콘솔을 엽니다.
  2. 인스턴스 시작, 인스턴스 시작을 선택합니다.
  3. 자주 사용하는 배포판의 ARM 버전에 해당하는 AMI 옆에 있는 64비트(ARM)를 선택한 다음 [선택]을 선택합니다.
  4. 인스턴스 시작을 완료합니다.

인스턴스를 시작한 후에는 EC2 인스턴스처럼 작동합니다.

인스턴스 유형 변경

명령 세트가 다르기 때문에 아키텍처 유형 간에 직접 인스턴스 유형을 변경할 수 없습니다. 시스템을 새 아키텍처로 마이그레이션하려면 다음을 수행합니다.

  1. 원하는 구성의 새 EC2 인스턴스를 시작합니다.
  2. 애플리케이션을 새 EC2 인스턴스로 마이그레이션합니다.

이 문서가 도움이 되었나요?


결제 또는 기술 지원이 필요합니까?