はじめに
Gitのホスティングサービスの1つであるAWS CodeCommitの利用方法を、同僚に説明することになったので、手順を整理します。
本記事の対象
Gitを扱うことができますが、AWSにはあまり慣れていない人が対象です。
例えば、AWS CLI(AWS専用のコマンドラインツール)を使った方法は、この記事では登場しません。
CodeCommitのリポジトリを作成する
さっそく、CodeCommitのリポジトリを作成していきましょう。
https://console.aws.amazon.com/codecommit/ にブラウザでアクセスしてください。ダッシュボードというページが開きます。
リポジトリの作成をクリックすると、リポジトリの作成という画面になります。
適当に入力してください。
- リポジトリ名: 適当に
- 例. ci-practice
- 説明: 適当に
- 例. CIの練習
リポジトリの作成をクリックすると、Eメール通知の設定という画面になります。
いろいろとチェックボックスがありますが、デフォルトのままよいと思います。スキップをクリックすると、リポジトリに接続というドロワー画面が右から出てきます。
これが表示されれば、リポジトリの作成は成功です。
ここにはリポジトリをローカルにクローンする方法が記載されています。ここの情報に従って、リポジトリをクローンしてください。クローンの情報は後で確認できるので、この場は無視して閉じるをクリックしても構いません。
閉じると以下のような画面になります。
クローンURL→SSHをクリックすると、以下のような文字列がクリップボードにコピーされます。
ssh://git-codecommit.●●●.amazonaws.com/v1/repos/●●●
これがクローンURLです。これをメモに控えます。
プライベートキーを作成する
作成したリポジトリとSSH通信するためには、パブリックキーとプライベートキーが必要です。2つを合わせてキーペアと呼びます。
https://console.aws.amazon.com/ec2/ にブラウザでアクセスします。EC2 ダッシュボードが開きます。
左サイドバーにあるネットワーク & セキュリティ→キーペアをクリックし、キーペアの作成をクリックします。すると、ダイアログが出ます。
キーペア名 に適当に名前を入力してください。名前はなんでもいいですが、CodeCommit用であることと、誰が作成したのかわかるような命名が便利だと思います。
以降の説明は例として segur-codecommitとします。
入力ができたら 作成 をクリックします。すると、pemファイルのダウンロードが始まります。このタイミング以外で、pemファイルを入手することはできませんので、失くさないように注意してください。
以下のパスにフォルダを作成し、ダウンロードしたpemファイルを設置します。
- Windowsの場合:
%USERPROFILE%\.ssh\aws
- Macの場合:
~/.ssh/aws
パブリックキーを作成する
pemファイルからパブリックキーを作成します。WindowsとMacの両方の手順を紹介します。
Windowsの場合
ここでは、PuTTYgenを使う方法を紹介します。
PuTTYをインストールしていなければインストールしてください。
PuTTYgen を起動して、Load をクリックします。
ファイル選択ダイアログが表示されます。デフォルトの状態だとppkファイルしか選択できないので、右下のプルダウンをAll Filesに変更します。
その上で、先ほど保存したpemファイルを選択します。
すると、画面上部のテキストエリアにパブリックキーの文字列が表示されます。
この文字列をメモに控えます。下の方に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ができるはずです。
さいごに
今まで、何となくの理解で、リポジトリやキーペアを作成していましたが、記事にまとめてみると、意外とボリュームのある作業で驚きました。参考になれば幸いです。