michimani.net

GitリポジトリとしてAWS CodeCommitを使う

2017-09-21

Gitでソース管理をするにあたって、AWSにも CodeCommit というGitリポジトリを作れるサービスがあります。実際にリポジトリを作ってsshで接続できるようにするまでのメモです。

AWS CodeCommit

AWS CodeCommit は、完全マネージド型ソースコントロールサービスで、安全で非常にスケーラブルなプライベート Git リポジトリを簡単にホスティングできます。 Amazon CodeCommit(安全でスケーラブルなマネージド型ソースコントロールサービス) | AWS

料金

アクティブユーザが5人まで

アクティブユーザが6人以上

つまり、個人で作ったコードを管理する分には、ほぼ無料の範囲内で利用できます。月に10,000回もgitリクエストを投げることは無いと思うので..。

仮に10,000回を超えたとしても、0.001 USD/Gitリクエスト なので大した料金にはならないでしょう。 ストレージについても、超過分については 0.06 USD/GB となっています。

類似サービスとの比較

類似のGitホスティングサービスとしては、Web上で利用できる GitHub や、サーバにインストールして使用する Gogs などがありますが、それらとの比較を簡単に書きます。(個人で使用する前提です)

この他、Commit履歴の可視化や、タグ・ブランチの管理など、基本的な操作はGUIでできます。

AWS特有の機能としては、ブランチへのpushなどのイベントをトリガーとして、アラートを飛ばしたり、Lambda関数を実行できたりします。

リポジトリを作成してssh接続できるようにするまでの手順

da9c35da-ca9c-74a1-ddfe-8c0b3caee5c3.png

今すぐ始める をクリック。

1e0ec668-1752-0dbb-84a5-1bcf5320059e.png

リポジトリ名 と 説明 を入力して リポジトリの作成 をクリック。

9efee98f-8f34-da11-33b3-66abef62fbe7.png

これでリポジトリが作成されました。 次の画面では httpsssh それぞれでの接続方法が書かれているので、この通りに準備をしていきます。

まず、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 > ユーザー > {ユーザ選択} > 認証情報

d8262eca-a949-a942-a479-cb1507e653bb.png cb6e7e18-5aa1-5dad-a0d3-d5bd2976035d.png

先ほどコピーした ~/.ssh/codecommit_rsa.pub の内容を貼り付けて、 SSH公開キーのアップロード をクリックします。

0d077b93-6cc9-998a-e2e7-d130bea5e73a.png

すると、赤枠の部分に 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