참조 배포

AWS 기반 .NET Core CI/CD

자동화된 .NET Core 애플리케이션 파이프라인 배포

이 솔루션은 Amazon Web Services(AWS) 클라우드에서 자동화된 지속적 통합 및 지속적 전달(CI/CD) 환경을 제공합니다. .NET Core 애플리케이션을 위한 CI/CD 파이프라인을 구현하려는 개발자를 대상으로 합니다.

.NET Core CI/CD 환경은 AWS CodePipeline, AWS CodeBuild 및 AWS CodeDeploy를 사용하여 애플리케이션 업데이트를 관리합니다. CI/CD 파이프라인은 업데이트를 위해 GitHub 리포지토리를 폴링합니다. 구성된 리포지토리 분기 내에서 코드가 수정될 때마다 파이프라인은 최신 소스 코드를 가져와 자동으로 애플리케이션을 구축합니다. 그런 다음 Amazon Linux 2를 실행하는 AWS Elastic Beanstalk 환경에 애플리케이션을 배포합니다.

이 확장 가능한 배포를 통해 기능과 업데이트를 빠르고 안정적으로 제공할 수 있습니다. 관리할 빌드 서버가 없으며 사용한 만큼만 비용을 지불하면 됩니다.

이 솔루션은 AWS에서 개발되었습니다.

  •  구축할 내용
  • 이 솔루션은 다음을 설정합니다.

    • 아티팩트를 보관하기 위한 Amazon Simple Storage Service(Amazon S3) 버킷
    • 애플리케이션의 최신 구축 패키지가 배포될 때 대상 역할을 하는 Elastic Beanstalk 환경
    • 소스, 구축 및 배포 단계가 있는 CI/CD 파이프라인.

    소스 단계는 구성된 GitHub 리포지토리 분기에서 코드가 변경될 때마다 CodePipeline을 호출합니다. 이 단계에서는 웹후크를 통해 애플리케이션 소스 코드를 통합하는 GitHub를 구성합니다. 그런 다음 최신 GitHub 코드를 가져와 Source Artifacts 디렉터리의 S3 버킷에 넣습니다.

    구축 단계는 S3 버킷에서 소스 코드를 가져오는 CodeBuild를 호출합니다. CodeBuild에서 제공하는 .NET Core용 Amazon Linux 2 Docker 이미지는 연결된 BuildSpec.yml 파일에 제공된 단계를 사용하여 최신 소스 코드를 컴파일합니다. 결과 구축 패키지는 S3 버킷의 Build Artifacts 디렉터리에 저장됩니다.

    배포 단계는 CodeDeploy를 호출하여 S3 버킷에서 구축 패키지를 가져와 Elastic Beanstalk 환경에 배포합니다.

  •  배포 방법
  • .NET Core CI/CD를 배포하려면 배포 안내서의 지침을 따르세요. 배포 프로세스는 10분가량 걸리며 다음 단계를 포함합니다.

    1. 아직 AWS 계정이 없으면 https://aws.amazon.com에서 가입하고 계정에 로그인합니다.
    2. 솔루션을 시작합니다.
    3. CI/CD 파이프라인을 시작하여 배포를 테스트합니다. 솔루션에 포함된 샘플 애플리케이션을 사용할 수 있습니다.

    Amazon은 이 솔루션에서 AWS와 협업하는 AWS 파트너와 사용자 배포 정보를 공유할 수 있습니다.  

  •  비용 및 라이선스
  • 이 솔루션에는 라이선스 요구 사항이 없습니다.

    이 솔루션을 실행하는 동안 사용되는 AWS 서비스 및 유료 타사 라이선스 비용은 고객이 부담해야 합니다. 솔루션 사용에 따른 추가 비용은 없습니다.

    이 솔루션에는 사용자 지정할 수 있는 구성 파라미터가 포함되어 있습니다. 인스턴스 유형과 같은 이러한 일부 설정에 따라 배포 비용이 달라집니다. 예상 비용은 사용하는 각 AWS 서비스의 요금 페이지를 참조하세요. 요금은 변경될 수 있습니다.

    팁: 솔루션 배포 후 관련 비용을 추적할 수 있도록 AWS Cost and Usage Report를 생성하세요. 이 보고서는 계정의 Amazon Simple Storage Service(S3) 버킷에 대한 과금 지표를 제공합니다. 이 보고서는 매월 사용량을 기반으로 한 추정 요금을 제공하고 월말에 데이터를 집계합니다. 자세한 내용은 AWS Cost and Usage Reports란 무엇인가요?를 참조하세요.