

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

# 를 사용하여 스타터 CI/CD 파이프라인 생성 AWS SAM
<a name="serverless-generating-example-ci-cd"></a>

배포를 자동화할 준비가 되면 AWS SAM의 스타터 파이프라인 템플릿 중 하나를 사용하여 사용하려는 CI/CD 시스템에 대한 배포 파이프라인을 생성할 수 있습니다. 서버리스 애플리케이션의 배포를 자동화하려면 배포 파이프라인을 구성하고 사용해야 합니다. 스타터 파이프라인 템플릿은 서버리스 애플리케이션에 필요한 배포 파이프라인을 빠르게 설정할 수 있도록 사전 구성되어 있습니다.

스타터 파이프라인 템플릿이 있으면 [sam pipeline init](sam-cli-command-reference-sam-pipeline-init.md) 명령을 사용하여 몇 분 안에 파이프라인을 생성할 수 있습니다.

스타터 파이프라인 템플릿은 CI/CD 시스템의 친숙한 JSON/YAML 구문을 사용하며, 여러 계정 및 리전의 아티팩트 관리, 애플리케이션 배포에 필요한 최소한의 권한 사용 등의 모범 사례를 통합합니다. 현재 AWS SAM CLI는 [AWS CodePipeline](https://aws.amazon.com/codepipeline), [Jenkins](https://www.jenkins.io/), [GitLab CI/CD](https://docs.gitlab.com/ee/ci/), [GitHub Actions](https://github.com/features/actions), [Bitbucket Pipeline](https://support.atlassian.com/bitbucket-cloud/docs/get-started-with-bitbucket-pipelines/)에 대한 스타터 CI/CD 파이프라인 구성 생성을 지원합니다.

스타터 파이프라인 구성을 생성하기 위해 수행해야 하는 고급 수준은 태스크는 다음과 같습니다.

1. **인프라 리소스 생성** - 파이프라인에는 필요한 권한이 있는 IAM 사용자 및 역할, Amazon S3 버킷, 선택적으로 Amazon ECR 리포지토리와 같은 특정 AWS 리소스가 필요합니다.

1. **Git 리포지토리를 CI/CD 시스템에 연결** - CI/CD 시스템은 파이프라인 실행을 트리거할 Git 리포지토리를 알아야 합니다. 사용 중인 Git 리포지토리와 CI/CD 시스템의 조합에 따라 이 단계가 필요하지 않을 수도 있습니다.

1. **파이프라인 구성 생성** - 이 단계는 두 개의 배포 단계를 포함하는 스타터 파이프라인 구성을 생성합니다.

1. **파이프라인 구성을 Git 리포지토리에 커밋** - 이 단계는 CI/CD 시스템이 파이프라인 구성을 인식하도록 하는데 필요하며, 변경 사항이 커밋될 때 실행됩니다.

스타터 파이프라인 구성을 생성하여 Git 리포지토리에 커밋하면 누군가 해당 리포지토리에 코드 변경을 커밋할 때마다 파이프라인이 트리거되어 자동으로 실행됩니다.

이러한 단계의 순서와 각 단계의 세부 사항은 CI/CD 시스템에 따라 다릅니다.
+ 를 사용하는 경우 단원을 AWS CodePipeline참조하십시오[AWS CodePipeline 에서에 대한 스타터 파이프라인 생성 AWS SAM](serverless-generating-example-ci-cd-codepipeline.md).
+ Jenkins, GitLab CI/CD, GitHub Actions 또는 Bitbucket Pipeline을 사용하는 경우 [AWS SAM 를 사용하여 Jenkins, GitLab CI/CD, GitHub Actions, Bitbucket Pipelines용 스타터 파이프라인 생성](serverless-generating-example-ci-cd-others.md) 섹션을 참조하세요.

# AWS CodePipeline 에서에 대한 스타터 파이프라인 생성 AWS SAM
<a name="serverless-generating-example-ci-cd-codepipeline"></a>

에 대한 스타터 파이프라인 구성을 생성하려면 다음 작업을 다음 순서로 AWS CodePipeline수행합니다.

1. 인프라 리소스

1. 파이프라인 구성 생성

1. 파이프라인 구성을 Git에 커밋

1. Git 리포지토리를 CI/CD 시스템에 연결

**참고**  
다음 절차에서는 두 개의 AWS SAMCLI 명령, `sam pipeline bootstrap` 및 `sam pipeline init`을 사용합니다. 두 가지 명령이 있는 이유는 관리자(즉, IAM 사용자 및 역할과 같은 인프라 AWS 리소스를 설정할 권한이 필요한 사용자)가 개발자(즉, 개별 파이프라인을 설정할 권한만 필요하지만 필요한 인프라 AWS 리소스는 필요하지 않은 사용자)에게 더 많은 권한을 부여하는 사용 사례를 처리하기 위한 것입니다.

## 1단계: 인프라 리소스 생성
<a name="generating-example-step-1"></a>

를 사용하는 파이프라인에는 필요한 권한이 있는 IAM 사용자 및 역할, Amazon S3 버킷, 선택적으로 Amazon ECR 리포지토리와 같은 특정 AWS 리소스가 AWS SAM 필요합니다. 파이프라인의 각 배포 단계를 위한 인프라 리소스 세트가 있어야 합니다.

다음 명령을 실행하여 이 설정을 편집하거나 추가할 수 있습니다.

```
sam pipeline bootstrap
```

**참고**  
파이프라인의 각 배포 단계에 대해 이전 명령어를 실행합니다.

## 2단계: 파이프라인 구성 생성
<a name="generating-example-step-2"></a>

파이프라인 구성을 생성하려면 다음 명령을 실행합니다.

```
sam pipeline init
```

## 3단계: 파이프라인 구성을 Git 리포지토리에 커밋
<a name="generating-example-step-3"></a>

이 단계는 CI/CD 시스템이 파이프라인 구성을 인식하도록 할 때 필요하며, 변경 사항이 커밋될 때 실행됩니다.

## 4단계: Git 리포지토리를 CI/CD 시스템에 연결
<a name="generating-example-step-4"></a>

이제 다음 명령을 실행하여 연결을 생성할 AWS CodePipeline 수 있습니다.

```
sam deploy -t codepipeline.yaml --stack-name <pipeline-stack-name> --capabilities=CAPABILITY_IAM --region <region-X>
```

GitHub 또는 Bitbucket을 사용하는 경우, 이전에 **sam deploy** 명령을 실행한 후 *개발자 도구 콘솔 사용 안내서*의 [보류 중인 연결 업데이트](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-update.html) 주제에 있는 **연결을 완료하려면** 섹션의 단계를 따라 연결을 완료합니다. 또한를 이외의 다른 브랜치와 AWS CodePipeline 함께 사용하려면 **sam deploy** 명령의 출력`CodeStarConnectionArn`에서의 사본을 저장해야 합니다`main`.

## 기타 브랜치 구성
<a name="configuring-other-branches"></a>

기본적으로는 `main`브랜치를와 함께 AWS CodePipeline 사용합니다 AWS SAM. `main` 이외의 브랜치를 사용하려면 **sam deploy** 명령을 다시 실행해야 합니다. 사용 중인 Git 리포지토리에 따라 `CodeStarConnectionArn`를 제공해야 합니다.

```
# For GitHub and Bitbucket
sam deploy -t codepipeline.yaml --stack-name <feature-pipeline-stack-name> --capabilities=CAPABILITY_IAM --parameter-overrides="FeatureGitBranch=<branch-name> CodeStarConnectionArn=<codestar-connection-arn>"

# For AWS CodeCommit
sam deploy -t codepipeline.yaml --stack-name <feature-pipeline-stack-name> --capabilities=CAPABILITY_IAM --parameter-overrides="FeatureGitBranch=<branch-name>"
```

## 자세히 알아보기
<a name="serverless-generating-cicd-learn"></a>

CI/CD 파이프라인을 설정하는 실습 예제는 *Complete AWS SAM Workshop*의 [ CI/CD with AWS CodePipeline](https://catalog.workshops.aws/complete-aws-sam/en-US/module-4-cicd) 섹션을 참조하세요.

# AWS SAM 를 사용하여 Jenkins, GitLab CI/CD, GitHub Actions, Bitbucket Pipelines용 스타터 파이프라인 생성
<a name="serverless-generating-example-ci-cd-others"></a>

Jenkins, GitLab CI/CD, GitHub Actions 또는 Bitbucket Pipeline에 대한 스타터 파이프라인 구성을 생성하려면 다음 태스크를 순서대로 수행합니다.

1. 인프라 리소스

1. Git 리포지토리를 CI/CD 시스템에 연결

1. 보안 인증 정보 객체 생성

1. 파이프라인 구성 생성

1. 파이프라인 구성을 Git 리포지토리에 커밋

**참고**  
다음 절차에서는 두 개의 AWS SAMCLI 명령, `sam pipeline bootstrap` 및 `sam pipeline init`을 사용합니다. 두 가지 명령이 있는 이유는 관리자(즉, IAM 사용자 및 역할과 같은 인프라 AWS 리소스를 설정할 권한이 필요한 사용자)가 개발자(즉, 개별 파이프라인을 설정할 권한만 필요하지만 필요한 인프라 AWS 리소스는 필요하지 않은 사용자)에게 더 많은 권한을 부여하는 사용 사례를 처리하기 위한 것입니다.

## 1단계: 인프라 리소스 생성
<a name="generating-example-step-1"></a>

를 사용하는 파이프라인에는 필요한 권한이 있는 IAM 사용자 및 역할, Amazon S3 버킷, 선택적으로 Amazon ECR 리포지토리와 같은 특정 AWS 리소스가 AWS SAM 필요합니다. 파이프라인의 각 배포 단계를 위한 인프라 리소스 세트가 있어야 합니다.

다음 명령을 실행하여 이 설정을 편집하거나 추가할 수 있습니다.

```
sam pipeline bootstrap
```

**참고**  
파이프라인의 각 배포 단계에 대해 이전 명령어를 실행합니다.

파이프라인의 각 배포 단계에 대한 파이프라인 사용자의 AWS 자격 증명(키 ID 및 보안 키)은 후속 단계에 필요하므로 캡처해야 합니다.

## 2단계: Git 리포지토리를 CI/CD 시스템에 연결
<a name="generating-example-step-2"></a>

CI/CD 시스템이 빌드 및 배포를 위해 애플리케이션 소스 코드에 액세스할 수 있으려면 Git 리포지토리를 CI/CD 시스템에 연결해야 합니다.

**참고**  
다음 중 하나를 사용하는 경우 연결은 자동으로 수행되므로 이 단계를 건너뛸 수 있습니다.  
GitHub 리포지토리를 사용한 GitHub Action
GitLab 리포지토리를 사용한 GitLab CI/CD
Bitbucket 리포지토리가 있는 Bitbucket Pipeline

Git 리포지토리를 CI/CD 시스템에 연결하려면 다음 중 하나를 수행합니다.
+ Jenkins를 사용하는 경우 [Jenkins 설명서](https://www.jenkins.io/doc/book/pipeline/multibranch/)의 ‘브랜치 소스에 추가’를 참조하세요.
+ GitLab이 아닌 GitLab CI/CD와 Git 리포지토리를 사용하고 있다면 [GitLab 설명서](https://docs.gitlab.com/ee/ci/ci_cd_for_external_repos/)에서 ‘외부 리포지토리에 연결’을 참조하세요.

## 3단계: 보안 인증 정보 객체 생성
<a name="generating-example-step-3"></a>

각 CI/CD 시스템은 CI/CD 시스템이 Git 리포지토리에 액세스하는 데 필요한 보안 인증 정보를 관리하는 고유한 방법을 가집니다.

필요한 보안 인증 정보 객체를 생성하려면 다음 중 하나를 수행합니다.
+ Jenkins를 사용하는 경우 키 ID와 보안 암호 키를 모두 저장하는 단일 ‘보안 인증 정보’을 만듭니다. [AWS SAM과 Jenkins Pipeline를 빌드](https://aws.amazon.com/blogs/compute/building-a-jenkins-pipeline-with-aws-sam/) 블로그, **Jenkins 구성** 섹션의 지침을 따르세요. 다음 단계에서 ‘보안 인증 id’가 필요합니다.
+ GitLab CI/CD를 사용하는 경우 키 ID와 보안 암호 키 각각에 하나씩, 두 개의 ‘보호되는 변수’를 만듭니다. [GitLab 설명서](https://docs.gitlab.com/ee/ci/variables/)의 지침을 따르세요. 다음 단계를 위해 두 개의 ‘변수 키’가 필요합니다.
+ GitHub Actions를 사용하는 경우 키와 보안 암호 키 각각에 하나씩, 두 개의 ‘암호화된 보안 암호’를 만듭니다. [GitHub 설명서](https://docs.github.com/en/actions/reference/encrypted-secrets)의 지침을 따르세요. 다음 단계를 수행하려면 두 개의 ‘보안 암호 이름’이 필요합니다.
+ Bitbucket Pipeline을 사용하는 경우, 키 ID와 보안 암호 키 각각에 하나씩, 두 개의 ‘보안 변수’를 만듭니다. [변수 및 보안 암호](https://support.atlassian.com/bitbucket-cloud/docs/variables-and-secrets)의 지침을 따르세요. 다음 단계를 수행하려면 두 개의 ‘보안 암호 이름’이 필요합니다.

## 4단계: 파이프라인 구성 생성
<a name="generating-example-step-4"></a>

파이프라인 구성을 생성하려면 다음 명령을 실행합니다. 이전 단계에서 생성한 보안 인증 정보 객체를 입력해야 합니다.

```
sam pipeline init
```

## 5단계: 파이프라인 구성을 Git 리포지토리에 커밋
<a name="generating-example-step-5"></a>

이 단계는 CI/CD 시스템이 파이프라인 구성을 인식하도록 할 때 필요하며, 변경 사항이 커밋될 때 실행됩니다.

## 자세히 알아보기
<a name="serverless-generating-other-cicd-learn"></a>

GitHub Actions을 사용하여 CI/CD 파이프라인을 설정하는 실제 예제는 *전체 AWS SAM 워크샵*의 [GitHub을 사용한 CI/CD](https://s12d.com/sam-ws-en-gh) 섹션을 참조하세요.