AWSにてプライベートに使用できるgitのリポジトリサービスであるCodeCommitがリリースされました。
このCodeCommitの料金体系ですが、https://aws.amazon.com/jp/codecommit/pricing/に記載されているとおり以下の範囲では、なんと無料で使用可能です。
・5 人のアクティブユーザー
・50 GB のストレージ/月
・10,000 件の Git リクエスト
個人のプログラムを管理する程度であれば、無料の範囲で十分なので、かなり太っ腹なサービスです。
Githubのようなオープンなリポジトリではなく、個人でプライベートに使いたい場合には最適です。
今回はCodeCommitに対して、Windowsからアクセスできるよう設定の仕方を説明します。
CodeCommitの記事は他にもあるのですが、コマンドラインを使った説明が多かったため、今回の説明ではGUIのみで作業してみます。
Gitクライアントのインストールと、キーファイルの作成
まずは、手元のWindows環境にGitクライアントをインストールします。今回使用したバージョンはTortoiseGitのver1.8.16と、Gitのver2.7.0です。

それぞれ、下記の場所からDLできます。
https://tortoisegit.org/download/
http://git-scm.com/
インストールしたら、まずユーザ認証に使用する公開鍵と秘密鍵を作成します。
Gitインストール時に一緒に入るPuTTY Key Generator(puttygen.exe)を起動します。

起動したら、パラメータがSSH-2 RSA,2048bitになっていることを確認しGenerateをクリックします。

すると、マウスを動してとのメッセージが表示されるので、ウィンドウ内で適当にマウスを動かします。
動かすごとにゲージが伸びていき、最後までゲージが伸びるとキーが生成されます。
(マウスの動かし方を元に、暗号化キーを決めています)
完了すると以下の画面になります。
パスワード(Key Pasphrase)を2か所入れて、Save private keyをクリックします。

名前は今回の説明では、CodeCommit.ppkという名前で保存します。
これが、CodeCommitにログインする際に必要な秘密鍵になります。

次に、公開鍵を保存します。
ウィンドウの上にあるこの部分をコピーして…

エディタに張り付けて、保存します。

今回は、CodeCommit_OpenSSH.pubの名前で保存しました。この情報はCodeCommitにアカウントを作るときに使用します。1行が長いので、最後の文字まできちんと貼り付けできたか確認してさい。
AWS CodeCommit用のアカウント作成
次に、gitにログインするアカウントを作ります。awsのコンソールにログインし、メニューからIdentity and Access Managementを選びます。

ダッシュボードのユーザより、新規ユーザの作成をクリックします。

好きな名前を入れてユーザを作成してください。
ユーザ名を入力し、作成ボタンをクリックします。今回は分かりやすくCodeCommitUserとしましたが、複数人で作業する場合はCodeCommitUser_yamada_taroのような感じで、名前が分かるようにしておいたほうが管理しやすいです。

ユーザーセキュリティ認証情報が表示されます。
今回の作業では必要ありませんが、このユーザーセキュリティ認証情報は後からDLしなおせないので、必ず控えておいて下さい。

一覧に戻るとユーザが追加されているので、ユーザ名の部分をクリックします。

ページ下部にある”SSH 公開キーのアップロード”をクリックします。

公開キーの入力欄が表示されます。
ここで先ほど保存した公開キー(CodeCommit_OpenSSH.pubの中身)をペーストします。
秘密キー(*.ppk)のほうではないので注意してください。
貼り付けができたら、アップロードボタンをクリックします。

登録に成功したら、一覧に追加されていることを確認します。SSH キー IDの値がgitのユーザIDになるので控えておきます。下の画像だと、”APKAIJRYL635BYVTMELA”の部分です。

※ここで以下のエラーが出る場合はSSHキーの作成に失敗しています。その際はputtygenの作業からやり直してください。
リクエストの処理中に次のエラーが発生しました: Invalid public key uploaded. |
次に、このユーザにCodeCommitのアクセス権を付与します。
アクセス許可のタブを選択し、ポリシーのアタッチを選択します。

