【AWS】CodeCommitを使ってみた


はじめに

AWSのリポジトリサービス「CodeCommit」の使ってみました。
「HTTPS」と「SSH」のツーパターンりますが、今回は「SSH」のやり方になります。

IAMの作成

SSH用CodeCommitグループの作成

  1. グループ名設定
  2. ポリシーのアタッチで以下の3つのポリシーを当てる
    • IAMUserSSHKeys
    • IAMReadOnlyAccess
    • AWSCodeCommitFullAccess
  3. 確認を押してグループを作成する

SSH用IAMユーザを作成する

  1. IAMユーザを「プログラムでのアクセス」で作成

  2. グループ指定では先程作成したグループを指定

  3. 確認画面で「ユーザの作成」を押して完了

  4. 今回アクセスキーは使用しないため、削除する

    • アクセスキーの☓ボタンを押す
    • 確認画面にて「削除」を選択
    • 削除されたことを確認する。

公開鍵とIAMの連携

ssh-keygenコマンドで公開鍵の作成

  • コマンドを実行し、Overwiteでyを入力する以外はすべてエンター。
  • デフォルトだとid_rsaの名前で公開鍵が書かれたファイルができます。
  • 今回はVisual Studio Codeを使ってます。

公開鍵をCodeCommitのIAMユーザに登録する

  1. ssh-keygenコマンドで作成した際に出来た、/Users/****/.ssh/id_rsa.pubの内容をコピーする。

    • id_rsa.pubはそのまま作成した場合の名称、作成時に入力していればその名前のファイル
  2. 作成したIAMユーザのSSH公開キーアップロードに、コピーした公開キーをアップする。

  3. 以下のように表示されればアップロード完了

SSH設定ファイルを編集

Configファイル(~/.ssh/config) 編集

Host git-codecommit.*.amazonaws.com
  User (IAMに公開鍵を登録した際に発行されたSSHキーID)
  IdentityFile ~/.ssh/(公開鍵ファイル名[今回はid_rsa])
  • IAMに公開鍵を登録した際に発行されたSSHキーID

  • viコマンドでconfigファイルに書き込み

  • 上記の内容を書き込んで保存

CodeCommitへの接続

リモートリポジトリの作成

  • CodeCommitでリモートリポジトリを作成する

git CloneコマンドでSSH接続

  • 作成すると以下の画面が表示されるので、Git cloneコマンドをコピーする
git clone ssh://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/sample_repository
  • コピーしたgit cloneコマンドを入力、無事にリポジトリからコピーが出来たことを確認できました。

既存のローカルディレクトリをPUSHする場合

ローカル環境でGitを用意

$ git init
Initialized empty Git repository in /(ディレクトリパス)/.git/

リモートリポジトリの設定

$ git remote add origin ssh://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/Sample_Repository
$ git remote -v
origin  ssh://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/Sample_Repository (fetch)
origin  ssh://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/Sample_Repository (push)

ローカルリポジトリにCommit

$ git add --all
$ git commit -m "first commit"

リモートリポジトリにPush

$ git push origin master
Counting objects: 3, done.
Writing objects: 100% (3/3), 272 bytes | 272.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To ssh://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/Sample_Repository
 * [new branch]      master -> master

CodeCommitにPushされていることを確認

まとめ

GithubからCodeCommitに移行しようとおもったので作業しつつ記述
AWSのヘルプにも書いてある事だけど挿絵をさして自分がわかりやすいように残しました!
次はCodeCommitにPushしたらCodeDeployでデプロイ出来るようにしたいです。

参考ページ

サルでもできるCodeCommit コピペでgit cloneするまで