Lambda 함수에 대한 명령 세트 아키텍처 구성 - AWS Lambda

Lambda 함수에 대한 명령 세트 아키텍처 구성

Lambda 함수의 명령 세트 아키텍처에 따라 Lambda가 함수를 실행하는 데 사용하는 컴퓨터 프로세서의 유형이 결정됩니다. Lambda는 다음과 같은 명령 세트 아키텍처를 선택할 수 있는 옵션을 제공합니다.

  • arm64 - AWS Graviton2 프로세서에 사용되는 64비트 ARM 아키텍처입니다.

  • x86_64 - x86 기반 프로세서에 사용되는 64비트 x86 아키텍처입니다.

참고

arm64 아키텍처는 대부분의AWS 리전에서 사용할 수 있습니다. 자세한 내용은 AWS Lambda 요금을 참조하세요. 메모리 가격표에서 Arm Price(ARN 가격) 탭을 선택한 다음 Region(리전) 드롭다운 목록을 열어 Lambda에서 arm64를 지원하는 AWS 리전을 확인합니다.

arm64 아키텍처를 사용하여 함수를 생성하는 방법의 예는 AWS Lambda Graviton2 프로세서로 구동되는 AWS 함수를 참조하세요.

arm64 아키텍처를 사용하는 데 따른 이점

arm64 아키텍처(AWS Graviton2 프로세서)를 사용하는 Lambda 함수는 x86_64 아키텍처에서 실행되는 동일한 함수보다 훨씬 우수한 가격 대비 성능을 실현할 수 있습니다. 고성능 컴퓨팅, 비디오 인코딩 및 시뮬레이션 워크로드와 같은 컴퓨팅 집약적 애플리케이션에는 arm64를 사용하는 것이 좋습니다.

Graviton2 CPU는 Neoverse N1 코어를 사용하며 Armv8.2(CRC 및 암호화 확장 포함)와 기타 여러 아키텍처 확장을 지원합니다.

Graviton2는 vCPU당 더 큰 L2 캐시를 제공하여 메모리 읽기 시간을 줄입니다. 따라서 웹 및 모바일 백엔드, 마이크로서비스 및 데이터 처리 시스템의 대기 시간 성능이 향상됩니다. 또한 Graviton2는 향상된 암호화 성능을 제공하며 CPU 기반 기계 학습 추론의 대기 시간을 개선하는 명령 세트를 지원합니다.

AWS Graviton2에 대한 자세한 내용은 AWS Graviton 프로세서를 참조하세요.

arm64 아키텍처로 마이그레이션을 위한 요구 사항

arm64 아키텍처로 마이그레이션할 Lambda 함수를 선택할 때, 원활한 마이그레이션을 위해 함수가 다음 요구 사항을 충족하는지 확인합니다.

  • 함수가 현재 Lambda Amazon Linux 2 런타임을 사용합니다.

  • 배포 패키지에 사용자가 제어하는 오픈 소스 구성 요소 및 소스 코드만 포함되어 있어 사용자가 마이그레이션에 필요한 모든 업데이트를 수행할 수 있습니다.

  • 함수 코드에 서드 파티 종속 구성 요소가 포함된 경우 각 라이브러리 또는 패키지가 arm64 버전을 제공합니다.

arm64 아키텍처와의 함수 코드의 호환성

Lambda 함수 코드는 함수의 명령 세트 아키텍처와 호환되어야 합니다. 함수를 arm64 아키텍처로 마이그레이션하기 전에 현재 함수 코드와 관련해 다음 사항에 유의합니다.

  • 내장된 코드 편집기를 사용하여 함수 코드를 추가한 경우 코드는 수정 없이 두 아키텍처 중 하나에서 실행될 수 있습니다.

  • 함수 코드를 업로드한 경우에는 대상 아키텍처와 호환되는 새 코드를 업로드해야 합니다.

  • 함수가 계층을 사용하는 경우 각 계층이 새로운 아키텍처와 호환되는지 확인합니다. 계층이 호환되지 않는 경우 함수를 편집하여 현재 계층 버전을 호환되는 계층 버전으로 바꿉니다.

  • 함수가 Lambda 확장을 사용하는 경우 각 확장이 새로운 아키텍처와 호환되는지 확인합니다.

  • 함수가 컨테이너 이미지 배포 패키지 유형을 사용하는 경우 함수의 아키텍처와 호환되는 새 컨테이너 이미지를 만들어야 합니다.

arm64 아키텍처로 마이그레이션하는 방법

Lambda 함수를 arm64 아키텍처로 마이그레이션하려면 다음 단계를 수행하는 것이 좋습니다.

  1. 애플리케이션 또는 워크로드의 종속 구성 요소 목록을 작성합니다. 일반적인 종속 구성 요소는 다음과 같습니다.

    • 함수가 사용하는 모든 라이브러리와 패키지

    • 컴파일러, 테스트 제품군, 지속적 통합 및 지속적 전달(CI/CD) 파이프라인, 프로비저닝 도구, 스크립트 등, 함수를 빌드, 배포 및 테스트하는 데 사용하는 도구

    • 프로덕션 환경에서 함수를 모니터링하는 데 사용하는 Lambda 확장 및 서드 파티 도구

  2. 각 종속 구성 요소별로 버전을 확인한 다음 arm64 버전을 사용할 수 있는지 확인합니다.

  3. 새 환경을 빌드하여 애플리케이션을 마이그레이션합니다.

  4. 애플리케이션을 부트스트랩합니다.

  5. 애플리케이션을 테스트하고 디버깅합니다.

  6. arm64 함수의 성능을 테스트합니다. x86_64 버전과 성능을 비교합니다.

  7. arm64 Lambda 함수를 지원하도록 인프라 파이프라인을 업데이트합니다.

  8. 배포를 프로덕션 환경에 스테이징합니다.

    예를 들어 별칭 라우팅 구성을 사용하여 함수의 x86 버전과 arm64 버전 간에 트래픽을 분할하고 성능과 대기 시간을 비교합니다.

Java, Go, .NET 및 Python에 대한 언어별 정보를 포함하여 arm64 아키텍처용 코드 환경을 만드는 방법에 대한 자세한 내용은 AWS Graviton 시작하기 GitHub 리포지토리를 참조하세요.

명령 세트 아키텍처 구성

Lambda 콘솔, AWS SDK, AWS Command Line Interface(AWS CLI) 또는 AWS CloudFormation을 사용하여 신규 및 기존 Lambda 함수의 명령 세트 아키텍처를 구성할 수 있습니다. 다음 단계에 따라 콘솔에서 기존 Lambda 함수의 명령 세트 아키텍처를 변경합니다.

  1. Lambda 콘솔의 함수 페이지를 엽니다.

  2. 명령 세트 아키텍처를 구성할 함수의 이름을 선택합니다.

  3. 기본 코드 탭의 런타임 설정 섹션에서 편집을 선택합니다.

  4. Architecture(아키텍처)에서 함수에 사용할 명령 세트 아키텍처를 선택합니다.

  5. Save(저장)를 선택합니다.

참고

모든 Amazon Linux 2 런타임에서 x86_64 및 ARM CPU 아키텍처를 모두 지원합니다.

Go 1.x와 같이 Amazon Linux 2를 사용하지 않는 런타임은 arm64 아키텍처를 지원하지 않습니다. Go 1.x에서 arm64 아키텍처를 사용하려면 제공된 .al2 런타임에서 함수를 실행합니다. 자세한 내용은 .zip 패키지와 컨테이너 이미지의 배포 지침을 참조하세요.