

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

# 의 CI/CD AWS
<a name="cicd-on-aws"></a>

CI/CD는 한 쪽에 새 코드가 제출되고, 일련의 단계(소스, 빌드, 테스트, 스테이징 및 프로덕션)에서 테스트된 다음, 프로덕션 지원 코드로 게시되는 파이프라인으로 표시할 수 있습니다.

![\[AWS 코드 파이프라인의 예를 보여주는 다이어그램\]](http://docs.aws.amazon.com/ko_kr/whitepapers/latest/cicd_for_5g_networks_on_aws/images/cicd_5g2.png)


*CICD 파이프라인 개요*

CI/CD 파이프라인의 각 단계는 전송 프로세스에서 논리적 단위로 구성됩니다. 각 단계는 코드의 특정 측면을 심사하는 게이트 역할을 합니다. 코드가 파이프라인을 통해 진행됨에 따라 코드의 더 많은 측면이 계속 확인되므로 이후 단계에서 코드의 품질이 더 높다고 가정합니다. 초기 단계에서 발견된 문제는 파이프라인을 통해 코드가 진행되지 않도록 합니다. 테스트 결과는 즉시 팀에 전송되며, 소프트웨어가 단계를 통과하지 못하면 모든 추가 빌드 및 릴리스가 중지됩니다.

AWS 는 소프트웨어 개발 및 릴리스 주기를 가속화하기 위해 완전한 CI/CD 개발자 도구 세트를 제공합니다.는 정의된 릴리스 모델을 기반으로 코드 변경이 있을 때마다 릴리스 프로세스의 빌드, 테스트 및 배포 단계를 [AWS CodePipeline](https://aws.amazon.com/codepipeline/) 자동화합니다. 이를 통해 기능과 업데이트를 빠르고 안정적으로 제공할 수 있습니다.

코드 파이프라인은 다른 서비스와 통합할 수 있습니다. Amazon [Simple Storage Service](https://aws.amazon.com/s3/)(Amazon S3)와 같은 AWS 서비스 또는 GitHub.와 같은 타사 제품일 수 AWS CodePipeline 있습니다. 다음을 비롯한 다양한 개발 및 운영 사용 사례를 해결할 수 있습니다.
+ 를 사용하여 코드 컴파일, 빌드 및 테스트 [AWS CodeBuild](https://aws.amazon.com/codebuild/)
+ 컨테이너 기반 애플리케이션을 클라우드에 지속적으로 제공
+ 네트워크 서비스 또는 특정 클라우드 네이티브 네트워크 함수에 필요한 아티팩트(예: 설명자 및 컨테이너 이미지)의 배포 전 검증
+ 기준 및 회귀 테스트를 포함하여 컨테이너화된 네트워크 함수/가상 네트워크 함수(CNF/VNF)에 대한 기능, 통합 및 성능 테스트
+ 신뢰성 및 재해 복구(DR) 테스트.

![\[AWS CICD 파이프라인 구성 요소를 보여주는 다이어그램\]](http://docs.aws.amazon.com/ko_kr/whitepapers/latest/cicd_for_5g_networks_on_aws/images/cicd_5g3.png)


*AWS CICD 파이프라인 구성 요소*

AWS 는 다음 AWS 개발자 도구를 사용하여 CI/CD 파이프라인을 설정할 수 있습니다.
+ [AWS CodeCommit](https://aws.amazon.com/codecommit/)
+ [AWS CodeBuild](https://aws.amazon.com/codebuild/)
+ [AWS CodePipeline](https://aws.amazon.com/codepipeline/)
+ [AWS CodeDeploy](https://aws.amazon.com/codedeploy/)
+ [Amazon Elastic 컨테이너 레지스트리](https://aws.amazon.com/ecr/)
+ [AWS CodeStar](https://aws.amazon.com/codestar/)

CI/CD 파이프라인 생성은 [AWS CDK](https://aws.amazon.com/cdk/) 및를 사용하여 자동화할 수 있습니다[CloudFormation](https://aws.amazon.com/cloudformation/). NFV 도메인에서이 AWS 기본 자동화는 관리 및 오케스트레이션(MANO) 프레임워크와 CSP의 서비스 오케스트레이션 프레임워크에 통합할 수 있습니다.

CI/CD 프로세스에는 다음 단계가 포함됩니다.
+ 네트워크 설정 - 네트워크 사전 조건 생성을 AWS CDK CloudFormation 시작합니다.
+ 네트워킹 스택(VPC, 서브넷, NAT(Network Address Translation) 게이트웨이, 라우팅 테이블 및 인터넷 게이트웨이)
+ 인프라 배포 - 다음 리소스 스택 생성을 AWS CDK CloudFormation 시작합니다.
+ 컴퓨팅 스택([Amazon Elastic Kubernetes Service](https://aws.amazon.com/eks/)(Amazon EKS) 클러스터 생성, EKS 작업자 노드, [AWS Lambda](https://aws.amazon.com/lambda/))
+ 스토리지 스택(Amazon S3 버킷, [Amazon Elastic Block Store](https://aws.amazon.com/ebs)(Amazon EBS) 볼륨 및 [ Amazon Elastic File System](https://aws.amazon.com/efs/)(Amazon EFS) 
+ 스택 모니터링([ CloudWatch ](https://aws.amazon.com/cloudwatch/), [ Amazon OpenSearch Service](https://aws.amazon.com/opensearch-service/)(OpenSearch Service) 
+ 보안 스택([AWS Identity and Access Management](https://aws.amazon.com/iam/)(AWS IAM), [ Amazon Elastic Compute Cloud](https://aws.amazon.com/ec2)(Amazon EC2) 보안 그룹, VPC [ 네트워크 액세스 제어 목록](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html)(NACLs) 
+ **클라우드 네트워크 함수(CNF) 배포 **-이 단계에서 CNF는 [ Kubectl ](https://kubernetes.io/docs/reference/kubectl/overview/) 및 Helm 차트 도구를 사용하여 EKS 클러스터에 배포됩니다. 또한이 단계에서는 CNFs가 효율적으로 작동하는 데 필요한 특정 애플리케이션 또는 도구(예: [ Prometheus ](https://prometheus.io/) 또는 [ Fluentd ](https://www.fluentd.org/))를 배포합니다. CNFs Lambda 함수를 통해 배포하거나를 사용하여 배포할 수 있습니다 AWS CodeBuild.
+ 지속적 업데이트 및 배포 - 이는 업그레이드로 이어지는 컨테이너/구성 변경의 일부인 변경 사항을 배포하기 위해 반복적으로 수행되는 일련의 단계입니다. CNF 배포 사례와 마찬가지로 , [AWS CodeCommit](https://aws.amazon.com/codecommit/) [ Amazon Elastic Container Registry](https://aws.amazon.com/ecr/)(Amazon ECR) 또는 GitLab Webhooks와 같은 타사 소스 시스템의 트리거를 사용하여 AWS 서비스를 사용하여 지속적인 업데이트 및 배포를 자동화할 수 있습니다. [ GitLab ](https://docs.gitlab.com/ee/user/project/integrations/webhooks.html)

![\[AWS CICD 파이프라인 흐름을 보여주는 다이어그램입니다.\]](http://docs.aws.amazon.com/ko_kr/whitepapers/latest/cicd_for_5g_networks_on_aws/images/cicd_5g4.png)


*AWS CICD 파이프라인 흐름도*

CI/CD 파이프라인은를 사용하여 구축[AWS CodePipeline](https://aws.amazon.com/codepipeline/)되며 소프트웨어 릴리스에 필요한 단계를 모델링, 시각화 및 자동화하는 지속적 제공 서비스를 활용합니다. 파이프라인에서 단계를 정의하면 소스 코드 리포지토리에서 코드를 검색하고, 해당 소스 코드를 릴리스 가능한 아티팩트에 빌드하고, 아티팩트를 테스트하고, 프로덕션에 배포할 수 있습니다. 이러한 모든 단계를 성공적으로 통과하는 코드만 배포됩니다. 수동 승인과 같은 다른 요구 사항을 파이프라인에 선택적으로 추가하여 승인된 변경 사항만 프로덕션에 배포되도록 할 수 있습니다.