はじめに
こんにちは、Global Solutions事業部です。最近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のコスト最適化、インフラ設計、構築、運用ついてご質問、不明点などありましたらお気軽にご連絡ください。
アイレット株式会社のGlobal Solutions事業部では、お客様のビジネス変革を実現しながら、最新のデータソリューションの導入を加速できるように設計されたデータ分析ソリューションとデータサービスの幅広いポートフォリオを提供しています。ビジネスの成功こそ、私たちが追求するものです。お困りの際はぜひ一度お気軽にお問い合わせください。