

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

# AWS SAM 애플리케이션 배포 자동화
<a name="serverless-deploying-modify-pipeline"></a>

에서 AWS SAM 애플리케이션 배포를 자동화하는 AWS SAM방법은 사용 중인 CI/CD 시스템에 따라 다릅니다. 이러한 이유로이 섹션의 예제에서는 AWS SAM 빌드 컨테이너 이미지에서 서버리스 애플리케이션 빌드를 자동화하도록 다양한 CI/CD 시스템을 구성하는 방법을 보여줍니다. 이러한 빌드 컨테이너 이미지를 사용하면를 사용하여 서버리스 애플리케이션을 더 쉽게 빌드하고 패키징할 수 있습니다 AWS SAM CLI.

 AWS SAM 를 사용하여 서버리스 애플리케이션을 배포하는 기존 CI/CD 파이프라인의 절차는 사용 중인 CI/CD 시스템에 따라 약간 다릅니다.

다음 주제에서는 AWS SAM 빌드 컨테이너 이미지 내에 서버리스 애플리케이션을 빌드하도록 CI/CD 시스템을 구성하는 예제를 제공합니다.

**Topics**
+ [AWS CodePipeline 를 사용하여와 함께 배포 AWS SAM](deploying-using-codepipeline.md)
+ [Bitbucket Pipelines을 사용하여 로 배포 AWS SAM](deploying-using-bitbucket.md)
+ [Jenkins를 사용하여 로 배포 AWS SAM](deploying-using-jenkins.md)
+ [GitLab CI/CD를 사용하여 로 배포 AWS SAM](deploying-using-gitlab.md)
+ [GitHub 작업을 사용하여 로 배포 AWS SAM](deploying-using-github.md)

# AWS CodePipeline 를 사용하여와 함께 배포 AWS SAM
<a name="deploying-using-codepipeline"></a>

 AWS SAM 애플리케이션의 빌드 및 배포를 자동화하도록 [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html) 파이프라인을 구성하려면 CloudFormation 템플릿과 `buildspec.yml` 파일에 다음을 수행하는 줄이 포함되어야 합니다.

1. 사용 가능한 이미지에서 필요한 런타임이 포함된 빌드 컨테이너 이미지를 참조합니다. 다음 예제에서는 `public.ecr.aws/sam/build-nodejs20.x` 빌드 컨테이너 이미지를 사용합니다.

1. 필요한 AWS SAM 명령줄 인터페이스(CLI) 명령을 실행하도록 파이프라인 단계를 구성합니다. 다음 예제에서는 **sam build** 및 **sam deploy**(필수 옵션 포함) 두 AWS SAMCLI 명령을 실행합니다.

이 예제에서는를 사용하여 AWS SAM 템플릿 파일의 모든 함수와 계층을 선언했다고 가정합니다`runtime: nodejs20.x`.

**CloudFormation 템플릿 코드 조각:**

```
  CodeBuildProject:
    Type: AWS::CodeBuild::Project
    Properties:
      Environment:
        ComputeType: BUILD_GENERAL1_SMALL
        Image: public.ecr.aws/sam/build-nodejs20.x
        Type: LINUX_CONTAINER
      ...
```

**`buildspec.yml` 코드 조각:**

```
version: 0.2
phases:
  build:
    commands:
      - sam build
      - sam deploy --no-confirm-changeset --no-fail-on-empty-changeset
```

다양한 런타임에 사용할 수 있는 Amazon Elastic Container Registry(Amazon ECR)빌드 컨테이너 이미지 목록은 [의 이미지 리포지토리 AWS SAM](serverless-image-repositories.md) 섹션을 참조하세요.

