Edited at

【AWS】CodeCommitを使ってみた

More than 1 year has passed since last update.


はじめに

AWSのリポジトリサービス「CodeCommit」の使ってみました。

「HTTPS」と「SSH」のツーパターンりますが、今回は「SSH」のやり方になります。


IAMの作成


SSH用CodeCommitグループの作成


  1. グループ名設定
    スクリーンショット 2017-10-06 1.12.03.png

  2. ポリシーのアタッチで以下の3つのポリシーを当てる


    • IAMUserSSHKeys
      スクリーンショット 2017-10-06 1.15.47.png

    • IAMReadOnlyAccess
      スクリーンショット 2017-10-06 1.16.11.png

    • AWSCodeCommitFullAccess
      スクリーンショット 2017-10-06 1.17.20.png



  3. 確認を押してグループを作成する
    スクリーンショット 2017-10-06 1.22.11.png


SSH用IAMユーザを作成する


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

    スクリーンショット 2017-10-06 2.22.49.png


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

    スクリーンショット 2017-10-06 2.24.12.png


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

    スクリーンショット 2017-10-06 2.24.55.png



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


    • アクセスキーの☓ボタンを押す
      スクリーンショット 2017-10-06 2.26.37.png

    • 確認画面にて「削除」を選択
      スクリーンショット 2017-10-06 2.27.17.png

    • 削除されたことを確認する。
      スクリーンショット 2017-10-06 2.27.30.png




公開鍵とIAMの連携


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


  • コマンドを実行し、Overwiteでyを入力する以外はすべてエンター。

  • デフォルトだとid_rsaの名前で公開鍵が書かれたファイルができます。

  • 今回はVisual Studio Codeを使ってます。
    スクリーンショット 2017-10-06 10.08.41.png


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



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


    • id_rsa.pubはそのまま作成した場合の名称、作成時に入力していればその名前のファイル



  2. 作成したIAMユーザのSSH公開キーアップロードに、コピーした公開キーをアップする。

    スクリーンショット 2017-10-06 10.21.34.png

    スクリーンショット 2017-10-06 11.40.21.png


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

    スクリーンショット 2017-10-06 11.41.33.png



SSH設定ファイルを編集


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

Host git-codecommit.*.amazonaws.com

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


  • IAMに公開鍵を登録した際に発行されたSSHキーID

    スクリーンショット 2017-10-06 15.05.38.png


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

    スクリーンショット 2017-10-06 15.08.23.png


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

    スクリーンショット 2017-10-06 15.12.16.png



CodeCommitへの接続


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


  • CodeCommitでリモートリポジトリを作成する
    スクリーンショット 2017-10-06 16.03.53.png


git CloneコマンドでSSH接続


  • 作成すると以下の画面が表示されるので、Git cloneコマンドをコピーする
    スクリーンショット 2017-10-06 16.04.43.png

git clone ssh://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/sample_repository


  • コピーしたgit cloneコマンドを入力、無事にリポジトリからコピーが出来たことを確認できました。
    スクリーンショット 2017-10-06 16.20.10.png


既存のローカルディレクトリを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されていることを確認

スクリーンショット 2017-10-06 22.20.40.png


まとめ

GithubからCodeCommitに移行しようとおもったので作業しつつ記述

AWSのヘルプにも書いてある事だけど挿絵をさして自分がわかりやすいように残しました!

次はCodeCommitにPushしたらCodeDeployでデプロイ出来るようにしたいです。


参考ページ

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