Open3

CI/CDパイプラインの構成検討

mocknmockn

背景

  • 今のPJでアプリケーションのデプロイとインフラのプロビジョニングをCI/CDパイプラインを構築し行うことになった。
  • AWSとGithubを利用して、PJに最適なCI/CDパイプラインの構成を決めたい。
  • アプリケーションについてはGitの運用戦略も合わせて検討する。
  • インフラのプロビジョニングはCloud Formationのテンプレートを利用するため、テンプレートの構成や管理方法も検討する。

検討事項

  • CI/CDパイプライン構成の候補を挙げる(アプリ/インフラ)
  • Git運用戦略(ブランチ戦略)を検討する(アプリ/ インフラ)
  • Cfnテンプレートの構成を検討する
    • 全体構成
    • パラメータ管理

参考

https://qiita.com/i-k/items/3a6b517fa089b054ad7f
https://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/use-aws-codecommit-and-aws-codepipeline-to-deploy-a-ci-cd-pipeline-in-multiple-aws-accounts.html
https://docs.aws.amazon.com/pdfs/whitepapers/latest/organizing-your-aws-environment/organizing-your-aws-environment.pdf
https://qiita.com/ozzy3/items/079f82b6123ec57f3c91

mocknmockn

AWS SAM Pipeline

概要

  • AWS SAMでサーバレスアプリケーションのパイプラインを対話形式で構築できる。
    • 権限やトリガーなど必要なAWSリソースは全て自動で作成してくれる。
  • AWS CodePipeline, Jenkins, GitLab CI/CD, GitHub Actions, Bitbucket Pipelines に対応。
  • 開発環境と本番環境それぞれのデプロイパイプラインが作成できる。
    • テストステージも実装可能。

環境構築

環境

  • MacBook Pro 2019(Intel Core)
  • Python 3.11.6

手順

  1. AWS CLIのインストール
  2. AWS SAM CLIのインストール
  3. デプロイ対象のアプリケーション(Lambda関数)の用意
  • ソースコードはGithub上のリポジトリに用意する。
  • sam initでアプリを作成する。

GitHub + CodePipeline + CodeBuild の実装手順

GitHub + GitHub Actions の実装手順

参考

https://aws.amazon.com/jp/builders-flash/202110/new-lambda-container-development-6/?awsf.filter-name=*all
https://dev.classmethod.jp/articles/sam-pipeline-resource/
https://zenn.dev/rescuenow/articles/16254df718a749