【AWS】CodeCommitリポジトリ作成
CodeCommitとは
プライベートのGitリポジトリをホストする、AWSのマネージドソース管理サービスである。
マネージドサービスのため、ユーザによるソース管理システムのスケーリングや、インフラの管理をする必要がなくなる。
Gitベースのため、Git標準のコマンドを使用することができる。
codecommitの裏で動いているサービスとして以下の3つのAWSサービスが動いている。
- S3: GitオブジェクトはS3で管理
- DynamoDB: GitインデックスはDynamoDBで管理
- KMS: 暗号化キーはAWS KMSで管理
CodeCommitの特徴
- マネージドサービスのため、ソフトウェアのアップデートなどの管理・運用する必要がない。
- ソースコード保管時、データ転送時に暗号化される。
- S3のスケーラビリティ、可用性を担保している。
- Pull Requestやコミット時のメール送信など多くのサポートを搭載。
- 任意のGitベースのリポジトリからCodeCommitへの移行が簡単に可能。
CodeCommitリポジトリ作成まで
- CodeCommit用IAMユーザの作成
CodeCommitのリポジトリにアクセスするためのIAMユーザを作成する。
複数人でチーム開発をする場合は、人数分のIAMユーザを作成しなければならない。
IAMのマネジメントコンソールからアクセス管理->ユーザーをクリック
ユーザの追加をクリック
以下のキャプチャの用に、任意のユーザ名を入力(ここでは、codecommit-user01を入力)、アクセスの種類は「プログラムによるアクセス」と「AWSマネジメントコンソールへのアクセス」両方にチェックを入れた。コンソールのパスワード、パスワードのリセットは任意で設定する。
IAMポリシーは「既存のポリシーを直接アタッチ」を選択し、「AWSCodeCommitPowerUser」を選択する。
入力した内容に間違いがないかを確認し、IAMユーザを作成する。
- gitのインストール
すでにローカル環境にはインストール済みのため、バージョンの確認のみにとどめる。
インストールしていない方は、gitをインストールすること。
$ git --version
git version 2.28.0
- CodeCommitへのアクセス設定
CodeCommitへアクセスするためには以下の方法がある。今回はCodeCommitのHTTPS接続でGit認証情報を設定する方法で説明する。
- CodeCommitのHTTPS接続でGit認証情報を設定する ⭐️
- SSH接続(IAMとSSHキーを紐付ける)
- git-remote-codecommit(IAMのクレデンシャルを利用する)
- 開発ツールからの接続(AWS ToolKilを利用する)
作成したIAMユーザにGit認証情報を作成する。
IAMユーザから「codecommit-user01」を選択し、AWS CodeCommitのHTTPS Git認証情報から「認証情報の生成」をクリックする。codecommitへ接続するための、ユーザ名とパスワードが発行されるので、メモするかCSVファイルをダウンロードする。
※IAMユーザ作成時と同様に一度しかユーザ名とパスワードの情報を保存する機会がないので、きちんとメモしておくこと。
- CodeCommitリポジトリの作成・クローン
-
マネジメントコンソールからCodeCommitに移動し、リポジトリの作成をクリック。
-
リポジトリ名や、説明などを入力し、リポジトリを作成する。ここでは、リポジトリ名・説明を「test-repo」に設定する。
-
リポジトリ上で、テストファイルを作成することで、mainブランチが作成される。ここでは、「test.txt」をローカルからアップロードし、「作成者名」、「Eメールアドレス」、「コミットメッセージ」を入力し「変更のコミット」をクリックする。
-
リポジトリのクローンURLをコピーし、ローカル環境でgit cloneコマンドを実行。
$ git clone https://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/test-repo
Cloning into 'test-repo'...
※ここでcodecommit認証情報のユーザ名とパスワードを入力
warning: You appear to have cloned an empty repository.
リポジトリのクローンに成功
$ ls -ltra test-repo/
total 0
drwxr-xr-x@ 7 xxxxxxxxxxxxxx xxxxx 224 7 26 08:03 .git
drwxr-xr-x@ 5 xxxxxxxxxxxxxx xxxxx 160 7 26 08:03 ..
drwxr-xr-x@ 3 xxxxxxxxxxxxxx xxxxx 96 7 26 08:03 .
$ git branch -a
* main
remotes/origin/HEAD -> origin/main
remotes/origin/main
- ファイルを作成し、コミットしてみる。
$ touch first-commit.txt
$ git add first-commit.txt
$ git status
On branch main
Your branch is up to date with 'origin/main'.
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
new file: first-commit.txt
$ git commit -m "first-commit" first-commit.txt
[main e2f40e8] first-commit
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 first-commit.txt
$ git push origin mainEnumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Delta compression using up to 8 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 251 bytes | 251.00 KiB/s, done.
Total 2 (delta 0), reused 0 (delta 0), pack-reused 0
To https://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/test-repo
f7163cc..e2f40e8 main -> main
$
- 作成したリポジトリに対して、ローカルで作成したファイルがpushされていることを確認。
CodeCommitの料金
CodeCommitの料金体系は以下の通り。個人で利用する分には無料で使用することができる。
最初の5アクティブユーザまで | 5人を超えるアクティブユーザ(1人当たり) |
---|---|
無料 | 1ドル/月 |
無制限のリポジトリ数 | 無制限のリポジトリ数 |
月に50GBのストレージ | 月に10GBのストレージ/ユーザ |
10000Gitリクエスト数/月 | 2000Gitリクエスト/月/ユーザ |
Discussion