0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

とある会社のAdvent Calendar 2024

Day 25

CodePipelineテンプレートとGitHubConnectionによるパイプラインの簡易的構築

Last updated at Posted at 2024-12-23

CodeCommitサービス提供終了に伴う弊害

従来、CodeCommitを介してCodePipeを利用しているケースが多い中、CodeCommitが新規アカウントでの利用ができなりました。
3rdパーティのリポジトリを利用したCodePipelineの導入に関する情報が少ないため、簡易的な導入方法を提示します。(GitHub Actionを利用したケースについて、ここでは触れません。)
また、CodePipelineテンプレート機能が新しく追加されておりますので、こちらの機能を利用してみたいと思います。

1.CodePipelineで利用できるバージョン管理システムについて

現状、CodePipelineで利用っできる3rdパーティ製のバージョン管理システムについては、大きく以下3種類存在します。
 A.GitHub
 B.Bitbucket
C.GitLab

本件では、利用頻度の高いA.GitHubを題材にします。

2. 題材となる構成図

image.png

3. 手順の流れ

① 準備編(GitHubリポジトリの作成)
② 導入編(外部リポジトリの接続リソースの作成)
③ 構築編(CodePipelineの構築)

外部リポジトリとの連携部分にフォーカスしたいため、 GitHubアカウントがある前提とさせていただきます。

4. 準備編(GitHubリポジトリの作成)

セキュリティ面を意識して、プライベートリポジトリの作成します。
GitHubのページから順次、必要設定を実施していきます。
image.png

image.png

作成完了時のリポジトリ画面になります。
image.png

リポジトリが作成できたら、リポジトリURLをメモします。
image.png

ローカル環境に上記で作成したGitリポジトリを展開し、簡単なCloudFormationテンプレートを作成します。

先ほどメモしたGitリポジトリのURLを使用してGitクローンします。

$ git clone https://github.com/ueno120525/cicdrepo.git

CodePipelineのデプロイステージで使用するCloudFormationテンプレートになります。
(一番簡単な内容にしております。)

template_cfn.yaml
AWSTemplateFormatVersion: "2010-09-09"
Resources:
    S3Bucket:
      Type: 'AWS::S3::Bucket'
      Properties:
        AccessControl: Private
        BucketName: githubcon-test-202412230900

作成したCloudFormationテンプレートをリモートのGitリポジトリにPushまで一気に実施します。

$ git add template_cfn.yaml
$ git commit -m "サンプルテンプレートの登録"
$ git push origin main:main

5. 導入編(外部リポジトリの接続リソースの作成)

ここからが、本題のメインとなります。
CodePipelineのマネージメントコンソールから、[設定] > [接続]から接続リソースを作成していきます。
作成イメージは、ChatbotでSlack連携となる設定を作成するイメージと同じです。
image.png

image.png

GitHub側の認証画面が自動的に表示されますので、必要事項を入力して進めます。
image.png

AWS側からの接続要求に対する、接続承認を問われますので承認します。
image.png

マネージメントコンソール画面の状態が変わりますので、新しい接続アプリをインストールします。
接続アプリとは、GitHub側にAWS側へ接続するGitHub接続専用ユーザとなります。
image.png

GitHub側の画面自動的に表示されますので、対象リポジトリを選択してインストールします。(ここでは全てのリポジトリを指定)
image.png

直前でインストールしたアプリの識別情報が自動入力されますので、その状態で接続します。
image.png

ここまでの手順を実施して、GitHubで「GitHub Apps」に「AWS Connector for GitHub」が作成されていることを確認します。
image.png

導入編として以上となります。

6. 構築編(CodePipelineの構築)

ここからは、導入したGitHubConnectionを利用して、CodePipelineを作成していきます。
導入編で作成したGitHubConnectionがCodeCommitの代わりとして、作成していく感じとなります。
本編では、最近リリースされたCodePipelineテンプレートを利用して、必要最低限の入力でデプロイしてみたいと思います。
image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

7. おまけ

CodePipelineで構築する場合、最終ページで「Preview」エリアを開くことで
利用されているCodePipelineテンプレートの中身を確認することができます。
テンプレートを自作する場合など参考できます。

image.png

image.png

まとめ

3rdパーティのバージョン管理と連携する「接続リソースを」作成することで、CodePipelineに簡単に取り組むことができるます。
CodePipelineテンプレートが新しく利用できるようになったため、少量の入力値でCodePipelineが構築できます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?