Git
AWS

AWS CodeCommitを使ってGitリポジトリを作る


はじめに

Gitのホスティングサービスの1つであるAWS CodeCommitの利用方法を、同僚に説明することになったので、手順を整理します。


本記事の対象

Gitを扱うことができますが、AWSにはあまり慣れていない人が対象です。

例えば、AWS CLI(AWS専用のコマンドラインツール)を使った方法は、この記事では登場しません。


CodeCommitのリポジトリを作成する

さっそく、CodeCommitのリポジトリを作成していきましょう。

https://console.aws.amazon.com/codecommit/ にブラウザでアクセスしてください。ダッシュボードというページが開きます。

CodeCommit_10.PNG

リポジトリの作成をクリックすると、リポジトリの作成という画面になります。

CodeCommit_15.PNG

適当に入力してください。


  • リポジトリ名: 適当に


    • 例. ci-practice



  • 説明: 適当に


    • 例. CIの練習



リポジトリの作成をクリックすると、Eメール通知の設定という画面になります。

CodeCommit_20.PNG

いろいろとチェックボックスがありますが、デフォルトのままよいと思います。スキップをクリックすると、リポジトリに接続というドロワー画面が右から出てきます。

CodeCommit_25.PNG

これが表示されれば、リポジトリの作成は成功です。

ここにはリポジトリをローカルにクローンする方法が記載されています。ここの情報に従って、リポジトリをクローンしてください。クローンの情報は後で確認できるので、この場は無視して閉じるをクリックしても構いません。

閉じると以下のような画面になります。

CodeCommit_30.PNG

クローンURLSSHをクリックすると、以下のような文字列がクリップボードにコピーされます。

ssh://git-codecommit.●●●.amazonaws.com/v1/repos/●●●

これがクローンURLです。これをメモに控えます。


プライベートキーを作成する

作成したリポジトリとSSH通信するためには、パブリックキーとプライベートキーが必要です。2つを合わせてキーペアと呼びます。

https://console.aws.amazon.com/ec2/ にブラウザでアクセスします。EC2 ダッシュボードが開きます。

KeyPair_10.png

左サイドバーにあるネットワーク & セキュリティキーペアをクリックし、キーペアの作成をクリックします。すると、ダイアログが出ます。

KeyPair_15.png

キーペア名 に適当に名前を入力してください。名前はなんでもいいですが、CodeCommit用であることと、誰が作成したのかわかるような命名が便利だと思います。

以降の説明は例として segur-codecommitとします。

入力ができたら 作成 をクリックします。すると、pemファイルのダウンロードが始まります。このタイミング以外で、pemファイルを入手することはできませんので、失くさないように注意してください。

以下のパスにフォルダを作成し、ダウンロードしたpemファイルを設置します。


  • Windowsの場合:%USERPROFILE%\.ssh\aws

  • Macの場合: ~/.ssh/aws


パブリックキーを作成する

pemファイルからパブリックキーを作成します。WindowsとMacの両方の手順を紹介します。


Windowsの場合

ここでは、PuTTYgenを使う方法を紹介します。

PuTTYをインストールしていなければインストールしてください。

PuTTYgen を起動して、Load をクリックします。

KeyPair_25.png

ファイル選択ダイアログが表示されます。デフォルトの状態だとppkファイルしか選択できないので、右下のプルダウンをAll Filesに変更します。

その上で、先ほど保存したpemファイルを選択します。

KeyPair_30.png

すると、画面上部のテキストエリアにパブリックキーの文字列が表示されます。

KeyPair_35.png

この文字列をメモに控えます。下の方にSave Public Keyというボタンがありますが、これはOpenSSH形式で保存できず、CodeCommitでは使用できませんのでご注意ください。


Macの場合

以下のコマンドを叩きます。

ssh-keygen -y

ファイル入力を求められるので、さきほどのpemファイルのパスを指定します。

~/.ssh/aws/segur-codecommit.pem

すると、パブリックキーの文字列が表示されるので、メモに控えます。

このコマンドが失敗した場合は、アクセス権限が適切でないかもしれません。以下のコマンドで、自分だけがpemファイルを操作できるように、権限を調整してください。

chmod 400 ~/.ssh/aws/tanaka-codecommit.pem


パブリックキーを IAM ユーザーに関連付ける

https://console.aws.amazon.com/iam/ を開きます。

左サイドバーから ユーザー をクリックし、ユーザー一覧の中から自分の IAM ユーザーを選択します。

認証情報 タブで、SSH 公開キーのアップロード を選択します。

先ほどメモに控えたパブリックキーの文字列を入力欄に貼り付け、SSH 公開キーのアップロード をクリックします。

SSHキーIDが生成されるので、メモに控えます。


プライベートキーをPCに登録する

以下のパスにconfigファイルがなければ作成します。


  • Windowsの場合:%USERPROFILE%\.ssh\config

  • Macの場合: ~/.ssh/config

configファイルに以下の内容を追記します。

# AWS CodeCommit

Host git-codecommit.*.amazonaws.com
User <アクセスキーID>
IdentityFile <pemファイルのフルパス>

プロキシ配下の場合、プロキシの設定を以下のように追加してください。

# AWS CodeCommit

Host git-codecommit.*.amazonaws.com
User <アクセスキーID>
IdentityFile <pemファイルのフルパス>
ProxyCommand connect -H <プロキシのユーザー名>:<プロキシのパスワード>@<プロキシのIPアドレス>:<プロキシのポート番号> %h %p

以上で、キーペアの設定は完了です。

これで、CodeCommitに対し、SSH接続でcloneやpushができるようになります。


リポジトリをCloneする

メモに控えていたクローンURLからcloneしてみます。

ここではGitコマンドを使ってみます。

# cloneしたいディレクトリに移動

cd <cloneしたいディレクトリ>

# リポジトリをclone
git clone ssh://git-codecommit.●●●.amazonaws.com/v1/repos/●●●

これでcloneができるはずです。


さいごに

今まで、何となくの理解で、リポジトリやキーペアを作成していましたが、記事にまとめてみると、意外とボリュームのある作業で驚きました。参考になれば幸いです。