2022/04/7

AWSでCI CDパイプラインを作成する方法とは?CodePipelineについても紹介

 
  

AWSとは

Amazon Web Services(AWS)は、アメリカの大手企業「Amazon.com」が提供しているクラウドサービスです。 175を超える製品が提供されており、多種多様なワークロードに対応しています。多くのサービスには無料利用枠があり、手軽にお試しができます。 日本の他、アメリカや中国、ドイツ、イギリスなど多くの地域にリージョンを展開しており、世界各国に向けた発信が可能となります。

CI CD パイプラインとは

CI CD パイプラインは、アプリケーションのアップデートを公開するまでの過程を自動で行うシステムです。 コードの変更が確認されると自動的にプロセスを始め、素早く本番のサーバへ反映できます。 AWSにおいては、主にCodePipelineを使って作成します。後の項目で、作成手順やCodePipelineについて触れていきます。

CIとは

Continuous Integration(CI)は、変更されたコードを自動的にビルド・テストする、開発手段の一つです。 従来では全作業を手動で行っており、長時間を要する上にヒューマンエラーによるバグが発生しやすく、発見・修正もしにくいという問題点がありました。CIを導入すると、コードを保存するだけで次の過程が自動で行われます。

CDとは

Continuous Delivery(CD)は、変更されたコードの構築・テストなどを自動で行える、開発手段の一つです。 言わばCIの強化版で、デプロイ可能になるまでの過程を自動で行います。これにより、簡単にデプロイの用意が完了します。ただし、最後のデプロイだけは手動で行う必要性があります。 開発において、生産性を高めたり、エラーを素早く発見・修正できるようにします。

AWS CodePipelineとは

AWS CodePipelineは、CIとCDをサポートするサービスです。 CDでは手動だったデプロイ作業も自動で行えるようになり、アップデートを公開するまでの過程が完全に自動化されます。 AWSでCI CD パイプラインを形成する時は、こちらがメインとして働きます。

AWS CodePipelineの特徴7つ

この項目では、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 パイプラインのセットアップ方法

この項目では、AWSでCI CD パイプラインをセットアップする手順についてご紹介します。 前の項目でご紹介したCodePipelineが主に使用されます。こちらをCodeDeployに接続することで、全過程を自動化したパイプラインが完成します。 本記事では、CodePipeline、CodeDeployを使用した場合の手順を説明していきます。 公式ドキュメントにチュートリアルがあるので、そちらも合わせてご覧ください。

コードの保存先とCodeDeployを用意する

最初に、コードの保存先となるリポジトリとCodeDeployを用意します。 リポジトリは、CodeCommit、ECRなどが選択可能となります。 作成が終了すれば、CodeDeployでデプロイグループを作成します。一連の過程でElastic Compute Cloud(EC2)が用いられる場合は、あらかじめCodeDeployエージェントのインストールが必要です。

パイプラインの作成

次に、CodePipelineでパイプラインを形成します。 IAMでアクセス許可を設定した後、先程用意したリポジトリを選択して、デプロイのプロバイダにCodeDeployを指定します。 この時、ビルドサーバの設定はスキップしても構いません。

パイプラインを実行

設定が終了したら、パイプラインを実行します。 CodeDeployによってデプロイが始まります。進行状況はステータスにリアルタイムで表示され、成功の可否もチェック可能となります。 全作業が正常に終了したと確認されれば、セットアップは完了です。 もし失敗があった場合は、そこから再試行が可能です。ただし、全体の構造を変えていると再試行できない場合があるので注意しましょう。

AWSにおけるCI CD パイプラインの料金

AWSでCI CD パイプラインを実行するにあたっての料金は、その過程で使ったリソースによって決まります。 例としてCodePipelineの場合、アクティブなパイプライン1つにつき1USD(≒約103円)の料金が発生します。ちなみに、CodeDeployはEC2、Lambdaで使った場合のみ、料金がかかりません。 さまざまなリソースを使う分、料金計算が複雑になる場合が多いので注意しましょう。料金計算ツールを使って見積もりすることをおすすめします。

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

この記事では、AWSにおけるCI CD パイプラインについてご紹介しました。 CodePipeline、CodeDeployを通じて、通常のCIやCDでは手動のみだったデプロイも自動で行えるようになり、アップデートを公開するまでの全過程が自動化されます。手動の作業を無くすことで、ヒューマンエラーを減らし、速度や品質を高められます。 CodePipelineでは、手軽に試験をしてもらうために作成後30日間は無料で使用可能です。まずは試してみましょう。]]>

ITエンジニアへのキャリアチェンジならキャリアチェンジアカデミー

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニア
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞

おすすめの動画

  • 【未経験からIT業界へ転職するなら】相談窓口とスキルの獲得はここで解決!IT転職が一気に有利に!【キャリアチェンジアカデミー】

  • 【費用一切不要】未経験からIT業界へ転職するならまずはここへ相談!【キャリアチェンジアカデミー】

  • 【何のエンジニアになれるのか?】未経験からITエンジニアを目指すとこんな道がある【キャリアチェンジアカデミー】