Lambda 함수의 명령어 집합 아키텍처 선택 및 구성하기

Lambda 함수의 명령어 집합 아키텍처 선택 및 구성하기

Lambda 함수의 명령어 집합 아키텍처(instruction set architecture)는 Lambda가 함수를 실행할 때 사용하는 컴퓨터 프로세서의 종류를 결정합니다. Lambda는 다음과 같은 명령어 집합 아키텍처 선택지를 제공해요:

출처: AWS Lambda 개발자 안내서

본문

  • arm64 – AWS Graviton2 프로세서용 64비트 ARM 아키텍처입니다.
  • x86_64 – x86 기반 프로세서용 64비트 x86 아키텍처입니다.

참고

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

arm64 아키텍처로 함수를 만드는 예시는 AWS Graviton2 프로세서로 구동되는 AWS Lambda 함수를 참고하세요.

Topics

arm64 아키텍처 사용의 장점

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

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

Graviton2는 vCPU당 더 큰 L2 캐시를 제공해 메모리 읽기 시간을 줄이며, 이는 웹·모바일 백엔드, 마이크로서비스, 데이터 처리 시스템의 지연 시간 성능을 개선합니다. Graviton2는 또한 개선된 암호화 성능을 제공하고, CPU 기반 머신러닝 추론의 지연 시간을 개선하는 명령어 집합을 지원합니다.

AWS Graviton2에 대한 자세한 내용은 AWS Graviton Processor를 참고하세요.

arm64 아키텍처 마이그레이션 요구 사항

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

  • 배포 패키지에 오픈소스 구성 요소와 여러분이 관리하는 소스 코드만 포함되어 있어 마이그레이션에 필요한 업데이트를 할 수 있어야 합니다.
  • 함수 코드에 서드파티 의존성이 있다면 각 라이브러리 또는 패키지가 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 아키텍처용 코드 환경을 만드는 방법은 Getting started with AWS Graviton GitHub 저장소를 참고하세요.

명령어 집합 아키텍처 구성하기

새 Lambda 함수와 기존 Lambda 함수의 명령어 집합 아키텍처는 Lambda 콘솔, AWS SDK, AWS Command Line Interface(AWS CLI), 또는 CloudFormation으로 구성할 수 있어요. 콘솔에서 기존 Lambda 함수의 명령어 집합 아키텍처를 변경하려면 다음 단계를 따르세요.

  1. Lambda 콘솔의 Functions 페이지를 엽니다.
  2. 명령어 집합 아키텍처를 구성할 함수의 이름을 선택합니다.
  3. 기본 Code 탭의 Runtime settings(런타임 설정) 섹션에서 Edit(편집)을 선택합니다.
  4. Architecture 아래에서 함수가 사용할 명령어 집합 아키텍처를 선택합니다.
  5. Save(저장)을 선택합니다.

더 알아보기 (Learn more)