Slide 1

Slide 1 text

1 ©AR Advanced Technology All Right Reserved. GitLab SelfManagedをCodePipelineのソースにす るためには思ったより複雑なネットワーク構成が必要 だった 2025年1月28日 ARアドバンストテクノロジ株式会社 発表者:石山徳紘

Slide 2

Slide 2 text

2 ©AR Advanced Technology All Right Reserved. 自己紹介 ARアドバンストテクノロジ株式会社 2023年新卒 石山 徳紘 いしやま のりひろ ▽業務内容 ・サーバレスアーキテクチャの設計・構築 ▽趣味 ・アニメ、YouTube鑑賞 ・カラオケ

Slide 3

Slide 3 text

3 ©AR Advanced Technology All Right Reserved. アジェンダ ・テーマの背景 ・GitLabとは ・検証前の想定 ・検証の際に工夫したこと ・まとめ

Slide 4

Slide 4 text

4 ©AR Advanced Technology All Right Reserved. 今回の発表範囲 説明すること 説明しないこと • GitLabの概要 • GitLab SlefManaged⇔CodePipeline 間のネットワーク構成 • CodePipelineの設定方法、パラメータ

Slide 5

Slide 5 text

5 ©AR Advanced Technology All Right Reserved. テーマの背景

Slide 6

Slide 6 text

6 ©AR Advanced Technology All Right Reserved. CodeCommitの新規利用終了 テーマの選定理由 新たなソース管理方法の検討が必要

Slide 7

Slide 7 text

7 ©AR Advanced Technology All Right Reserved. 案件で検討していることもあり GitLabをソースにしてみよう! テーマの選定理由

Slide 8

Slide 8 text

8 ©AR Advanced Technology All Right Reserved. 【参考」CodePipelineのソースステージに設定できるサービス No. サービス名 説明 1 AWS CodeCommit プライベートGitリポジトリをホストするAWSマネージド なソース管理サービス 2 Amazon ECR Dockerコンテナイメージを保存し、管理するためのフル マネージドなDockerコンテナストレージサービス 3 Amazon S3 AWSが提供するオブジェクトストレージサービス 4 Bitbucket Gitベースのソースコード管理サービス 5 GitHub ソースコードをオンラインで共有・管理するソース管理 サービス 6 GitHub Enterprise Server GitHubが提供するオンプレミス版のGitリポジトリ管理 ツール 7 GitLab Gitを利用したソースコード管理サービス CI/CD、PJ管理機能なども兼ね備えている 8 GitLab Self Managed GitLabのオンプレミス版

Slide 9

Slide 9 text

9 ©AR Advanced Technology All Right Reserved. GitLabとは

Slide 10

Slide 10 text

10 ©AR Advanced Technology All Right Reserved. GitLabの概要 ⚫ “Git” • ローカル環境でのバージョン管理システム ⚫ GitLab • リモートリポジトリをホスティングするサービス • 開発者が協力してコードを管理・共有するためのプラットフォーム

Slide 11

Slide 11 text

11 ©AR Advanced Technology All Right Reserved. GitLabの概要 ⚫ GitLabの種類 1. GitLab.com →SaaS版。自社サーバーを運用する必要がないため負担が少ない。 2. GitLab Self Managed →オンプレミス版。サーバー運用が必要だが基盤回りの自由度が高い。 ⚫ GitLabの機能 1. Gitによるソースコードのバージョン管理 2. プロジェクト管理/課題管理 3. CI/CD機能

Slide 12

Slide 12 text

12 ©AR Advanced Technology All Right Reserved. なぜGitLab SelfManagedなのか ⚫ EC2でホストが可能 ⚫ ソースコードの管理をAWS環境に閉じることができる セキュリティの向上

Slide 13

Slide 13 text

13 ©AR Advanced Technology All Right Reserved. 検証前の想定

Slide 14

Slide 14 text

14 ©AR Advanced Technology All Right Reserved. Code Commitが使えたときの構成

Slide 15

Slide 15 text

