Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Terraform CI/CD パイプラインにおける AWS CodeCommit の代替手段

hiyanger
November 13, 2024

Terraform CI/CD パイプラインにおける AWS CodeCommit の代替手段

2024/11/14 HashiTalks: Japan
https://events.hashicorp.com/hashitalksjapan

視聴者数は幅あって50-150くらいだった

構築の参考
https://zenn.dev/hiyanger/scraps/0a10e7150e8e9e

hiyanger

November 13, 2024
Tweet

More Decks by hiyanger

Other Decks in Technology

Transcript

  1. 話す内容 1. 旧 Terraform CI/CD パイプライン 2. CodeCommit の代替手段検討 2-1.

    Amazon CodeCatalyst / 概要から動作まで 2-2. GitLab(EC2) / 概要から動作まで ちょっと AWS よりの内容です
  2. CodeCatalyst ・利用は通常 AWS アカウントからではなく、ビルダー ID から AWS アカウントに繋ぎ混んで使う ・Workflows という

    GitHub Actions 的なものがあり、  AWS 側は IAM ロールだけ作れば terraform plan や apply が流せる(CodePipeline がいらない🔥) AWS 版 GitHub みたいな感じ😽 許容が必要なポイント ※前提:もともと CodeCommit を使っていた理由はシステムを AWS 内に閉じさせたいから (通常 GitHub 利用ができない案件) ・ビルダーID → AWS アカウント という通信経路が発生する ・リージョンがオレゴンとアイルランドしかない(デプロイ自体はどこにでもできる) ・権限まわり(IAM と連動した CodeCommit レベルまでできるのか)
  3. GitLab(EC2) ・EC2 上に構築するのでコードが AWS 上に配置できる( ≒ CodeCommit) ・正しい https 通信が必要なため、証明書の設定も必要

    ・CodePipeline で使う過程で AWS のデベロッパーツールの接続が必要 ・GitLab 構築、証明書、接続、CodePipeline など CodeCatalyst に  比べると作業ボリュームは大きい ・EC2 がデフォルトのインスタンスサイズとディスクでは動かない  多少の上乗せが必要 = コスト要考慮 許容が必要なポイント 概要
  4. ※ 非 VPC 経由における GitLab と CodePipeline 間の通信 接続には別 VPC

    を経由する方法としない方法がある ↓ 経由しない方法で GitLab 側の通信を自分の IP からの https (git push だけできる)のみに絞る ↓ CodePipeline 側でソースステージの動作がエラーになった (フローログには CodePipeline からのアクセスが記録されてた コード変更検知まではできたのでおしい!) ↓ 非 VPC だと内部通信だけで完結きる?🤔 非 VPC 経由の接続では GitLab と CodePipeline で AWS 外の通信がされるもよう🤤