本文へスキップ
BecomeCoder

AWSコース · 第13章 開発者ツールと自動化 ― 作って届けるまでを速くする · レッスン62

CI/CDとCodeシリーズ

導入

コードを直すたびに、手作業でビルドしてサーバーにアップロードしていては、時間もかかりミスも起きます。この一連の流れを自動化する考え方がCI/CDです。

説明

CI(継続的インテグレーション)は、コードの変更をこまめに統合し、自動でビルド・テストして壊れていないか確かめること。CD(継続的デリバリー/デプロイ)は、そこから先の本番環境への配信までを自動化することです。

AWSでは、この流れを担当するサービスが工程ごとに分かれています。

サービス担当する工程
AWS CodeCommitソースコードを保管するGitリポジトリ(保管)
AWS CodeBuildソースをビルドし、テストを実行する(ビルド・テスト)
AWS CodeDeployビルド結果をEC2・Lambda・ECSなどへ配布する(デプロイ)
AWS CodePipeline上の工程を一本のパイプラインとしてつなぎ、自動で流す(全体の進行役)
AWS CodeArtifactライブラリ(パッケージ)を保管・共有するリポジトリ
Amazon ECR(Elastic Container Registry)コンテナイメージを保管するリポジトリ
flowchart LR
    Dev["開発者がpush"] --> CC["CodeCommit(保管)"]
    CC --> CP["CodePipeline(進行役)"]
    CP --> CB["CodeBuild(ビルド・テスト)"]
    CB --> CD["CodeDeploy(配布)"]
    CD --> Env["EC2 / ECS / Lambda"]

デプロイの方法にも名前が付いています。ブルー/グリーンデプロイは、新旧2つの環境を用意して切り替える方式で、問題があればすぐ元に戻せます。カナリアリリースは、まず少数の利用者にだけ新版を出して様子を見る方式です(第6章のRoute 53の加重ルーティングでも実現できます)。

読んでみよう

「保管=CodeCommit」「ビルド=CodeBuild」「配布=CodeDeploy」「全体をつなぐ=CodePipeline」。名前がそのまま役割になっているので、工程の順番とセットで覚えましょう。