서버리스 애플리케이션 시작하기 - AWS VS 코드용 도구 키트

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

서버리스 애플리케이션 시작하기

다음 섹션에서는 AWS Serverless Application Model (AWS SAM) 및 AWS CloudFormation 스택을 사용하여 AWS Toolkit for Visual Studio Code에서 AWS 서버리스 애플리케이션를 생성하는 방법을 설명합니다.

필수 조건

AWS 서버리스 애플리케이션을 생성하거나 사용하려면 먼저 다음 조건을 충족해야 합니다.

참고

다음 작업을 수행하려면 변경이 완료되기 전에 VS Code를 종료하거나 재시작해야 합니다.

  • AWS SAM 명령줄 인터페이스(CLI)를 설치합니다. AWS SAM CLI 설치 방법에 대한 추가 정보 및 지침은 AWS Serverless Application Model사용 설명서AWS SAMCLI 설치를 참조하세요.

  • AWS 구성 파일의 기본 AWS 리전을 확인합니다. 구성 파일에 대한 자세한 내용은 AWS Command Line Interface사용 설명서구성 및 자격 증명 파일 설정을 참조하세요.

  • 언어 SDK를 설치하고 툴체인을 구성합니다. AWS Toolkit for Visual Studio Code에서 툴체인을 구성하는 방법에 대한 자세한 내용은 사용 설명서의 툴체인 구성 항목을 참조하세요.

  • VS Code 마켓플레이스에서 YAML 언어 지원 확장 프로그램을 설치하세요. AWS SAM 템플릿 파일의 CodeLens 기능에 액세스하는 데 필요합니다. CodeLens에 대한 추가 정보는 VS Code 설명서의 CodeLens 섹션을 참조하세요.

서버리스 애플리케이션에 대한 IAM 권한

VS Code용 도구 키트에는 서버리스 애플리케이션을 배포 및 실행하는 데 필요한 AWS Identity and Access Management (IAM) 권한이 포함된 자격 증명 프로파일이 있어야 합니다. AWS CloudFormation, IAM, Lambda, Amazon API Gateway, Amazon Simple Storage Service (Amazon S3), Amazon Elastic Container Registry (Amazon ECR)에 대한 읽기/쓰기 액세스 권한이 있어야 합니다.

서버리스 애플리케이션을 배포하고 실행하는 데 필요한 인증을 설정하는 방법에 대한 추가 정보는 AWS Serverless Application Model개발자 안내서리소스 액세스 및 권한 관리를 참조하세요. 자격 증명 설정 방법에 대한 자세한 내용은 사용 설명서의 AWS IAM신임장 섹션을 참조하세요.

새 서버리스 애플리케이션 생성 (로컬)

AWS SAM을 사용하여 VS Code용 도구 키트로 서버리스 애플리케이션을 만드는 방법을 알 수 있습니다. 이 프로시저의 출력은 샘플 서버리스 애플리케이션이 포함된 개발 호스트의 로컬 디렉토리로, 이를 빌드, 로컬 테스트, 수정 및 배포를 AWS 클라우드에 할 수 있습니다.

  1. Command Palette를 열려면 View, Command Palette를 선택한 다음 AWS를 입력합니다.

  2. AWS Toolkit Create Lambda SAM Application을 선택합니다.

    명령 팔레트 대화 상자입니다.
    참고

    AWS SAM CLI가 설치되어 있지 않으면 VS Code 편집기 오른쪽 아래 가장자리에 오류 메시지가 표시됩니다. 이 경우 모든 가정과 필수 조건을 충족하는지 확인하세요.

  3. AWS SAM 애플리케이션의 런타임을 선택합니다.

    참고

    ‘(Image)’라는 표시가 있는 런타임 중 하나를 선택하면 애플리케이션의 패키지 유형이 Image가 됩니다. ‘(Image)’라는 표시가 없는 런타임 중 하나를 선택하면 애플리케이션의 유형이 Zip이 됩니다. Image 패키지 유형과 Zip 패키지 유형의 차이점에 대한 자세한 내용은 AWS Lambda 개발자 가이드에서 Lambda 배포 패키지를 참조하세요.

  4. 선택한 런타임에 따라 SAM 애플리케이션의 의존성 관리자와 런타임 아키텍처를 선택하라는 메시지가 표시될 수 있습니다.

    Dependency Manager

    Gradle 또는 Maven 중에서 선택하세요.

    참고

    선택한 빌드 자동화 도구는 Java 런타임에만 사용할 수 있습니다.

    Architecture

    x86_64 또는 arm64중에서 선택하세요.

    x86_64 기반 기본 환경 대신 ARM64 기반 에뮬레이션 환경에서 서버리스 애플리케이션을 실행하는 옵션은 다음 런타임에서 사용할 수 있습니다.

    • nodejs12.x (ZIP 파일 및 이미지)

    • nodejs14.x (ZIP 파일 및 이미지)

    • python3.8 (ZIP 파일 및 이미지)

    • python3.9 (ZIP 파일 및 이미지)

    • python3.10 (ZIP 파일 및 이미지)

    • python3.11 (ZIP 파일 및 이미지)

    • java8.al2을 지원하는 Gradle (ZIP 파일 및 이미지)

    • java8.al2을 지원하는Maven (ZIP 파일만)

    • java11을 지원하는 Gradle (ZIP 파일 및 이미지)

    • java11을 지원하는 Maven (ZIP 파일만)

    중요

    ARM64 기반 환경에서 애플리케이션을 실행하려면 AWS CLI 버전 1.33.0 이상을 설치해야 합니다. 자세한 내용은 사전 조건 섹션을 참조하세요.

  5. 새 프로젝트의 위치를 선택합니다. 기존의 작업 폴더가 있으면 그중에서 폴더를 선택하거나, 새 폴더를 생성하고 사용하세요. 예시에서 이름이 MY-SAM-APP인 폴더를 생성할 작업 폴더가 없습니다를 선택합니다.

  6. 프로젝트의 이름을 입력합니다. my-sam-app-nodejs를 입력하세요. Enter 키를 누르면 VS Code용 도구 키트로 프로젝트를 생성하는 데 몇 분 정도 걸립니다.

