

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# とは AWS CodeCommit
<a name="welcome"></a>

AWS CodeCommit は、Amazon Web Services がホストするバージョン管理サービスで、アセット (ドキュメント、ソースコード、バイナリファイルなど) をクラウドにプライベートに保存および管理するために使用できます。CodeCommit の料金については、[料金](https://aws.amazon.com/codecommit/pricing/)を参照してください。

**注記**  
CodeCommit は多くのコンプライアンスプログラムの範囲内です。 AWS とコンプライアンスの取り組みの詳細については、[AWS 「コンプライアンスプログラムによる対象範囲内のサービス](https://aws.amazon.com/compliance/services-in-scope/)」を参照してください。  
これは HIPAA 対象サービスです。1996 年米国医療保険の相互運用性と説明責任に関する法律 (HIPAA) AWS、および AWS サービスを使用して保護医療情報 (PHI) を処理、保存、および送信する方法の詳細については、[「HIPAA 概要](https://aws.amazon.com/compliance/hipaa-compliance/)」を参照してください。  
このサービスについて、また、セキュリティ管理のベストプラクティスを規定したセキュリティ管理規格である ISO 27001 については、[ISO 27001 の概要](https://aws.amazon.com/compliance/iso-27001-faqs/)を参照してください。  
このサービスの詳細および Payment Card Industry Data Security Standard (PCI DSS) については、[PCI DSS の概要](https://aws.amazon.com/compliance/pci-dss-level-1-faqs/)を参照してください。  
このサービスの詳細、および機密情報を保護する暗号化モジュールのセキュリティ要件を指定する連邦情報処理規格 (FIPS) 出版物 140-2 の米国政府規格の詳細については、[連邦情報処理規格 (FIPS) 140-2 の概要](https://aws.amazon.com/compliance/fips/)および [Git 接続エンドポイント](regions.md#regions-git) を参照してください。

**Topics**
+ [CodeCommit の概要](#welcome-introducing)
+ [CodeCommit、Git、ニーズに合った AWS サービスの選択](#welcome-alternate-services)
+ [CodeCommit の仕組み](#welcome-how-it-works)
+ [Amazon S3 でのファイルのバージョニングと CodeCommit の違い](#welcome-arc-vs-s3)
+ [CodeCommit の使用を開始するにはどうしたらいいですか?](#welcome-get-started)
+ [Git の詳細情報](#welcome-get-started-with-git)

## CodeCommit の概要
<a name="welcome-introducing"></a>

CodeCommit は、プライベート Git リポジトリをホストする、安全で高度にスケーラブルなマネージド型のソース管理サービスです。CodeCommit によって、インフラストラクチャのスケーリングに関する不安要素は排除され、お客様が独自のソース管理システムを管理する必要がなくなります。CodeCommit を使用して、コードからバイナリまで何でも保存できます。Git の標準機能がサポートされているため、既存の Git ベースのツールをシームレスに使用できます。

CodeCommit を使用すると、次のことが可能です。
+ **によってホストされる完全マネージド型サービスのメリット。 AWS**CodeCommit では、サービスの高可用性および高耐久性を実現しているため、独自のハードウェアおよびソフトウェアの管理オーバーヘッドは必要ありません。ハードウェアのプロビジョニングおよびスケーリングはもちろん、サーバーソフトウェアのインストール、設定、アップデートも不要です。
+ **コードを安全に保存します**。CodeCommit リポジトリは、不使用時および転送中に暗号化されます。
+ **協力してコード作業を行います。**CodeCommit リポジトリは、ブランチへマージする前に互いのコード変更を確認してそれにコメントできるプルリクエスト、プルリクエストやコメントについてユーザーに自動的に E メールを送る通知、その他多くをサポートしています。
+ **バージョン管理プロジェクトを簡単にスケール** CodeCommit リポジトリは、スケールアップして開発のニーズを満たすことができます。このサービスでは、多数のファイルやブランチ、大容量のファイル、長期間のバージョン履歴に対応してリポジトリを管理できます。
+ **あらゆるものをいつでも保存できます**。CodeCommit には、保存できるリポジトリのサイズやファイルのタイプに関する制限がありません。
+ を**他の AWS およびサードパーティーサービスと統合します**。CodeCommit は、リポジトリを AWS クラウド内の他の本番稼働用リソースの近くに保持するため、開発ライフサイクルの速度と頻度が向上します。IAM と統合されており、他の AWS サービスや他のリポジトリと並行して使用できます。詳細については、「[を製品やサービスと統合するAWS CodeCommit](integrations.md)」を参照してください。
+ **他のリモートリポジトリからファイルを簡単に移行可能** 任意の Git ベースのリポジトリから CodeCommit に移行できます。
+ **なじみのある Git ツールを使用できます**。CodeCommit は Git コマンドと独自の AWS CLI コマンドと APIsをサポートしています。

## CodeCommit、Git、ニーズに合った AWS サービスの選択
<a name="welcome-alternate-services"></a>

Git ベースのサービスとして、CodeCommit はほとんどのバージョン管理ニーズに非常に適しています。ファイルサイズ、ファイルタイプ、およびリポジトリサイズに任意の制限はありません。ただし、Git には固有の制限があり、特に時間の経過とともにある種のオペレーションのパフォーマンスに悪影響を及ぼす可能性があります。CodeCommit リポジトリのパフォーマンスが低下する可能性を回避するには、他の AWS サービスがタスクに適しているユースケースでの使用を回避します。複雑なリポジトリの Git のパフォーマンスを最適化することもできます。ここでは、Git、したがって CodeCommit が最善の解決策ではない場合や、Git を最適化するために追加のステップを実行する必要がある場合があるユースケースをいくつか紹介します。


****  

| ユースケース | 説明 | 検討対象のその他のサービス | 
| --- | --- | --- | 
| 頻繁に変更される大容量ファイル | Git はデルタエンコードを使用してファイルのバージョン間の違いを保存します。たとえば、ドキュメント内のいくつかの単語を変更した場合、Git はそれらの変更された単語のみを保存します。5 MB を超えるファイルやオブジェクトがたくさん変更されている場合、Git は大きな一連のデルタ差分を再構築する必要がある場合があります。これらのファイルが時間の経過とともに大きくなるにつれて、これはローカルコンピュータ上および CodeCommit 内の両方でますます多くの計算リソースを消費する可能性があります。 | 大きなファイルをバージョニングするには、Amazon Simple Storage Service (Amazon S3) を検討してください。詳細については、Amazon Simple Storage Service ユーザーガイドの[バージョニングの使用](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Versioning.html)を参照してください。 | 
| データベース | Git リポジトリは時間とともに大きくなります。バージョニングはすべての変更を追跡するため、変更を加えるとリポジトリのサイズが大きくなります。つまり、データをコミットすると、コミットでデータを削除してもデータはリポジトリに追加されます。処理して送信するデータが増えるにつれて、Git は遅くなります。これはデータベースのユースケースにとって特に悪影響を与えます。Git はデータベースとして設計されていません。 | サイズに関係なく一貫したパフォーマンスでデータベースを作成して使用するには、Amazon DynamoDB を検討してください。詳細については、[Amazon DynamoDB の開始方法のガイド](https://docs.aws.amazon.com/amazondynamodb/latest/gettingstartedguide/)を参照してください。 | 
| 監査証跡 | 通常、監査証跡は長期間保存され、非常に頻繁にシステムプロセスによって継続的に生成されます。Git は開発サイクルで開発者のグループによって生成されたソースコードを安全に保存するように設計されました。プログラムによって生成されたシステムの変更を継続的に保存する急速に変化するリポジトリは、時間の経過とともにパフォーマンスが低下します。 | 監査証跡を保存するには、Amazon Simple Storage Service (Amazon S3) を検討してください。 AWS アクティビティを監査するには、ユースケースに応じて、、[AWS Config](https://aws.amazon.com/config/)、または [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/) [AWS CloudTrail](https://aws.amazon.com/cloudtrail/)の使用を検討してください。 | 
| バックアップ | Git は開発者によって作成されたソースコードをバージョン管理するように設計されました。バックアップ戦略として、CodeCommit リポジトリを含む [2 つのリモートリポジトリにコミットをプッシュ](how-to-mirror-repo-pushes.md)できます。ただし、Git は、コンピュータのファイルシステムのバックアップ、データベースのダンプ、または同様のバックアップコンテンツを処理するようには設計されていません。これを行うと、システムの速度が低下し、リポジトリのクローン作成とプッシュに必要な時間が長くなる可能性があります。 |  AWS クラウドへのバックアップの詳細については、[「バックアップと復元](https://aws.amazon.com/backup-restore/)」を参照してください。 | 
| 大量のブランチまたはリファレンス | Git クライアントがリポジトリデータをプッシュまたはプルするとき、たとえ単一のブランチが必要な場合も、リモートサーバーは、タグなどの、すべてのブランチとリファレンスを送る必要があります。何千ものブランチやリファレンスがある場合、処理と送信に時間がかかり (パックネゴシエーション)、リポジトリの応答が遅くなる可能性があります。ブランチやタグが多いほど、この処理にかかる時間が長くなります。CodeCommit の使用をお勧めしますが、不要になったブランチやタグは削除してください。 | 必要ではないものを判別するために CodeCommit リポジトリのリファレンスの数を分析するためには、次のいずれかのコマンドを使用できます。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/codecommit/latest/userguide/welcome.html) | 

## CodeCommit の仕組み
<a name="welcome-how-it-works"></a>

 Git ベースのリポジトリのユーザーは CodeCommit を使い慣れていますが、それ以外のユーザーでも CodeCommit への移行は比較的簡単です。CodeCommit のコンソールを使用すると、リポジトリの作成に加え、既存のリポジトリやブランチの一覧表示を簡単に行うことができます。ユーザーは、簡単な数ステップのみで、リポジトリに関する情報を表示し、そのクローンをコンピュータに作成できます。これにより、変更を加えることができるローカルリポジトリを作成して、CodeCommit リポジトリにプッシュできるようになります。ユーザーは、ローカルマシンのコマンドラインから操作するか、GUI ベースのエディタを使用してこの作業を行うことができます。

次の図は、開発マシン、 AWS CLI または CodeCommit コンソール、および CodeCommit サービスを使用してリポジトリを作成および管理する方法を示しています。

![\[一般的な CodeCommit ワークフロー\]](http://docs.aws.amazon.com/ja_jp/codecommit/latest/userguide/images/arc-workflow.png)




1.  AWS CLI または CodeCommit コンソールを使用して CodeCommit リポジトリを作成します。

1. 開発マシンから Git を使用して、**git clone** を使用し、CodeCommit リポジトリの名前を指定します。これにより、CodeCommit リポジトリに接続するローカルリポジトリが作成されます。

1. 開発マシン上でローカルリポジトリを使用してファイルを変更 (追加、編集、削除) し、続いて、**git add** を実行し、変更したファイルをローカルでステージングします。**git commit** を実行してファイルをローカルにコミットしてから、**git push** を実行して、そのファイルを CodeCommit リポジトリに送信します。

1. 他のユーザーの変更をダウンロードします。**git pull** を実行して、CodeCommit リポジトリ内のファイルをローカルリポジトリと同期させます。これにより、最新バージョンのファイルを操作できます。

 AWS CLI または CodeCommit コンソールを使用して、リポジトリを追跡および管理できます。

## Amazon S3 でのファイルのバージョニングと CodeCommit の違い
<a name="welcome-arc-vs-s3"></a>

CodeCommit は、チームによるソフトウェア開発のために最適化されています。また、複数のファイルの変更のバッチを管理できるため、他の開発者が操作していても、同時に変更することができます。Amazon S3 のバージョニングでは、過去のバージョンのファイルを復元できますが、ソフトウェア開発チームが必要とする提携ファイルの追跡機能は搭載されていません。

## CodeCommit の使用を開始するにはどうしたらいいですか?
<a name="welcome-get-started"></a>

CodeCommit の使用を開始するには:

1. 「[セットアップ ](setting-up.md)」の手順に従って、開発マシンを準備します。

1.  の 1 つ以上のチュートリアルの手順に従います[はじめに](getting-started-topnode.md)

1. CodeCommit でバージョン管理プロジェクトを[作成](how-to-create-repository.md)するか、バージョン管理プロジェクトを CodeCommit に[移行](how-to-migrate-repository.md)します。

## Git の詳細情報
<a name="welcome-get-started-with-git"></a>

詳細をお知りになりたい場合は、「[Git の詳細](how-to-basic-git.md)」を参照してください。次に便利なリソースをいくつか紹介します。
+ [Pro Git](http://git-scm.com/book): *Pro Git* の本のオンラインバージョン。執筆者は Scott Chacon です。発行元は Apress です。
+ [Git Immersion](http://gitimmersion.com/): Git の基礎を紹介したガイド付きツアー。発行元は Neo Innovation, Inc. です。
+ [Git リファレンス](https://git-scm.com/docs): オンラインのクイックリファレンス。詳細な Git チュートリアルとして使用することもできます。発行元は GitHub です。
+ [Git チートシート](https://github.com/github/training-kit/blob/master/downloads/github-git-cheat-sheet.md): Git コマンドの基本構文。発行元は GitHub です。
+ [Git ポケットガイド](https://www.amazon.com/Git-Pocket-Guide-Richard-Silverman/dp/1449325866)。執筆者 Richard E. Silverman です。発行元は O'Reilly Media, Inc です。