GitリポジトリとしてAWS CodeCommitを使う
2017-09-21Gitでソース管理をするにあたって、AWSにも CodeCommit というGitリポジトリを作れるサービスがあります。実際にリポジトリを作ってssh
で接続できるようにするまでのメモです。
AWS CodeCommit
AWS CodeCommit は、完全マネージド型ソースコントロールサービスで、安全で非常にスケーラブルなプライベート Git リポジトリを簡単にホスティングできます。 Amazon CodeCommit(安全でスケーラブルなマネージド型ソースコントロールサービス) | AWS
料金
アクティブユーザが5人まで
- 無料
- 特典
- 無制限のリポジトリ
- 50 GB のストレージ/月
- 10,000 回 のGitリクエスト/月
アクティブユーザが6人以上
- 1 USD/月
- 特典
- 無制限のリポジトリ
- アクティブユーザーごとに 10 GB のストレージ/月
- アクティブユーザーごとに 2000 回 の Git リクエスト/月
つまり、個人で作ったコードを管理する分には、ほぼ無料の範囲内で利用できます。月に10,000回もgitリクエストを投げることは無いと思うので..。
仮に10,000回を超えたとしても、0.001 USD/Gitリクエスト なので大した料金にはならないでしょう。 ストレージについても、超過分については 0.06 USD/GB となっています。
類似サービスとの比較
類似のGitホスティングサービスとしては、Web上で利用できる GitHub や、サーバにインストールして使用する Gogs などがありますが、それらとの比較を簡単に書きます。(個人で使用する前提です)
- 料金がほぼ無料(
GitHubはプライベートリポジトリを作成する場合 $7/月)
2019年1月から、 GitHub でも無料でプライベートリポジトリを無制限に作成できるようになりました。
New year, new GitHub: Announcing unlimited free private repos and unified Enterprise offering - 導入が簡単(GitHubは説明がEnglish、Gogsはサーバ(PC)へのインストールが必要)
プルリクエスト機能がない(GitHub、Gogs共に有り)
プルリクエストの機能が使用可能になりました
この他、Commit履歴の可視化や、タグ・ブランチの管理など、基本的な操作はGUIでできます。
AWS特有の機能としては、ブランチへのpush
などのイベントをトリガーとして、アラートを飛ばしたり、Lambda関数を実行できたりします。
リポジトリを作成してssh接続できるようにするまでの手順
今すぐ始める をクリック。
リポジトリ名 と 説明 を入力して リポジトリの作成 をクリック。
これでリポジトリが作成されました。
次の画面では https
、 ssh
それぞれでの接続方法が書かれているので、この通りに準備をしていきます。
まず、ssh接続用のキーペアを生成します。既にキーペアを持っている場合は、新たに生成する必要はありません。 ここからはターミナルでの操作になります。(Macでの例です)
$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/hogehoge/.ssh/id_rsa): /Users/hogehoge/.ssh/codecommit_rsa ;;;任意のパス、名前を指定します
Enter passphrase (empty for no passphrase): ;;;任意のパスフレーズを入力します
Enter same passphrase again: ;;;任意のパスフレーズを再度入力します
Your identification has been saved in /Users/hogehoge/.ssh/codecommit_rsa.
Your public key has been saved in /Users/hogehoge/.ssh/codecommit_rsa.pub.
The key fingerprint is:
SHA256:Ha6ETkhmC7muDZmmxzZk8DgRi7XZMpMU8khj4f3qzuQ hogehoge@HOGEHOGE.local
The key's randomart image is:
+---[RSA 2048]----+
| o .+oo |
| ..o..+. o |
|.B.++ ..* |
|O E..= + . |
|.X... o S |
|+. + o |
| .B + . |
|.o =oo |
| .++ooo. |
+----[SHA256]-----+
これでキーペアが生成されるので、パブリックキーの値をコピーします。
$ cat ~/.ssh/codecommit_rsa.pub
ssh-rsa AAAAB3NzaCino3r4aa2GpYkIpjzJAOOO8VcZw6eYfJr9RmdDNMS2/qcEk1yc2EAAAADAQABAAABAQDe0jBpJOHTSGuWRLmJT3s7RwGXw3rV56D4BDOasaCz24m3HxA8oXtRLsUZmiAf+LODBpoLPxWuBKfH/n1aseCByrmHV3FXhAHqH2v33EgrEeYm07xB1RifJHn5oXfCDpssfKVGd25FBslDgzjBElDjA+BRRGVI3lkitl2su19AtGa9b/jzj6UtdAc7msuR5ZM+MP/8jnq2zuc2YtMopt/YXdMAYuo1T0y6atVDmCqirSXE0+ITezFwzIEiximRkQHtO2B4CzJE9LF6kSD5RfLY9r0XHWcc+RpuO+QlD hogehoge@HOGEHOGE.local
AWS マネジメントコンソールに戻って、IAMの画面を表示します。 既存(または新規)のIAMユーザに対して、CodeCommitへのSSH接続キーを設定します。
IAM > ユーザー > {ユーザ選択} > 認証情報
先ほどコピーした ~/.ssh/codecommit_rsa.pub
の内容を貼り付けて、 SSH公開キーのアップロード をクリックします。
すると、赤枠の部分に SSHキーID が表示されているので、これをコピーします。
ここから、再度ターミナルでの作業になります。
$ vi ~/.ssh/config
Host git-codecommit.*.amazonaws.com
User AAAAAAAAAAAAAA # コピーした SSHキーID を記載
IdentityFile ~/.ssh/codecommit_rsa # 先ほど生成したプライベートキーへのパス
ここまでで、sshの設定は完了です。あとは push
するなり pull
するなり clone
するなり、普段通りGitコマンドを叩いてください。
comments powered by Disqus