15 ©AR Advanced Technology All Right Reserved. ソースがGitLabに変わった場合の構成 当初の想定

Slide 16

Slide 16 text

16 ©AR Advanced Technology All Right Reserved. GitLab Self ManagedをCodePipelineのソースにする際の課題 ⚫ GitLabの認証時にエラーが発生 • GitLabサーバーへの接続がタイムアウトされてしまった

Slide 17

Slide 17 text

17 ©AR Advanced Technology All Right Reserved. EC2でホストするツールのため、 GitLab⇔CodePipeline 間の接続経路の作成が必要 GitLab Self ManagedをCodePipelineのソースにする際の課題

Slide 18

Slide 18 text

18 ©AR Advanced Technology All Right Reserved. 実装の際に工夫したポイント

Slide 19

Slide 19 text

19 ©AR Advanced Technology All Right Reserved. 工夫したポイント 1. GitLabのHTTPS化 2. CodePipelineからのアクセス元IPアドレスの固定化

Slide 20

Slide 20 text

20 ©AR Advanced Technology All Right Reserved. 工夫したポイント 1. GitLabのHTTPS化 2. CodePipelineからのアクセス元IPアドレスの固定化

Slide 21

Slide 21 text

21 ©AR Advanced Technology All Right Reserved. ⚫ ホストと接続の作成 • GitLabのURL、GitLabアクセストークンを登録し、GitLabへの接続を認証する 1. GitLabのHTTPS化 ホスト:実際にサードパーティプロバイダーへアクセスするリソース 接続:サードパーティのリポジトリを他のAWSサービスに接続するためのAWSリソース ・URL ・アクセストークン ※登録するURLはHTTPSでなければならない 用語説明

Slide 22

Slide 22 text

22 ©AR Advanced Technology All Right Reserved. ⚫ GitLabのURLをHTTPS化 • EC2の前にALBを設置し、パブリック証明書を紐づける →HTTPS通信が可能となり、ホストと接続を作成完了 1. GitLabのHTTPS化 〇ALBにアクセスするIPアドレスを固定にしたい インバウンドルール 0.0.0.0/0

Slide 23

Slide 23 text

23 ©AR Advanced Technology All Right Reserved. 工夫したポイント 1. GitLabのHTTP化 2. CodePipelineからのアクセス元IPアドレスの固定化

Slide 24

Slide 24 text

24 ©AR Advanced Technology All Right Reserved. 2. CodePipelineからのアクセス元IPアドレスの固定化 ① ホスト作成時に「VPCを使用」を選択 • 指定したサブネット内にENIが作成され、GitLabへのアクセス元となる ② NAT Gatewayを作成し、IPアドレスを固定 • NAT Gatewayを経由することでアクセス元IPアドレスが固定される →ALBのSGインバウンドを制限できる インバウンドルール NAT GatewayのIP (xx.xx.xx.xx/32) ① ②

Slide 25

Slide 25 text

25 ©AR Advanced Technology All Right Reserved. 最終的な構成図 EC2 証明書 CodePipeline ホストと接続

Slide 26

Slide 26 text

26 ©AR Advanced Technology All Right Reserved. まとめ

Slide 27

Slide 27 text

27 ©AR Advanced Technology All Right Reserved. まとめ(気づき) 1. GitLab Self ManagedをCodePipelineのソースにするときは、HTTPS通信が必須 2. セキュリティリスクを考慮し、IPアドレス制限をかけるべし

Slide 28

Slide 28 text

28 ©AR Advanced Technology All Right Reserved. まとめ(今後の展望) 1. GitLab⇔CodePipeline間の接続経路を、インターネットを経由せずに確立する方 法の検討 2. AWS CI/CDとGitLab CI/CDの利便性の比較

Slide 29

Slide 29 text

29 ©AR Advanced Technology All Right Reserved. ARアドバンストテクノロジ株式会社【略称:ARI】 〒150-0002 東京都渋谷区渋谷2-17-1 渋谷アクシュ 18F TEL : 03-6450-6080 FAX : 03-6450-6088 URL : https://ari-jp.com