# Bitbucket Pipelines을 사용하여 로 배포 AWS SAM
<a name="deploying-using-bitbucket"></a>

 AWS SAM 애플리케이션의 빌드 및 배포를 자동화하도록 [Bitbucket Pipeline](https://support.atlassian.com/bitbucket-cloud/docs/get-started-with-bitbucket-pipelines/)을 구성하려면 `bitbucket-pipelines.yml` 파일에 다음을 수행하는 줄이 포함되어야 합니다.

1. 사용 가능한 이미지에서 필요한 런타임이 포함된 빌드 컨테이너 이미지를 참조합니다. 다음 예제에서는 `public.ecr.aws/sam/build-nodejs20.x` 빌드 컨테이너 이미지를 사용합니다.

1. 필요한 AWS SAM 명령줄 인터페이스(CLI) 명령을 실행하도록 파이프라인 단계를 구성합니다. 다음 예제에서는 **sam build** 및 **sam deploy**(필수 옵션 포함) 두 AWS SAMCLI 명령을 실행합니다.

이 예제에서는를 사용하여 AWS SAM 템플릿 파일의 모든 함수와 계층을 선언했다고 가정합니다`runtime: nodejs20.x`.

```
image: public.ecr.aws/sam/build-nodejs20.x

pipelines:
  branches:
    main: # branch name
      - step:
          name: Build and Package
          script:
            - sam build
            - sam deploy --no-confirm-changeset --no-fail-on-empty-changeset
```

다양한 런타임에 사용할 수 있는 Amazon Elastic Container Registry(Amazon ECR)빌드 컨테이너 이미지 목록은 [의 이미지 리포지토리 AWS SAM](serverless-image-repositories.md) 섹션을 참조하세요.

# Jenkins를 사용하여 로 배포 AWS SAM
<a name="deploying-using-jenkins"></a>

 AWS SAM 애플리케이션의 빌드 및 배포를 자동화하도록 [Jenkins](https://www.jenkins.io/) 파이프라인을 구성하려면에 다음을 수행하는 줄이 포함되어야 `Jenkinsfile` 합니다.

1. 사용 가능한 이미지에서 필요한 런타임이 포함된 빌드 컨테이너 이미지를 참조합니다. 다음 예제에서는 `public.ecr.aws/sam/build-nodejs20.x` 빌드 컨테이너 이미지를 사용합니다.

1. 필요한 AWS SAM 명령줄 인터페이스(CLI) 명령을 실행하도록 파이프라인 단계를 구성합니다. 다음 예제에서는 **sam build** 및 **sam deploy**(필수 옵션 포함) 두 AWS SAMCLI 명령을 실행합니다.

이 예제에서는를 사용하여 AWS SAM 템플릿 파일의 모든 함수와 계층을 선언했다고 가정합니다`runtime: nodejs20.x`.

```
pipeline {
    agent { docker { image 'public.ecr.aws/sam/build-nodejs20.x' } }
    stages {
        stage('build') {
            steps {
                sh 'sam build'
                sh 'sam deploy --no-confirm-changeset --no-fail-on-empty-changeset'
            }
        }
    }
}
```

다양한 런타임에 사용할 수 있는 Amazon Elastic Container Registry(Amazon ECR)빌드 컨테이너 이미지 목록은 [의 이미지 리포지토리 AWS SAM](serverless-image-repositories.md) 섹션을 참조하세요.

# GitLab CI/CD를 사용하여 로 배포 AWS SAM
<a name="deploying-using-gitlab"></a>

 AWS SAM 애플리케이션의 빌드 및 배포를 자동화하도록 [GitLab](https://about.gitlab.com) 파이프라인을 구성하려면 `gitlab-ci.yml` 파일에 다음을 수행하는 줄이 포함되어야 합니다.

1. 사용 가능한 이미지에서 필요한 런타임이 포함된 빌드 컨테이너 이미지를 참조합니다. 다음 예제에서는 `public.ecr.aws/sam/build-nodejs20.x` 빌드 컨테이너 이미지를 사용합니다.

1. 필요한 AWS SAM 명령줄 인터페이스(CLI) 명령을 실행하도록 파이프라인 단계를 구성합니다. 다음 예제에서는 **sam build** 및 **sam deploy**(필수 옵션 포함) 두 AWS SAMCLI 명령을 실행합니다.

이 예제에서는를 사용하여 AWS SAM 템플릿 파일의 모든 함수와 계층을 선언했다고 가정합니다`runtime: nodejs20.x`.

```
image: public.ecr.aws/sam/build-nodejs20.x
deploy:
  script:
    - sam build
    - sam deploy --no-confirm-changeset --no-fail-on-empty-changeset
```

다양한 런타임에 사용할 수 있는 Amazon Elastic Container Registry(Amazon ECR)빌드 컨테이너 이미지 목록은 [의 이미지 리포지토리 AWS SAM](serverless-image-repositories.md) 섹션을 참조하세요.

# GitHub 작업을 사용하여 로 배포 AWS SAM
<a name="deploying-using-github"></a>

 AWS SAM 애플리케이션의 빌드 및 배포를 자동화하도록 [GitHub](https://github.com/) 파이프라인을 구성하려면 먼저 호스트에 AWS SAM 명령줄 인터페이스(CLI)를 설치해야 합니다. GitHub 워크플로의 [GitHub Actions](https://github.com/features/actions)을 사용하면 이 설정에 도움이 될 수 있습니다.

다음 예제 GitHub 워크플로는 일련의 GitHub 작업을 사용하여 Ubuntu 호스트를 설정한 다음 명령을 실행 AWS SAM CLI하여 AWS SAM 애플리케이션을 빌드하고 배포합니다.

```
on:
  push:
    branches:
      - main
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-python@v3
      - uses: aws-actions/setup-sam@v2
      - uses: aws-actions/configure-aws-credentials@v1
        with:
          aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
          aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
          aws-region: us-east-2
      - run: sam build --use-container
      - run: sam deploy --no-confirm-changeset --no-fail-on-empty-changeset
```

다양한 런타임에 사용할 수 있는 Amazon Elastic Container Registry(Amazon ECR)빌드 컨테이너 이미지 목록은 [의 이미지 리포지토리 AWS SAM](serverless-image-repositories.md) 섹션을 참조하세요.