

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

# Elastic Beanstalk 환경과의 CI/CD 통합 구현
<a name="deployments.cicd"></a>

Elastic Beanstalk은 다양한 CI/CD 도구와 통합되어 애플리케이션 개발 워크플로를 자동화합니다. CI/CD 사례를 사용하면 수동 개입을 최소화하면서 애플리케이션을 자동으로 빌드, 테스트 및 배포할 수 있습니다. 지속적 전달/배포(CD)는 배포 프로세스를 자동화하여 지속적 통합(CI)을 확장합니다. CodePipeline과 같은 AWS 서비스 또는 Jenkins 및 GitLab과 같은 타사 도구를 사용하여 간소화된 배포 파이프라인을 생성하여 Elastic Beanstalk 환경에 일관되고 안정적으로 배포할 수 있습니다.

**Topics**
+ [AWS 시작하기 위한 소스](#deployments.cicd.aws-sites)
+ [추가 리소스](#deployments.cicd.aws-services.third-party)
+ [GitHub 작업을 사용하여 Elastic Beanstalk에 배포](deploying-github-actions.md)

## AWS 시작하기 위한 소스
<a name="deployments.cicd.aws-sites"></a>

다음 목록은 CI/CD 도구와 Elastic Beanstalk 환경에 대한 자동 배포 파이프라인을 생성하기 위한 step-by-step 지침을 제공하는 해당 AWS 리소스를 강조합니다.
+ **AWS CodePipeline** -이 [AWS 리소스 센터 시작하기](https://aws.amazon.com/getting-started/hands-on/continuous-deployment-pipeline/) 자습서에서는 GitHub, S3 또는 AWS CodeCommit에서 Elastic Beanstalk로 연속 배포 파이프라인을 설정하는 방법을 보여줍니다.
+ **GitHub 작업** - GitHub에서 직접 Elastic Beanstalk로 연속 배포 파이프라인을 설정하도록 YAML 기반 워크플로를 구성하는 방법은 섹션을 참조[GitHub 작업을 사용하여 Elastic Beanstalk에 배포](deploying-github-actions.md)하세요.
+ **GitLab** -이 [AWS DevOps 개발자 생산성 블로그](https://aws.amazon.com/blogs/devops/deploy-a-docker-application-on-aws-elastic-beanstalk-with-gitlab/) 게시물은 GitLab의 지속적 파이프라인을 구성하여 Node.js 애플리케이션을 Elastic Beanstalk Docker 환경에 배포하는 방법을 보여줍니다.
+ **Azure DevOps** -이 [AWS 블로그 게시물은](https://aws.amazon.com/blogs/dotnet/deploy-to-elastic-beanstalk-with-azure-devops/) Azure Pipelines을 사용하여 Azure DevOps Git 리포지토리에서 Elastic Beanstalk로 연속 배포 파이프라인을 구현하는 방법을 안내합니다.

## 추가 리소스
<a name="deployments.cicd.aws-services.third-party"></a>

다음 타사 도구 및 리소스는 Elastic Beanstalk 환경에 자동 배포 파이프라인을 구현하는 데 도움이 될 수 있습니다.
+ **Jenkins** - [AWS EBDeployment Jenkins 플러그인](https://plugins.jenkins.io/awseb-deployment-plugin/)은 Jenkins 작업 구성 페이지에서 Elastic Beanstalk 환경으로 직접 배포할 수 있도록 지원합니다.
+ **Circle CI:** - [Elastic Beanstalk용 Orbs](https://circleci.com/developer/orbs/orb/circleci/aws-elastic-beanstalk)는 Elastic Beanstalk에 애플리케이션을 배포하고 규모를 조정할 수 있는 재사용 가능한 구성 패키지를 제공합니다.
+ **Bitbucket Pipelines** – 이 [Bitbucket Pipelines을 사용하여 Elastic Beanstalk 애플리케이션 배포](https://avishayil.medium.com/deploy-to-elastic-beanstalk-using-bitbucket-pipelines-189eb75cf052) 문서는 Elastic Beanstalk를 사용하여 Bitbucket Pipelines을 구현하기 위한 기본 구성 예제를 제공합니다.

# GitHub 작업을 사용하여 Elastic Beanstalk에 배포
<a name="deploying-github-actions"></a>

[GitHub Actions](https://docs.github.com/en/actions)는 코드 변경 사항을 리포지토리에 푸시할 때 애플리케이션을 Elastic Beanstalk에 자동으로 배포할 수 있습니다. [Elastic Beanstalk Deploy](https://github.com/aws-actions/aws-elasticbeanstalk-deploy) 작업은 애플리케이션 버전 생성, Amazon S3에 소스 번들 업로드, Elastic Beanstalk 환경에 배포를 처리하는 간단한 YAML 인터페이스를 제공합니다.

## 워크플로 예제
<a name="deploying-github-actions-example"></a>

다음 예제 워크플로는 `main`브랜치로 푸시할 때마다 애플리케이션을 Elastic Beanstalk 환경에 배포합니다. 의 `.github/workflows/` 리포지토리에 `.yml` 파일을 생성합니다.

**Example Elastic Beanstalk 배포를 위한 GitHub Actions 워크플로**  

```
name: Deploy to Elastic Beanstalk

on:
  push:
    branches:
      - main

permissions:
  id-token: write
  contents: read

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Configure AWS credentials
        uses: aws-actions/configure-aws-credentials@v4
        with:
          role-to-assume: arn:aws:iam::123456789012:role/my-github-actions-role
          aws-region: us-east-1

      - name: Deploy to Elastic Beanstalk
        uses: aws-actions/aws-elasticbeanstalk-deploy@v1.0.0
        with:
          aws-region: us-east-1
          application-name: my-application
          environment-name: my-application-env
```

이 워크플로는 리포지토리를 확인하고, [OpenID Connect(OIDC)](https://docs.github.com/en/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services)를 사용하여 [자격 증명 구성 AWS](https://github.com/aws-actions/configure-aws-credentials) 작업을 AWS 통해를 인증한 다음 애플리케이션을 Elastic Beanstalk에 배포합니다. 배포 작업은 리포지토리 콘텐츠를 패키징하고, 소스 번들을 Amazon S3에 업로드하고, 새 애플리케이션 버전을 생성하고, 환경을 생성하거나 업데이트합니다. 기본적으로 배포가 완료되고 환경이 정상 상태로 돌아갈 때까지 기다립니다.

자세한 구성 옵션과 고급 예제는 GitHub의 [Elastic Beanstalk Deploy 작업 README](https://github.com/aws-actions/aws-elasticbeanstalk-deploy#readme)를 참조하세요.

## 추가 리소스
<a name="deploying-github-actions-resources"></a>
+ GitHub의 [Elastic Beanstalk 배포 작업](https://github.com/aws-actions/aws-elasticbeanstalk-deploy) 
+ GitHub에서[AWS 자격 증명 작업 구성](https://github.com/aws-actions/configure-aws-credentials) 
+ [Amazon Web Services에서 OpenID Connect 구성](https://docs.github.com/en/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services)(GitHub 설명서)