AWS CodeCommit は、新規のお客様にはご利用いただけなくなりました。AWS CodeCommit の既存のお客様は、引き続きサービスを通常どおりにご利用いただけます。詳細を確認する
- デベロッパー用ツール›
- AWS CodeCommit›
- よくある質問
AWS CodeCommit のよくある質問
全般
AWS CodeCommit とは何ですか?
AWS CodeCommit はセキュアで拡張性の高いマネージド型のソースコントロールサービスであり、チームがコードで簡単にコラボレーションを行えるようにします。AWS CodeCommit によって、インフラストラクチャのスケーリングに関する不安要素は排除され、お客様が独自のソース管理システムを稼働させる必要がなくなります。AWS CodeCommit を使用してコードからバイナリまであらゆるものを保存できます。また、CodeCommit は既存の Git ツールとシームレスに連動します。
Git とは何ですか?
Git とは、オープンソースの分散型バージョン管理システムです。AWS CodeCommit のリポジトリを操作するには、Git コマンドラインインターフェイス (CLI)、または利用可能な Git クライアントを使用します。Git の詳細は、Git に関するドキュメントを参照してください。AWS CodeCommit と Git の併用に関する詳細は、AWS CodeCommit の使用を開始するを参照してください。
AWS CodeCommit はどのようなユーザー向けですか?
AWS CodeCommit は、コードを保存およびバージョン化するために安全で信頼性が高く、スケーラブルなソースコントロールシステムを必要とするソフトウェア開発者向けに設計されています。さらに、使いやすく、バージョン管理が可能な完全マネージド型のデータ保存をお求めのユーザーは、誰でも AWS CodeCommit をお使いいただけます。例えば、IT 管理者は AWS CodeCommit を使用してスクリプトや設定を保存できます。ウェブデザイナーは AWS CodeCommit を使用して HTML ページや画像を保存できます。
AWS CodeCommit は、他の Git ベースのソースコントロールシステムとどのように違うのですか?
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 は、バージョン化された S3 バケットとどのように比較されますか?
AWS CodeCommit は、共同でのソフトウェア開発向けに設計されています。複数のファイルにわたる変更を一括管理でき、並行分岐化、バージョン比較 (「diffing」) を利用できます。それに対して、Amazon S3 のバージョニングは、個々のファイルの過去のバージョンを復旧できますが、複数のファイルにかけた変更の一括追跡や、ソフトウェアの共同開発に必要なその他の特徴はサポートしていません。
AWS CodeCommit を使用する
どうすれば 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 の使用を開始するを参照してください。
どうすれば既存のリポジトリを AWS CodeCommit にインポートできますか?
Git を使用して、既存の Git リポジトリを AWS CodeCommit にインポートすることができます。Subversion、Perforce などのその他のリポジトリに関しては、まず Git インポーターを使用して Git リポジトリに移行します。Git リポジトリをインポートする詳しい手順については、「既存のリポジトリを AWS CodeCommit に移行する」を参照してください。 ローカルコンテンツまたはバージョン管理されていないコンテンツのインポートに関する詳細な手順については、Git 移行ドキュメントを参照してください。
現在 AWS CodeCommit はどの Git 操作をサポートしていますか?
現在、AWS CodeCommit は clone、pull、push、fetch コマンドをサポートしています。
AWS CodeCommit は Git のサブモジュールをサポートしていますか?
はい。AWS CodeCommit はサブモジュールを含む Git リポジトリと合わせて使用できます。
AWS CodeCommit を使用する際のサービスの上限はどのくらいですか?
サービスの上限についての詳細は、上限を参照してください。
CodeCommit に保存できる単一ファイルの最大サイズはどのくらいですか?
リポジトリの各ファイルが 2 GB を超えることはできません。
どうすればリポジトリをバックアップできますか?
git clone を完全に実行してローカルコピーを作成している場合、そのコピーを使用してデータを復元できます。追加のバックアップを作成する場合は、複数の方法があります。1 つは Git をバックアップサーバーにインストールし、git clone コマンドを使用したスケジュールジョブを実行して定期的にリポジトリのスナップショットを作成することです。増分変更のみをコピーする場合は git clone ではなく git pull を使用します。バックアップサーバーおよびポーリング頻度の設定によっては、これらの操作によって追加のユーザーまたはリクエスト料金、またはその両方が発生する可能性があることに注意してください。
どうすれば削除した AWS CodeCommit リポジトリを復元できますか?
AWS CodeCommit リポジトリの削除は、取り消しできない一方通行の操作です。削除したリポジトリを復元するには、再度リポジトリを作成し、バックアップまたは完全なクローンからのローカルコピーを使用してデータをアップロードする必要があります。リポジトリを削除できるユーザーを制限するために、IAM ポリシーと MFA による保護の両方を使用することをお勧めします。詳細については、よくある質問の「セキュリティ」セクションにある「AWS CodeCommit へのアクセスを管理するために AWS Identity and Access Management (IAM) を使用することはできますか?」を参照してください。
どうすれば AWS CodeCommit でコードレビューを管理できますか?
CodeCommit はコードレビューをサポートし、コードのブ分岐に対してアクセス許可を設定することができます。コードレビューや分岐レベルのアクセス許可に関するヘルプは、ドキュメントを参照してください。
どうすれば継続的統合システムを AWS CodeCommit に統合できますか?
Git を使用して AWS CodeCommit からコードを取得するように、継続的統合 (CI) システムを設定することができます。AWS CodeCommit での CI システムの使用例については、AWS CodeCommit と Jenkins との統合に関するブログ記事をご覧ください。
どうすれば AWS CodeCommit を使用してウェブフックを作成できますか?
Amazon SNS コンソールで、HTTP エンドポイントとウェブフックの対象となる URL を使用した SNS トピックを作成できます。その後、AWS CodeCommit コンソールからトリガーを使用して、リポジトリイベントに対してその SNS トピックを構成できます。さらに、AWS Chatbot をご利用のお客様は、お使いの Slack チャンネルまたは Amazon Chime チャットルームに通知が送信されるよう設定することも可能です。詳細については、こちらをご参照ください。
セキュリティ分析や運用上のトラブルシューティングを目的として、アカウントで行った AWS CodeCommit Git オペレーションおよび API コールの履歴を取得できますか?
はい。Git 操作や API 呼び出しを含む最新の CodeCommit イベントを AWS CloudTrail コンソールで確認できます。進行中のイベントの記録では、Amazon S3 バケットにトレイルを作成し、イベントを記録することができます。詳細については、「AWS CloudTrail を使用した AWS CodeCommit API コールのログ記録」を参照してください。
セキュリティ
AWS CodeCommit へのアクセスの管理で AWS Identity and Access Management (IAM) を使用できますか?
はい。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 アクセスの設定」を参照してください。
AWS CodeCommit はどの通信プロトコルをサポートしていますか?
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 の設定ページを参照してください。
AWS CodeCommit にアクセスするには、ファイアウォールのどのポートを開けばよいですか?
ポート 22 (SSH) またはポート 443 (HTTPS) で、AWS CodeCommit のサービスエンドポイントに対するアウトバウンドアクセスを開く必要があります。
どうすれば 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 に関するドキュメントのロールの引き受けを参照してください。
リージョン
AWS CodeCommit はどのリージョンをサポートしていますか?
CodeCommit のリージョン別の可用性の詳細については、リージョン別の製品およびサービスを参照してください。
請求
AWS CodeCommit にはどのくらいの費用がかかりますか?
AWS CodeCommit の費用は、アクティブなユーザー 1 人につき 1 USD/月です。アクティブなユーザーごとに、月に 10 GB のストレージと 2,000 件の Git リクエストがアカウントに許容量として割り当てられ、ご利用いただけます。割り当てられたストレージと Gbit リクエスト数に未使用分があっても、以降の月に繰り越されることはありません。ユーザーに対するストレージまたは Git リクエスト数を増やす必要がある場合は、1 GB あたり毎月 0.06 USD、Git リクエスト 1 件あたり 0.001 USD が追加分として請求されます。ユーザーは、好きなだけ多くの Git リポジトリを保存できます。使用量はすべてのリージョンの合計が毎月計算され、自動的に請求額に適用されます。詳細については、料金表ページをご覧ください。
AWS CodeCommit における、アクティブなユーザーの定義は何ですか?
アクティブなユーザーとは、その月に Git リクエストまたは AWS マネジメントコンソールを使用して AWS CodeCommit リポジトリにアクセスするすべての一意の AWS アイデンティティ (IAM ユーザー、IAM ロール、フェデレーティッドユーザー、ルートアカウント) を指します。一意の AWS アイデンティティを使用して CodeCommit にアクセスするサーバーは、アクティブなユーザーとみなされます。
1 か月あたりの許容残数が減少するのはどの Git リクエストですか?
Git リクエストには、リポジトリのオブジェクトを転送するすべての送信または取得が含まれます。ローカルとリモートのブランチが最新の状態であるためにいかなるオブジェクトも転送されない場合、Git リクエストの許容残数が減少することありません。