GitLab
リポジトリ管理からCI/CDまでを一体化したDevOpsプラットフォーム
分野「開発基盤・CI/CD」:コードの変更を、壊さずに本番へ届ける仕組み。 分野の役割とつながりは分野の解説へ。
別名:GitLab.com、GL
できること
- ソースコードの履歴を管理し共同編集する :変更履歴とレビューを回したい
- テストとビルドを自動実行する :push ごとに検証したい
- 変更を自動で本番へ配信する :main に入れたら公開されてほしい
GitLab ができないこと
- Free プランの私有トップレベル名前空間に6人目以降のメンバーを追加すること(5人を超えると読み取り専用になる)
- Free プランの月400分を超えて共有RunnerでCI/CDジョブを追加費用なしで走らせ続けること
- 1プロジェクトで10 GiBを超えるリポジトリ(LFS込み)を追加費用なしで保持すること
- 1パイプラインで500ジョブ超、または1プロジェクト・グループあたり11件目以降のパイプラインスケジュールを設定すること
制約
先頭の行が、このツールで最も先に当たる制約。値はすべて出典の一次情報で確認したもの。
| 項目 | 値 | 影響 | 出典 | 検証日 |
|---|---|---|---|---|
| Free プランのCI/CD compute minutes上限 (主要制約) | 400分 / 月(GitLab.com の Free namespace、共有Runner使用分) | 共有Runnerでのジョブ実行が主な消費源で、頻繁なCIやマトリクスビルドはすぐ枯渇する。自己ホストRunnerに切り替えれば消費されない | docs.gitlab.com | |
| Free プランの私有名前空間のユーザー数上限 | 5人まで(トップレベル私有namespace。グループ・サブグループ・プロジェクトを横断してユニークカウント) | 超過すると名前空間全体がリポジトリ・LFS・パッケージ・レジストリへの書き込み不可の読み取り専用状態になる | docs.gitlab.com | |
| プロジェクトあたりのストレージ上限 | 10 GiB(Free tier namespace内の各プロジェクト、Git LFS込み) | 上限を超えたプロジェクトは読み取り専用になりpushできなくなる。動画やビルド成果物を直接コミットする運用では早期に到達する | docs.gitlab.com | |
| パイプライン・ランナーの上限 | 1パイプラインあたり最大500ジョブ、パイプラインスケジュール10件、登録ランナー50件(いずれもプロジェクト/グループ単位) | cronジョブ代わりに多数のスケジュールをGitLab CI単体で管理しようとすると10件で頭打ちになる | docs.gitlab.com | |
| ジョブ成果物(artifacts)のサイズと保持期間 | 1ジョブあたり最大1 GB(圧縮後)、既定保持期間30日 | テストレポートやビルド成果物を長期保管する場所には使えず、必要なら別のストレージへ書き出す設計にする | docs.gitlab.com |
典型的な落とし穴
- 私有namespaceのユーザー数はグループ・サブグループ・プロジェクト全体でユニークカウントされるため、意図せず5人を超えて読み取り専用化することがある
- compute minutesは共有Runner使用時のみ消費される仕組みを知らず、自己ホストRunnerに切り替えれば無償で回避できる点に気づかないまま有料プランへ移行してしまう
- パイプラインスケジュール10件の上限に、定期バッチ処理をすべてGitLab CI側だけで賄おうとして到達する
コスト
- 課金モデル
- 無料枠あり
- 跳ねる条件
Free枠はCI/CD 400分/月・ストレージ10 GiB/プロジェクト・私有namespaceのユーザー5人までが上限。超えると追加compute minutesの購入かPremium/Ultimateへの移行が必要になる。両プランの具体的な月額は料金ページ(about.gitlab.com/pricing/)がクローラーからのアクセスを拒否しており本稿では確認できなかった
- 出典
- docs.gitlab.com 検証
代替手段と差分
| 代替 | 何が違うか |
|---|---|
| GitHub | GitHubはホスティングに特化しCI/CDはGitHub Actionsという別サービスが担う。GitLabはリポジトリ・CI/CD・Issue・コンテナレジストリを単一プラットフォームに統合し、自己ホストへの移行パスも用意する。無料枠のCI/CD分数はGitHub Actions(私有リポジトリで2,000分/月)のほうがGitLab Free(400分/月)より大きい |
| GitHub Actions | GitHub ActionsはGitHub上のCI/CD機能単体で、リポジトリホスティングはGitHub本体が担う。GitLabはリポジトリ・CI/CD・Issue管理を単一のSaaSで完結させる代わりに、無料枠のCI/CD分数がGitHub Actionsより小さい |
選定判断
小規模チームでリポジトリ管理とCI/CDを単一プラットフォームで完結させたい場合の候補。自己ホストへの移行や統合ツールチェーンを重視するならGitLabを選ぶ。Free枠のCI/CD分数(400分/月)やユーザー数(5人)に早期に到達する場合は、GitHub+Actionsの組み合わせや上位プランへの移行を検討する
GitLabはリポジトリのホスティングに加えて、CI/CD・コンテナレジストリ・Issue管理・簡易的なセキュリティスキャンまでを単一のプラットフォームに統合している点が特徴で、SaaS版(GitLab.com)と自己ホスト版(Self-managed)の両方が同じ製品として提供される。
利用者が最初に当たるのはCI/CDのcompute minutesで、Free枠は月400分と小さく、共有Runnerでのビルド・テストがすぐに枠を消費する。次に当たるのが私有名前空間のユーザー数上限(5人)で、こちらは超過すると新規データの書き込みが止まる形で強制される。