AWS CodeCommit
AWS が提供するセキュアなプライベート Git リポジトリホスティングサービス
何ができるか
AWS CodeCommit は、フルマネージドのプライベート Git リポジトリをホスティングするサービスです。Git の標準的なコマンドやツールをそのまま使用でき、リポジトリのサイズやファイル数に制限がありません。IAM によるきめ細かなアクセス制御、保存時と転送時の自動暗号化、AWS CloudTrail による操作ログの記録など、エンタープライズグレードのセキュリティ機能を標準で備えています。サーバーの管理は一切不要で、高可用性と耐久性が保証されています。
どのような場面で使うか
チーム開発でのソースコード管理、プライベートリポジトリでの機密コードの安全な保管、CodePipeline と連携した CI/CD パイプラインのソースステージ、CloudFormation テンプレートやインフラコードのバージョン管理、ドキュメントや設定ファイルの変更履歴管理など、Git ベースのバージョン管理が必要な場面で利用されています。 この分野について体系的に学びたい方は、関連書籍 (Amazon) も参考になります。
身近な例え
貸金庫付きの書類保管サービスに例えるとわかりやすいでしょう。大切な書類 (ソースコード) を安全な金庫 (暗号化されたリポジトリ) に保管し、鍵を持つ人 (IAM ユーザー) だけがアクセスできます。書類の変更履歴はすべて記録され、いつでも過去の版に戻せます。金庫の管理や防犯は保管サービス (AWS) が行うため、利用者は書類の内容に集中できます。
CodeCommit とは
AWS CodeCommit は、AWS が提供するフルマネージドの Git リポジトリホスティングサービスです。GitHub や GitLab と同様に Git リポジトリを管理できますが、AWS のインフラ上で動作するため、IAM との統合やデータの暗号化など AWS ネイティブのセキュリティ機能を活用できます。リポジトリは S3 と同等の耐久性で保護され、複数のアベイラビリティゾーンに自動的にレプリケートされます。
主な特徴
CodeCommit はリポジトリのサイズに上限がなく、大規模なモノレポにも対応できます。IAM ポリシーでリポジトリ単位、ブランチ単位のアクセス制御が可能で、特定のブランチへのプッシュを制限するといった運用ができます。プルリクエスト機能でコードレビューのワークフローを構築でき、承認ルールを設定して必要な承認数を満たさないとマージできないようにすることも可能です。SNS 通知やトリガー機能で、プッシュやプルリクエストのイベントを Lambda 関数や他のサービスに連携できます。
セキュリティと暗号化
CodeCommit のデータは保存時に AWS KMS で自動暗号化されます。転送時は HTTPS または SSH で暗号化され、通信経路上でのデータ漏洩を防ぎます。IAM ユーザーやロールによるアクセス制御に加え、AWS Organizations のサービスコントロールポリシー (SCP) で組織全体のアクセスルールを適用できます。CloudTrail との統合により、誰がいつどのリポジトリにアクセスしたかの監査ログが自動的に記録されます。
料金体系
CodeCommit は最初の 5 ユーザーまで無料で利用できます。無料枠には月間 50 GB のストレージと 10,000 回の Git リクエストが含まれます。6 ユーザー目以降は 1 ユーザーあたり月額 1 USD で、追加のストレージとリクエストも低コストで利用できます。小規模チームであれば実質無料で運用可能です。
注意点
- 2024 年 7 月以降、新規の AWS アカウントでは CodeCommit の利用が制限されている。既存アカウントでは引き続き利用可能だが、新規プロジェクトでは GitHub や GitLab の利用も検討すること
- HTTPS 接続には Git 認証情報ヘルパーの設定が必要。IAM ユーザーの HTTPS Git 認証情報を生成するか、credential-helper を設定すること
さらに詳しく知りたい方は、関連書籍 (Amazon) で理解を深められます。