ポリシータイプの検索キーワードにCodeCommitと入力します。
表示された中から、”AWSCodeCommitFullAccess”にチェックを入れ、ポリシーのアタッチボタンをクリックします。この権限だと、文字通り何でもできるFullAccessの管理者アカウントになります。

ちなみにAWSCodeCommitPowerUserは、FullAccessとほぼ同じですが、リポジトリの削除ができない点だけが異なります。また、ReadOnlyは参照(ダウンロード)だけが行えます。
一覧にポリシー(アクセス権)が追加されたことを確認します。
ここまで確認できたら、アカウントの作成は完了です。

AWS CodeCommitのgitリポジトリ作成
次に、CodeCommitのサービス上にGitリポジトリを作ります。
再度AWSコンソールの一覧よりCodeCommitを選びます。

メニューが表示されたら、Get startedをクリックします(この画面は最初に1回だけ表示されます)。

リポジトリ名を入力しCreate repositoryをクリックします。説明文は省略可能ですが、何を保存しているのか後でわかるようにメモを残しておいた方が後々便利です。

一覧にリポジトリが表示されるので、右端のURLをクリックし、SSHのアドレスをコピーします。
下記の例だと、”ssh://git-codecommit.us-east-1.amazonaws.com/v1/repos/TestRepository”がリポジトリ名です。

これで、アクセスに必要なリポジトリ名と、ユーザIDが取得できました。
AWS CodeCommitのgitリポジトリへアクセス
ここまでの作業で準備が完了したので、作ったリポジトリの取得(clone)を行います。※cloneはsvnで言うところのcheckoutに相当するものです。
リポジトリを作りたいフォルダで右クリックし、Git Cloneを選択します。

必要な情報を入力します。
1.URLにリポジトリ作成時に指定したアドレス(ssh://から始まるもの)を入れます。
2.Directoryにclone先が入っていることを確認します。
3.Load Putty KeyにPuttyGenで作成した秘密キー(*.ppk)を指定します。
入力が終わったら、OKをクリックします。

パスワードの入力ダイアログが表示されます。
ここには、puttygen.exeでキーファイル作成時に入力したpassphaseを入れます。

次はログインIDの入力ダイアログが表示されます。
ここでは、AWSにSSHキー公開鍵を登録したときに表示された、SSH キー IDを入力します。
今回の説明だと”APKAIJRYL635BYVTMELA”でしたので、これを入れます。

ここまで問題なければ、Successが表示されるはずです。Closeボタンをクリックして、画面を閉じます。

次に、動作確認のため試に何かコミットしてみます。
チェックアウトしたフォルダに何かファイルを作って下さい。

ファイルを右クリックし、TortoiseGit -> Addを選択します。

ファイルにチェックが入っていることを確認し、OKをクリックします。

Successと表示されるのを確認し、そのままローカル環境にcommitします。
Commitボタンをクリックします。

コミットメッセージを入力し、OKボタンをクリックします。

Successと表示されるのを確認し、そのままAWSのリポジトリにpushします。
左下にあるPushをクリックします。

Remoteがorign(AWSサーバ)になっていることを確認して、OKをクリックします。
orignがどこのアドレスか知りたい時は、横にあるManageボタンをクリックすると分かります。

再度IDのダイアログが表示されます。
Cloneを行ったときと同じIDを入力します。

Successと表示されるのを確認し、Closeをクリックします。

再度AWSのCodeCommitに戻り、Last Updatedが更新されていることを確認します。
リポジトリの名前をクリックし詳細を確認してみます。

DashBoardのCodeを選び、コミットしたファイルが表示されていたら成功です。
ファイル名をクリックすると、中身を見ることもできます。

以上で、Windows環境にGitクライアントをインストールし、AWS上に作ったリポジトリへのアクセスが行えました。
関連記事
コメントを残す