この記事の目次
AWSとは

CI CD パイプラインとは

CIとは
Continuous Integration(CI)は、変更されたコードを自動的にビルド・テストする、開発手段の一つです。 従来では全作業を手動で行っており、長時間を要する上にヒューマンエラーによるバグが発生しやすく、発見・修正もしにくいという問題点がありました。CIを導入すると、コードを保存するだけで次の過程が自動で行われます。CDとは
Continuous Delivery(CD)は、変更されたコードの構築・テストなどを自動で行える、開発手段の一つです。 言わばCIの強化版で、デプロイ可能になるまでの過程を自動で行います。これにより、簡単にデプロイの用意が完了します。ただし、最後のデプロイだけは手動で行う必要性があります。 開発において、生産性を高めたり、エラーを素早く発見・修正できるようにします。AWS CodePipelineとは

AWS CodePipelineの特徴7つ

特徴1:アップデートの公開を自動化できる
CodePipelineは、アップデートの公開を自動で行えます。 コードを保存した後の一連のアクションがすべて自動になり、素早く新機能をユーザーに公開できます。必要に応じて、一部を手動に切り替えることも可能です。特徴2:プロセスを設定できる
CodePipelineは、プロセスの内容を設定し、モデリングできます。 新たなリソースを追加する、デプロイのプロバイダを変更するなどのカスタマイズが行えます。 後からニーズに合わせて適切に内容を変更でき、高い柔軟性を持っています。そのため、将来的な設計は不要になります。特徴3:統合できるリソースが豊富
CodePipelineは、多様なリソースと統合できます。 Elastic Container Registry(ECR)やCodeCommitなどから、コードを直接取得できます。CloudFormationをモデリングすれば、Lambda、API Gateway、DynamoDBなどで構築したサーバレスモデルにも対応可能となります。 デプロイのプロバイダとして、CodeDeploy、Elastic Beanstalk、Elastic Container Service(ECS)、Fargateから選択できます。主にCodeDeployが使われています。 さらに、AWSリソース以外の他社製品にも対応しています。具体例として、GitHub、Jenkins、BlazeMeter、XebiaLabsなどがあります。 統合可能なリソースの詳細は、公式ドキュメントをご覧ください。特徴4:プラグインを導入できる
CodePipelineは、プラグインを導入できます。 公式で提供されており、さまざまな機能を取り入れられます。 その他、ユーザー独自のプラグインも導入できます。こちらを使って、独自のサーバをカスタムアクションとして登録可能です。特徴5:パイプラインの状況を確認できる
CodePipelineは、CI CD パイプラインの状況を確認できます。 コンソールまたはコマンドラインインターフェイス(CLI)から表示します。リアルタイムステータス、実行履歴の閲覧や、エラーで止まっているのが見つかった場合は再起動が行えます。 Simple Notification Service(SNS)と統合すれば、何らかの事象が起きた時に通知を受信できるようになります。メッセージステータスやリンクも含まれているので、どこで何が起きたか一目で分かります。特徴6:IAMでのアクセス許可設定
AWS Identityand Access Management(IAM)は、AWSリソースのアクセス管理をサポートするサービスです。 CodePipelineでは、IAMを通して、ワークフローを変更・制御できるユーザーを指定します。特徴7:テンプレートを作成できる
CodePipelineは、JSONドキュメントでテンプレートを作成できます。 ワークフローやテーブルなどを宣言型のJSONドキュメントで定義します。新規作成時や、既存設定の更新時にこれらは適用可能になります。AWSにおけるCI CD パイプラインのセットアップ方法

コードの保存先とCodeDeployを用意する
最初に、コードの保存先となるリポジトリとCodeDeployを用意します。 リポジトリは、CodeCommit、ECRなどが選択可能となります。 作成が終了すれば、CodeDeployでデプロイグループを作成します。一連の過程でElastic Compute Cloud(EC2)が用いられる場合は、あらかじめCodeDeployエージェントのインストールが必要です。パイプラインの作成
次に、CodePipelineでパイプラインを形成します。 IAMでアクセス許可を設定した後、先程用意したリポジトリを選択して、デプロイのプロバイダにCodeDeployを指定します。 この時、ビルドサーバの設定はスキップしても構いません。パイプラインを実行
設定が終了したら、パイプラインを実行します。 CodeDeployによってデプロイが始まります。進行状況はステータスにリアルタイムで表示され、成功の可否もチェック可能となります。 全作業が正常に終了したと確認されれば、セットアップは完了です。 もし失敗があった場合は、そこから再試行が可能です。ただし、全体の構造を変えていると再試行できない場合があるので注意しましょう。AWSにおけるCI CD パイプラインの料金

AWSでCI CD パイプラインを作成してみよう
