AWS CodeCommit は、新規のお客様にはご利用いただけなくなりました。AWS CodeCommit の既存のお客様は、引き続きサービスを通常どおりにご利用いただけます。詳細を確認する

AWS CodeCommit のよくある質問

全般

AWS CodeCommit はセキュアで拡張性の高いマネージド型のソースコントロールサービスであり、チームがコードで簡単にコラボレーションを行えるようにします。AWS CodeCommit によって、インフラストラクチャのスケーリングに関する不安要素は排除され、お客様が独自のソース管理システムを稼働させる必要がなくなります。AWS CodeCommit を使用してコードからバイナリまであらゆるものを保存できます。また、CodeCommit は既存の Git ツールとシームレスに連動します。

Git とは、オープンソースの分散型バージョン管理システムです。AWS CodeCommit のリポジトリを操作するには、Git コマンドラインインターフェイス (CLI)、または利用可能な Git クライアントを使用します。Git の詳細は、Git に関するドキュメントを参照してください。AWS CodeCommit と Git の併用に関する詳細は、AWS CodeCommit の使用を開始するを参照してください。

AWS CodeCommit は、コードを保存およびバージョン化するために安全で信頼性が高く、スケーラブルなソースコントロールシステムを必要とするソフトウェア開発者向けに設計されています。さらに、使いやすく、バージョン管理が可能な完全マネージド型のデータ保存をお求めのユーザーは、誰でも AWS CodeCommit をお使いいただけます。例えば、IT 管理者は AWS CodeCommit を使用してスクリプトや設定を保存できます。ウェブデザイナーは AWS CodeCommit を使用して HTML ページや画像を保存できます。

AWS CodeCommit には、他の Git ソース管理システムでは利用できない、以下の多くの特徴があります。

  • 完全マネージド型 – AWS CodeCommit により、ソース管理サーバーをホスト、維持、バックアップ、スケールする必要がなくなります。
  • 安全性 – AWS CodeCommit は通信中および保管中のファイルを自動的に暗号化します。AWS CodeCommit は、AWS Identity and Access Management (IAM) と統合されているため、ユーザー固有のアクセス許可をリポジトリに設定できます。
  • 高可用性 – AWS CodeCommit は Amazon S3 や Amazon DynamoDB など、高度にスケーラブルで、冗長性、耐久性が高い AWS のサービスを利用して構築されます。
  • スケーラブル – AWS CodeCommit を使用してファイルをいくつでも保存できます。リポジトリのサイズに制限はありません。
  • より迅速な開発ライフサイクル – AWS CodeCommit を使用して、AWS クラウドの構築、ステージング、プロダクション環境とリポジトリを密接にすることができます。これにより開発ライフサイクルの速度と頻度が上昇します。

AWS CodeCommit は、共同でのソフトウェア開発向けに設計されています。複数のファイルにわたる変更を一括管理でき、並行分岐化、バージョン比較 (「diffing」) を利用できます。それに対して、Amazon S3 のバージョニングは、個々のファイルの過去のバージョンを復旧できますが、複数のファイルにかけた変更の一括追跡や、ソフトウェアの共同開発に必要なその他の特徴はサポートしていません。

AWS CodeCommit を使用する

AWS マネジメントコンソールにサインインしてリポジトリを作成し、Git を使用してリポジトリを操作できます。サービスの説明が必要なお客様は、ご利用開始にあたってをご覧ください。詳しいチュートリアルが記載されています。

AWS マネジメントコンソールから、または AWS コマンドラインインターフェイス (AWS CLI)AWS SDK、AWS CodeCommit API を使用してリポジトリを作成できます。

CodeCommit コンソールから直接ファイルを編集することもできますし、Git を使ってリポジトリを操作することもできます。たとえば Git コマンドの場合、git clone コマンドを使用して AWS CodeCommit リポジトリのローカルコピーを作成することができます。ローカルファイルに変更を加え、変更を保存する準備ができたら git commit コマンドを使用します。最後に、git push コマンドを使用して AWS CodeCommit リポジトリに変更をアップロードします。ステップバイステップ手順については、AWS CodeCommit の使用を開始するを参照してください。

Git を使用して、既存の Git リポジトリを AWS CodeCommit にインポートすることができます。Subversion、Perforce などのその他のリポジトリに関しては、まず Git インポーターを使用して Git リポジトリに移行します。Git リポジトリをインポートする詳しい手順については、「既存のリポジトリを AWS CodeCommit に移行する」を参照してください。 ローカルコンテンツまたはバージョン管理されていないコンテンツのインポートに関する詳細な手順については、Git 移行ドキュメントを参照してください。

現在、AWS CodeCommit は clone、pull、push、fetch コマンドをサポートしています。

はい。AWS CodeCommit はサブモジュールを含む Git リポジトリと合わせて使用できます。

サービスの上限についての詳細は、上限を参照してください。

リポジトリの各ファイルが 2 GB を超えることはできません。

git clone を完全に実行してローカルコピーを作成している場合、そのコピーを使用してデータを復元できます。追加のバックアップを作成する場合は、複数の方法があります。1 つは Git をバックアップサーバーにインストールし、git clone コマンドを使用したスケジュールジョブを実行して定期的にリポジトリのスナップショットを作成することです。増分変更のみをコピーする場合は git clone ではなく git pull を使用します。バックアップサーバーおよびポーリング頻度の設定によっては、これらの操作によって追加のユーザーまたはリクエスト料金、またはその両方が発生する可能性があることに注意してください。