프로젝트가 생성되면 현재 작업 폴더에 애플리케이션이 추가됩니다. 탐색기 창에 해당 프로젝트가 보여야 합니다.

서버리스 애플리케이션 열기 (로컬)

로컬 개발 호스트에서 서버리스 애플리케이션을 열려면 애플리케이션의 템플릿 파일이 들어 있는 폴더를 여세요.

  1. File에서 Open Folder...를 선택합니다.

  2. Open Folder 대화 상자에서 열려는 서버리스 애플리케이션 폴더를 찾습니다.

  3. Select Folder 버튼을 선택합니다.

애플리케이션 폴더를 열면 탐색기 창에 나타납니다.

템플릿(로컬)에서 서버리스 애플리케이션 실행 및 디버깅

VS Code용 도구 키트를 사용하면 서버리스 애플리케이션을 디버깅하고 로컬 개발 환경에서 실행하는 환경을 설정할 수 있습니다.

VS Code CodeLens 기능으로 적절한 Lambda 함수를 식별하여 디버깅 동작 구성을 시작합니다. CodeLens를 사용하면 소스 코드와의 콘텐츠 인식 상호 작용이 가능합니다. CodeLens 기능에 액세스할 수 있는지 확인하는 방법은 이 항목 앞부분의 필수 조건 섹션을 확인하세요.

참고

여기서는 JavaScript를 사용하여 애플리케이션을 디버깅합니다. 하지만 VS Code용 도구 키트에서 제공되는 디버깅 기능을 다음 언어 및 런타임에 사용할 수 있습니다.

  • C# – .NET Core 2.1, 3.1; .NET 5.0

  • JavaScript/TypeScript – Node.js 12.x, 14.x

  • Python — 3.6, 3.7, 3.8, 3.9, 3.10, 3.11

  • Java – 8, 8.al2, 11

  • Go – 1.x

선택한 언어는 CodeLens가 Lambda 핸들러를 탐지하는 방법에도 영향을 미칩니다. 자세한 내용은 코드에서 Lambda 함수 실행 및 디버깅 섹션을 참조하세요.

여기에서는 이 항목의 새 서버리스 애플리케이션 생성 (로컬) 섹션 앞부분에서 생성한 예제 애플리케이션을 사용합니다.

  1. VS Code 파일 탐색기에서 애플리케이션 파일을 보려면 View, Explorer를 선택합니다.

  2. 애플리케이션 폴더(예: my-sample-app)에서 template.yaml 파일을 엽니다.

    참고

    template.yaml과 다른 이름의 템플릿을 사용하는 경우 YAML 파일에서 CodeLens 표시기를 사용할 수 없습니다. 즉, 디버깅 구성을 수동으로 추가해야 합니다.

  3. template.yaml 편집기에서 서버리스 리소스를 정의하는 템플릿의 Resources 섹션으로 이동하세요. 이 경우 AWS::Serverless::Function 유형의 HelloWorldFunction 리소스입니다.

    이 리소스의 CodeLens 표시기에서 디버그 구성 추가를 선택합니다.

    template.yaml 파일의 CodeLens 표시기를 사용하여 디버그 구성을 추가합니다.
  4. Command Palette에서 AWS SAM 애플리케이션을 실행할 런타임을 선택합니다.

  5. launch.json 파일 편집기에서 다음의 구성 속성 값을 편집하거나 선택합니다.

    • "name" - Run 보기의 Configuration 드롭다운 필드에서 알아보기 쉬운 이름을 입력합니다.

    • "target" - AWS SAM 템플릿이 디버깅 세션의 진입점이 되도록 값이 "template" 인지 확인합니다.

    • "templatePath" - template.yaml 파일의 상대 경로 또는 절대 경로를 입력합니다.

    • "logicalId" - 이름이 AWS SAM 템플릿의 Resources 섹션에 지정된 이름과 일치하는지 확인합니다. 이 예에서는 AWS::Serverless::Function 유형의 HelloWorldFunction입니다.

    템플릿 기반 디버깅을 위한 launch.json 파일 구성

    launch.json 파일의 이들 항목과 기타 항목에 대한 자세한 내용은 서버리스 애플리케이션 디버깅을 위한 구성 옵션 섹션을 참조하세요.

  6. 디버그 구성이 만족스럽다면 launch.json을 저장합니다. 그런 다음 RUN 보기에서 녹색 ‘재생’ 버튼을 선택하면 디버깅이 시작됩니다.

    디버깅 세션이 시작되면 DEBUG CONSOLE 패널에 디버깅 결과가 표시되고 Lambda 함수에서 반환된 모든 값이 표시됩니다. (AWS SAM 애플리케이션을 디버깅할 때, Output 패널의 Output 채널을 AWS 도구 키트로 선택하세요.)

