AWS認定資格 WEB問題集&徹底解説

クラウドプラクティショナー

AWS CodeCommit の概要と試験出題ポイントは?

AWSサービスの一つであるAWS CodeCommitはどんな内容なのでしょうか?また、AWS認定資格のクラウドプラクティショナー(CLF)に合格するためには、サービスのどんなポイントを押さえておけばよいのでしょうか?
ここでは、そんなあなたの疑問に回答していきたいと思います

AWS CodeCommit 徹底解説 | AWS認定試験の頻出ポイントまとめ

1. サービス概要

AWS CodeCommitは、AWSが提供するフルマネージドのソース管理(Git)サービスです。プライベートGitリポジトリをホストし、スケーラブルで安全なバージョン管理を実現します。インフラ管理が不要で、既存のGitツール・コマンドをそのまま使用できます。

なお、2024年7月以降、AWSはCodeCommitの新規顧客向け提供を制限しています(既存利用者は継続利用可能)。試験対策としてはGitリポジトリのマネージドサービスとしての位置付け・IAM統合・CI/CD連携を理解しておくことが重要です。

2. 主な特徴と機能

2.1 Gitリポジトリのホスティング

  • 標準のGitプロトコル(HTTPS/SSH)でアクセス。既存のGitクライアント・IDEと互換。
  • リポジトリサイズ・ファイル数の事実上無制限スケーリング。

2.2 プルリクエストとコードレビュー

プルリクエスト機能でコード変更のレビュー・コメント・差分確認が可能。承認ルール(Approval Rules)でマージ前に必要な承認者数を設定できます。

2.3 トリガーとイベント通知

  • トリガー: プッシュ等のイベントでSNS通知・Lambda関数を起動。
  • EventBridge統合: リポジトリイベントをEventBridgeで検知してCI/CDパイプラインを自動起動。

2.4 CodePipeline/CodeBuildとの統合

CodePipelineのSourceステージとして使用→コードプッシュで自動的にCI/CDパイプラインをトリガー。

3. アーキテクチャおよび技術要素

  • HTTPS接続: IAMユーザーのGit認証情報(HTTPS Git credentials)またはgit-remote-codecommit(GRC)でIAM認証。
  • SSH接続: IAMユーザーにSSH公開鍵を登録してSSHでアクセス。
  • リージョン: リポジトリは特定リージョンに作成される。

4. セキュリティと認証・認可

  • IAM認証: リポジトリへのアクセスはIAMポリシーで細かく制御(ブランチ単位の制御も可能)。
  • 暗号化: 保存時はKMSで自動暗号化・転送時はHTTPS/SSHで暗号化。
  • MFA: IAMと統合してMFAを強制可能。
  • 承認ルールテンプレート: 特定ブランチへのマージに承認者を必須化してコード品質を担保。

5. 料金形態

  • アクティブユーザー数ベースの課金(最初の5アクティブユーザー/月は無料)。
  • 各アクティブユーザーには一定のストレージ・Gitリクエストが含まれる。

6. よくあるアーキテクチャ・設計パターン

  • CI/CDのソース: CodeCommit → CodePipeline(Sourceステージ)→ CodeBuild → CodeDeploy。AWSネイティブのCI/CDパイプライン。
  • 承認フロー付きデプロイ: 承認ルールでmainブランチへのマージに複数承認を必須化→マージ後に自動デプロイ。
  • イベント駆動の自動処理: プッシュ → トリガー → Lambda(コード品質チェック・通知)。

7. 設定・デプロイ手順(ハンズオン例)

  1. CodeCommitコンソール→「リポジトリを作成」。
  2. IAMユーザーにHTTPS Git認証情報を生成(またはSSH公開鍵を登録)。
  3. git cloneでリポジトリをクローン→コードをコミット・プッシュ。
  4. プルリクエストを作成→承認ルールに従ってレビュー・マージ。
  5. CodePipelineのSourceステージにCodeCommitを設定してCI/CDを自動化。

8. 試験で問われやすいポイント

8.1 CodeCommitの役割

  • Q: AWSのフルマネージドGitリポジトリサービスは?
    A: AWS CodeCommit(プライベートGitリポジトリをホスト。IAMでアクセス制御・KMSで暗号化)。

8.2 認証方法

  • Q: CodeCommitリポジトリへの接続方法は?
    A: HTTPS(IAMユーザーのGit認証情報またはgit-remote-codecommit)・SSH(IAMユーザーにSSH公開鍵を登録)。IAMで認証・認可を一元管理。

8.3 承認ルール

  • Q: 特定ブランチへのマージに必須の承認を設定するには?
    A: プルリクエストの承認ルール(Approval Rule)またはテンプレートで必要な承認者数を設定。

8.4 CI/CD統合

  • Q: CodeCommitへのプッシュでCI/CDパイプラインを自動起動するには?
    A: CodePipelineのSourceステージにCodeCommitを設定(EventBridge経由で変更を検知して自動トリガー)。