LoginSignup
1
1
記事投稿キャンペーン 「2024年!初アウトプットをしよう」

Fargate上のGitLab起点でGitOpsを実現するパターンのまとめ

Last updated at Posted at 2024-01-10

はじめに

この記事はDevOps on AWS大全 実践編の一部です。
DevOps on AWS大全 実践編の一覧はこちら

この記事ではFargate上のGitLab起点で起動するCICDパイプラインのアーキテクチャのまとめを解説しています。

具体的には以下流れで説明します。

  • 解決した課題の整理
  • アーキテクチャの策定
  • 策定したアーキテクチャで達成できたこと

AWSの区分でいう「Level 400 : 複数のサービス、アーキテクチャによる実装でテクノロジーがどのように機能するかを解説するレベル」の内容です。

この記事を読んでほしい人

  • DevOpsエンジニアがアーキテクチャを決めるときにどのような思考フローを踏んでいるか知りたい人
  • Fargate上のGitLab起点で起動するCICDパイプラインのアーキテクチャを知りたい人
  • AWS Certified DevOps Engineer Professionalを目指している人

前回までの流れ

こちらの記事で以下のアーキテクチャを策定しました。

解決した課題の整理

現在、解決した課題は以下になります。

  • GitLabにコミットしたCloudFormationテンプレートを使ってGitOpsを実現したい
  • GitLabにコミットしたECSの定義を使ってGitOpsを実現したい
  • GitLabにコミットしたLambdaの定義を使ってGitOpsを実現したい
  • GitLabにコミットしたEC2 ImageBuilderの定義を使ってGitOpsを実現したい
  • 管理用アカウントにあるCodeCommitを起点にして、開発用アカウントのGitOpsを実現したい
  • CICDパイプラインを実行した後、実行完了までの間はマネジメントコンソールを見たくない

ということで、これをどうやって解決したか考えていきましょう。

アーキテクチャの策定

ここからはこれまで策定してきたアーキテクチャを整理していきます。

Fargate上のGitLab起点でCloudFormationを更新するGitOps

以下のようなアーキテクチャを作成しました。

Fargate上のGitLab起点でECSを更新するGitOps

以下のようなアーキテクチャを作成しました。

Fargate上のGitLab起点でLambdaを更新するGitOps

以下のようなアーキテクチャを作成しました。

Fargate上のGitLab起点でEC2を更新するGitOps

以下のようなアーキテクチャを作成しました。

まとめ

本記事ではFargate上のGitLab起点でGitOpsを実現するパターンをまとめました。

これらのパイプラインを1つの図にまとめるとわかりにくいので分けて書きましたが、本来は1つのCodeCommitに対してこれらのような複数のパターンのパイプラインが刺さっているアーキテクチャになります。

また、連携先のチャットも当然ですが1つです。

今回策定したアーキテクチャで実現できたのは以下の項目です。

  • Fargate上のGitLabを起点にCloudFormation、ECS、Lambda、EC2を更新するGitOps
  • 1つのGitLabを起点としてマルチアカウントのCodePipelineを動作させるCICDパイプライン
  • マネジメントコンソールを確認する必要があるタイミングでチャットに通知を飛ばすChatOps

次回はロギングを考えてみたいと思います。

1
1
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
1
1