애플리케이션 동기화

AWS Toolkit for Visual Studio Code로 AWS SAM CLI 명령 sam sync를 실행하여 서버리스 애플리케이션을 AWS 클라우드에 배포합니다. AWS SAM 동기에 대한 자세한 방법은 AWS Serverless Application Model 개발자 안내서AWS SAM CLI command reference를 참조하세요.

다음은 VS Code용 도구 키트에서 sam sync를 사용하여 AWS 클라우드에 서버리스 애플리케이션을 배포하는 방법을 설명합니다.

  1. VS Code의 기본 메뉴에서 View를 확장한 다음 Command Palette를 선택하여 Command Palette 팔레트를 엽니다.

  2. Command Palette에서 AWS를 검색하고 Sync SAM Application을 선택하여 동기화 설정을 시작합니다.

    서버리스 애플리케이션을 배포하는 명령입니다.
  3. 서버리스 애플리케이션을 동기화할 AWS 리전을 선택합니다.

  4. 배포에 사용할 template.yaml 파일을 선택합니다.

  5. 기존 Amazon S3 버킷을 선택하거나 애플리케이션을 배포할 새 Amazon S3 버킷 이름을 입력합니다.

    중요

    Amazon S3 버킷은 다음 요구 사항을 충족해야 합니다.

    • 버킷은 동기화하려는 리전에 있어야 합니다.

    • Amazon S3 버킷 이름은 Amazon S3의 모든 기존 버킷 이름에서 전역적으로 고유해야 합니다.

  6. 서버리스 애플리케이션에 패키지 유형이 Image인 함수가 포함되어 있는 경우, 이 배포에서 사용할 수 있는 Amazon ECR 리포지토리 이름을 입력합니다. 이 리포지토리는 배포하려는 리전에 있어야 합니다.

  7. 이전 배포 목록에서 배포 스택을 선택하거나 새 스택 이름을 입력하여 새 배포 스택을 생성합니다. 그런 다음 동기화 프로세스를 시작합니다.

    참고

    이전 배포에서 사용한 스택은 작업 폴더 및 리전별로 리콜됩니다.

  8. 동기화 프로세스 중에는 배포 상태는 VS Code의 Terminal 탭에 캡처됩니다. 터미널 탭에서 동기화가 성공했는지 확인하세요. 오류가 발생하면 알림을 받게 됩니다.

    서버리스 애플리케이션 배포 중에 오류 팝업 창이 뜹니다.
    참고

    동기화에 대한 자세한 정보를 보려면 Command Palette에서 AWS Toolkit for Visual Studio Code 로그에 액세스하세요.

    명령 팔레트에서 AWS Toolkit for Visual Studio Code 로그에 액세스하려면 View를 확장하고 Command Palette를 선택한 다음 AWS: View AWS Toolkits Logs를 검색하여 결과 목록에서 선택하세요.

배포가 완료되면 AWS Explorer에서 애플리케이션을 볼 수 있습니다. 애플리케이션으로 생성된 Lambda 함수를 호출하는 방법에 대한 자세한 내용은 사용 설명서의 원격 Lambda 함수와 상호 작용 항목을 참조하세요.

AWS 클라우드에서 서버리스 애플리케이션 삭제

서버리스 애플리케이션을 삭제하려면 이전에 AWS 클라우드에 배포한 AWS CloudFormation 스택을 삭제해야 합니다. 이 방법으로 로컬 호스트에서 애플리케이션 디렉터리를 삭제할 수 없습니다.

  1. AWS 익스플로러을 엽니다.

  2. AWS Toolkit Explorer 창에서 삭제하려는 배포된 애플리케이션이 포함된 리전을 확장한 다음 AWS CloudFormation을 확장합니다.

  3. 삭제할 서버리스 애플리케이션에 해당하는 AWS CloudFormation 스택 이름의 컨텍스트(마우스 오른쪽 버튼 클릭) 메뉴에서 Delete AWS CloudFormation Stack(스택 삭제)을 선택합니다.

  4. 선택한 스택을 삭제하려면 Yes를 선택합니다.

스택이 삭제되면 AWS Explorer AWS CloudFormation 목록에 Toolkit for VS Code가 보이지 않습니다.