

# Lambda 함수에 대한 명령 세트 아키텍처의 선택 및 구성
<a name="foundation-arch"></a>

 Lambda 함수의 *명령 세트 아키텍처*에 따라 Lambda가 함수를 실행하는 데 사용하는 컴퓨터 프로세서의 유형이 결정됩니다. Lambda는 다음과 같은 명령 세트 아키텍처를 선택할 수 있는 옵션을 제공합니다.
+ arm64 - AWS Graviton2 프로세서에 사용되는 64비트 ARM 아키텍처입니다.
+ x86\$164 - x86 기반 프로세서에 사용되는 64비트 x86 아키텍처입니다.

**참고**  
arm64 아키텍처는 대부분의AWS 리전에서 사용할 수 있습니다. 자세한 내용은 [AWS Lambda요금](https://aws.amazon.com//lambda/pricing/#aws-element-9ccd9262-b656-4d9c-8a72-34ee6b662135)을 참조하세요. 메모리 가격표에서 **Arm Price**(ARN 가격) 탭을 선택한 다음 **Region**(리전) 드롭다운 목록을 열어 Lambda에서 arm64를 지원하는 AWS 리전을 확인합니다.  
arm64 아키텍처를 사용하여 함수를 생성하는 방법의 예는 [AWS Lambda Graviton2 프로세서로 구동되는 AWS 함수](https://aws.amazon.com/blogs/aws/aws-lambda-functions-powered-by-aws-graviton2-processor-run-your-functions-on-arm-and-get-up-to-34-better-price-performance/)를 참조하세요.

**Topics**
+ [arm64 아키텍처를 사용하는 데 따른 이점](#foundation-arch-adv)
+ [arm64 아키텍처로 마이그레이션을 위한 요구 사항](#foundation-arch-consider)
+ [arm64 아키텍처와의 함수 코드의 호환성](#foundation-arch-considerations)
+ [arm64 아키텍처로 마이그레이션하는 방법](#foundation-arch-steps)
+ [명령 세트 아키텍처 구성](#foundation-arch-config)

## arm64 아키텍처를 사용하는 데 따른 이점
<a name="foundation-arch-adv"></a>

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

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

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

AWS Graviton2에 대한 자세한 내용은 [AWS Graviton 프로세서](https://aws.amazon.com/ec2/graviton)를 참조하세요.

## arm64 아키텍처로 마이그레이션을 위한 요구 사항
<a name="foundation-arch-consider"></a>

arm64 아키텍처로 마이그레이션할 Lambda 함수를 선택할 때, 원활한 마이그레이션을 위해 함수가 다음 요구 사항을 충족하는지 확인합니다.
+ 배포 패키지에 사용자가 제어하는 오픈 소스 구성 요소 및 소스 코드만 포함되어 있어 사용자가 마이그레이션에 필요한 모든 업데이트를 수행할 수 있습니다.
+ 함수 코드에 서드 파티 종속 구성 요소가 포함된 경우 각 라이브러리 또는 패키지가 arm64 버전을 제공합니다.

## arm64 아키텍처와의 함수 코드의 호환성
<a name="foundation-arch-considerations"></a>

Lambda 함수 코드는 함수의 명령 세트 아키텍처와 호환되어야 합니다. 함수를 arm64 아키텍처로 마이그레이션하기 전에 현재 함수 코드와 관련해 다음 사항에 유의합니다.
+ 내장된 코드 편집기를 사용하여 함수 코드를 추가한 경우 코드는 수정 없이 두 아키텍처 중 하나에서 실행될 수 있습니다.
+ 함수 코드를 업로드한 경우에는 대상 아키텍처와 호환되는 새 코드를 업로드해야 합니다.
+ 함수가 계층을 사용하는 경우 [각 계층이](adding-layers.md#finding-layer-information) 새로운 아키텍처와 호환되는지 확인합니다. 계층이 호환되지 않는 경우 함수를 편집하여 현재 계층 버전을 호환되는 계층 버전으로 바꿉니다.
+ 함수가 Lambda 확장을 사용하는 경우 각 확장이 새로운 아키텍처와 호환되는지 확인합니다.
+ 함수가 컨테이너 이미지 배포 패키지 유형을 사용하는 경우 함수의 아키텍처와 호환되는 새 컨테이너 이미지를 만들어야 합니다.

## arm64 아키텍처로 마이그레이션하는 방법
<a name="foundation-arch-steps"></a>



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

1. 애플리케이션 또는 워크로드의 종속 구성 요소 목록을 작성합니다. 일반적인 종속 구성 요소는 다음과 같습니다.
   + 함수가 사용하는 모든 라이브러리와 패키지
   + 컴파일러, 테스트 제품군, 지속적 통합 및 지속적 전달(CI/CD) 파이프라인, 프로비저닝 도구, 스크립트 등, 함수를 빌드, 배포 및 테스트하는 데 사용하는 도구
   + 프로덕션 환경에서 함수를 모니터링하는 데 사용하는 Lambda 확장 및 서드 파티 도구

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

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

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

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

1. arm64 함수의 성능을 테스트합니다. x86\$164 버전과 성능을 비교합니다.

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

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

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

Java, Go, .NET 및 Python에 대한 언어별 정보를 포함하여 arm64 아키텍처용 코드 환경을 만드는 방법에 대한 자세한 내용은 [AWS Graviton 시작하기](https://github.com/aws/aws-graviton-getting-started) GitHub 리포지토리를 참조하세요.

## 명령 세트 아키텍처 구성
<a name="foundation-arch-config"></a>

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

1. Lambda 콘솔의 [함수 페이지](https://console.aws.amazon.com/lambda/home#/functions)를 엽니다.

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

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

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

1. **저장**을 선택합니다.