

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

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

CI/CD はパイプラインとして表現できます。ここでは、新しいコードが一端に送信され、一連のステージ (ソース、ビルド、テスト、ステージング、本番稼働) でテストされ、本番稼働用のコードとして公開されます。

![\[AWS コードパイプラインの例を示す図\]](http://docs.aws.amazon.com/ja_jp/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/ja_jp/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 Container Registry](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 ネイティブオートメーションを Management and Orchestration (MANO) フレームワークと CSP のサービスオーケストレーションフレームワークに統合できます。

CI/CD プロセスには、次のステップが含まれます。
+ ネットワークのセットアップ – AWS CDK ネットワーク前提条件の作成 CloudFormation を開始します。
+ ネットワークスタック (VPC、サブネット、ネットワークアドレス変換 (NAT) ゲートウェイ、ルートテーブル、インターネットゲートウェイ)
+ インフラストラクチャのデプロイ — 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 デプロイケースと同様に、継続的な更新とデプロイは、、[Amazon Elastic Container Registry ](https://aws.amazon.com/ecr/) (Amazon ECR)、または [ GitLab Webhooks ](https://docs.gitlab.com/ee/user/project/integrations/webhooks.html)などのサードパーティーソースシステムからトリガーして[AWS CodeCommit](https://aws.amazon.com/codecommit/)、 AWS サービスを使用して自動化できます。

![\[AWS CICD パイプラインフローを示す図。\]](http://docs.aws.amazon.com/ja_jp/whitepapers/latest/cicd_for_5g_networks_on_aws/images/cicd_5g4.png)


*AWS CICD パイプラインのフロー図*

CI/CD パイプラインは を使用して構築され[AWS CodePipeline](https://aws.amazon.com/codepipeline/)、ソフトウェアのリリースに必要なステップをモデル化、視覚化、自動化する継続的デリバリーサービスを利用します。パイプラインのステージを定義することで、ソースコードリポジトリからコードを取得し、そのソースコードをリリース可能なアーティファクトに構築し、アーティファクトをテストして、本番環境にデプロイできます。これらのすべてのステージを正常に通過したコードのみがデプロイされます。必要に応じて、手動承認などの他の要件をパイプラインに追加して、承認された変更のみが本番環境にデプロイされるようにできます。