どちらのサービスにも共通する内容
ソースコードをホスティングしてgit管理する。
GitLab
- GitLab独自のCI/CDが無料で提供されている(gitlab ci/cd)ので外部のCIサービスを利用する必要がない。
- JavaのCI/CDが充実していて、Java関連の開発者の主要レポジトリとして人気がある。
SaaS版
CI/CDの実行回数に応じて課金されるようになっている。
GitHub
- サーバー構築する必要がないので手軽さでは圧倒的。
- 学校や企業のセキュリティポリシー的に「クラウド上にソースを保管するのはNG」になっている場合は採用はしない。
- 当初はCI/CD機能がなく外部のSaasなどを利用することが一般的だった(CircleCI、Jenkinsなど)が、今はGitHub Actionsという独自CI/CDツールを導入したので機能的な差はあまりなくなっています。
Code Commit
特徴
- リポジトリは基本プライベートになります。
- 他のAWSサービスとの親和性が高いです。
- コスト面は結構かかってしまいます。(月5人までは無料ですがそれ以上追加する場合は一人当たり月100円かかります。)
セキュリティの高さが強み
アクセスするにはAWSのIDとパスワードを知っていないと見れないので、GitHubに比べてセキュリティが高い。また、CodeCommitへの通信の中身も暗号化されます。
Privateにしているプロジェクトでも丸ごと外部の人に対して丸ごと共有することになる。なので、機密情報などが漏れる可能性もある。
また、IAMと連携させてIAMユーザーごとに権限を細かく割り振ることができるのも強みと言えます。
完全マネージド
主にGitLabのインストール版との比較になりますが、AWSにおいて完全マネージドなサービスで保守不要なのが強みと言えるでしょう。
結論
- OSSの開発などソーシャル活動をする場合→GitHub一択
- 完全プライベートでセキュリティまでしっかり重視したい場合→CodeCommit
- セキュリティは担保しつつ自社サーバーを使ってSaasの利用コストを削減したい→GitLab
上記のような使い分けは一般的かなと思います。もちろんGitLabは保守コストがかかるのでその辺は天秤になるかと思います。
一番は、使い慣れているツールを使っていくのが一番良いと思います。一般的にGitHubを使っている現場が一番多いのでエンジニアの学習コストを担保しやすいという意味ではGitHubが一番良いのかもしれません。
この記事へのコメントはありません。