AWS CodeCommit リポジトリの削除は、取り消しできない一方通行の操作です。削除したリポジトリを復元するには、再度リポジトリを作成し、バックアップまたは完全なクローンからのローカルコピーを使用してデータをアップロードする必要があります。リポジトリを削除できるユーザーを制限するために、IAM ポリシーと MFA による保護の両方を使用することをお勧めします。詳細については、よくある質問の「セキュリティ」セクションにある「AWS CodeCommit へのアクセスを管理するために AWS Identity and Access Management (IAM) を使用することはできますか?」を参照してください。

CodeCommit はコードレビューをサポートし、コードのブ分岐に対してアクセス許可を設定することができます。コードレビューや分岐レベルのアクセス許可に関するヘルプは、ドキュメントを参照してください。

Git を使用して AWS CodeCommit からコードを取得するように、継続的統合 (CI) システムを設定することができます。AWS CodeCommit での CI システムの使用例については、AWS CodeCommit と Jenkins との統合に関するブログ記事をご覧ください。

Amazon SNS コンソールで、HTTP エンドポイントとウェブフックの対象となる URL を使用した SNS トピックを作成できます。その後、AWS CodeCommit コンソールからトリガーを使用して、リポジトリイベントに対してその SNS トピックを構成できます。さらに、AWS Chatbot をご利用のお客様は、お使いの Slack チャンネルまたは Amazon Chime チャットルームに通知が送信されるよう設定することも可能です。詳細については、こちらをご参照ください。

はい。Git 操作や API 呼び出しを含む最新の CodeCommit イベントを AWS CloudTrail コンソールで確認できます。進行中のイベントの記録では、Amazon S3 バケットにトレイルを作成し、イベントを記録することができます。詳細については、「AWS CloudTrail を使用した AWS CodeCommit API コールのログ記録」を参照してください。

セキュリティ

はい。AWS CodeCommit はリソースレベルのアクセス許可をサポートしています。AWS CodeCommit の各リポジトリに対して、どのユーザーがどのアクションを実行できるかを指定できます。また、CodeCommit のアクションに対する AWS Multi-Factor Authentication (MFA) も指定できます。これにより、リポジトリの削除などの、取り消しのきかないアクションに対して、さらに高度な保護を設定できます。AWS CodeCommit API に加えて、git pull および git push をアクションとして指定することで、Git クライアントからのアクセスを管理することもできます。例えば、ユーザーにリポジトリに対する git pull を許可し、git push を禁止することで読み取り専用のユーザーを作成できます。AWS CodeCommit で IAM を使用する方法の詳細については、AWS CodeCommit に対する認証とアクセスコントロールを参照してください。MFA を使用して API アクセスを認証する方法の詳細については、「MFA 保護 - API アクセスの設定」を参照してください。

HTTPS または SSH、もしくはその両方を使用して AWS CodeCommit と通信できます。HTTPS を使用するには、まず AWS CLI をインストールします。AWS CLI で、AWS の認証情報で設定できる Git の認証情報ヘルパーをインストールします。認証情報ヘルパーは AWS CodeCommit に対するすべての HTTPS リクエストに、Signature Version 4 の署名仕様を使用して署名します。SSH を使用するには、ユーザーは公開とプライベートのキーペアを作成し、公開キーを IAM ユーザーに追加します。プライベートキーは AWS CodeCommit との通信を暗号化します。HTTPS および SSH アクセスの詳しい設定手順は、AWS CodeCommit の設定ページを参照してください。

ポート 22 (SSH) またはポート 443 (HTTPS) で、AWS CodeCommit のサービスエンドポイントに対するアウトバウンドアクセスを開く必要があります。

保存中のリポジトリは自動的に暗号化されます。お客様の操作は必要ありません。AWS CodeCommit は AWS Key Management Service (KMS) を使用してリポジトリを暗号化します。最初のリポジトリを作成すると、AWS が管理する CodeCommit キーがお客様の AWS アカウントに作成されます。詳細は、AWS CodeCommit リポジトリの暗号化を参照してください。

はい。AWS アカウントで IAM のロールを作成し、他の AWS アカウントの IAM ユーザーにリポジトリへのアクセス権を委任できます。これにより、その IAM ユーザーは AWS CLI を設定して AWS Security Token Service (STS) を使用し、コマンドを実行する際にロールを継承できます。詳細は、AWS CLI に関するドキュメントのロールの引き受けを参照してください。

リージョン

CodeCommit のリージョン別の可用性の詳細については、リージョン別の製品およびサービスを参照してください。

請求

AWS CodeCommit の費用は、アクティブなユーザー 1 人につき 1 USD/月です。アクティブなユーザーごとに、月に 10 GB のストレージと 2,000 件の Git リクエストがアカウントに許容量として割り当てられ、ご利用いただけます。割り当てられたストレージと Gbit リクエスト数に未使用分があっても、以降の月に繰り越されることはありません。ユーザーに対するストレージまたは Git リクエスト数を増やす必要がある場合は、1 GB あたり毎月 0.06 USD、Git リクエスト 1 件あたり 0.001 USD が追加分として請求されます。ユーザーは、好きなだけ多くの Git リポジトリを保存できます。使用量はすべてのリージョンの合計が毎月計算され、自動的に請求額に適用されます。詳細については、料金表ページをご覧ください。

アクティブなユーザーとは、その月に Git リクエストまたは AWS マネジメントコンソールを使用して AWS CodeCommit リポジトリにアクセスするすべての一意の AWS アイデンティティ (IAM ユーザー、IAM ロール、フェデレーティッドユーザー、ルートアカウント) を指します。一意の AWS アイデンティティを使用して CodeCommit にアクセスするサーバーは、アクティブなユーザーとみなされます。

Git リクエストには、リポジトリのオブジェクトを転送するすべての送信または取得が含まれます。ローカルとリモートのブランチが最新の状態であるためにいかなるオブジェクトも転送されない場合、Git リクエストの許容残数が減少することありません。