AWS でCICD パイプライン実装 簡単な構成と利点について

2023年12月8日- By Rika Chinen

Ⅰ. はじめに

こんにちは、AWS DevOps エンジニアの知念です。最近AWSでCICDパイプラインを実装する機会があったので、CICDパイプラインの簡単な構成と解決できる課題について書きたいと思います。

Ⅱ. AWSのCICDサービス

AWSはCodePipeline、CodeBuild、CodeCommitなどのCICDに特化したサービスを提供しています。これらのサービスをアクションごとに組み合わせてパイプラインを作ります。以下にLambda関数をデプロイするパイプラインの例を記載しました。

**アクションを実行するリソースは複数あります。一覧はこちらをご参照ください。(link)

Ⅲ. ステージについて 

パイプラインは自由にアクションを組むことができ、ソース、ビルド、テスト、デプロイ、承認、Invokeのカテゴリがあります。各アクションの種類をステージと呼び、一つのパイプラインではソースとソース以外の2つ以上のステージが必須となります。Lambda関数をデプロイするシンプルな構成を図面にすると以下のようになります。

ソース – Code Commit
ここがパイプライン開始のトリガーとなります。CodeCommitレポジトリのmain ブランチにコードをコミットするとパイプラインが起動するように設定しました。
ビルド – CodeBuild
ソースステージでコミットしたコードをコンパイルし、ビルドします。
デプロイ – CloudFormation
CodeBuildのアウトプットを利用してCloudFormationスタックがLambdaをデプロイします。
承認 – SNS
最後にデプロイ完了の通知が送信されます。担当者が承認するとパイプラインが完了します。
Code Pipelineは各ステージを紐付けて全体をモデル化します。

Ⅳ. CICDパイプラインを導入する利点

上記で簡単なパイプライン構成について記載しました。次にCICD パイプラインの利点について考えてみます。この記事の例のLambda構築の自動化では以下の利点が考えられます。

  • マニュアルの作業が減る (主にコードをレポジトリにコミットするのみ。開発自体に集中できる)
  • バージョン管理ができる (ロールバックが可能)
  • チームでの開発がしやすくなる (git/CodeCommitのプルリクエストとパイプラインの承認ステップで複数人のチーム開発ができる)
  • 作業の切り分けができる(開発者、テスターなどの役割別で承認ステップの通知先を分ける、シニアエンジニアが品質管理できる等)
  • その他、AWSアカウントへのコンソールログインが不要

Ⅴ.まとめ

AWSでCICDパイプラインを使用することは多くのメリットがあります。エンジニアの共同作業が可能になり、デプロイの品質とスピードを向上させることができます。また、AWSのCICDサービスも存在するので導入がしやすくなっています。以上、AWSのCICDについて書かせて頂きました。AWSのコスト最適化、インフラ設計、構築、運用ついてご質問、不明点などありましたらお気軽にご連絡ください

Rackspaceについて 

Rackspace Technologyの日本国内サービスは、アイレット株式会社Global Solutions事業部より提供させていただきます。Amazon AWSMicrosoft Azureの導入検討のコンサルティング(勉強会)から構築、運用・保守までワンストップのクラウド支援サービスです。

お客様のご要望に柔軟に対応いたします。まずはお気軽にご相談ください。