おじさん。AWSを触る。その3。AWS CodeCommitとCloud9環境を連携する。

その3です。
AWS CodeCommitとCloud9開発環境を連携してみます。
AWS CodeCommit は、 Amazon Web Services によってホストされるバージョン管理サービスです。URL
普通?の人はGitHubやGitLabとか使うのかな?
ここではAWS縛りでAWS CodeCommitを使います。
あと、管理者用アカウントと開発者用アカウントを分けていますので
(注意)開発者アカウント→管理者用アカウント→開発者用アカウントと行ったり来たりします。

料金はURL
最初の 5 人のアクティブユーザー  0.00USD
特典: 無制限のリポジトリ
   50 GB のストレージ/月
   10,000 回の Git リクエスト/月
個人で使う分には無料かな。

今回は、CodeCommitリポジトリにSSHで接続環境を作ります。

1.AWS Cloud9環境でSSHキーを作成

1-1.前回作成した開発者用アカウントでログインします。
            https://aws.amazon.com/jp/ からか
   
https://自身アカウント.signin.aws.amazon.com/console

画像1

画像2

cloud9を選択します。

画像3

前回、何もしてなければ30分で停止設定ですので停止しています。
「Open IDE」で「myproject1」を起動します。

画像4

起動するまで待ちます。

画像5

プロンプトが表示されました。

画像6

「cd ~/.ssh」と入力しディレクトリ移動を行います。

# cd ~/.ssh

画像7

「ssh-keygen -t rsa -b 4096 -f codecommit_rsa」と入力しSSHキーの作成を行います。
パスフレーズは今回使わないので何も入力せず全て「Enter」を何回か押します。

$ ssh-keygen -t rsa -b 4096 -f codecommit_rsa
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in codecommit_rsa.
Your public key has been saved in codecommit_rsa.pub.
The key fingerprint is:
45:63:d5:99:0e:99:73:50:5e:d4:b3:2d:86:4a:2c:14 user-name@client-name
The key's randomart image is:
+--[ RSA 4096]----+
|        E.+.o*.++|
|        .o .=.=o.|
|       . ..  *. +|
|        ..o . +..|
|        So . . . |
|          .      |
|                 |
|                 |
|                 |
+-----------------+

画像8

ファイルが2つ作成されます。
秘密鍵: codecommit_rsa
公開鍵: codecommit_rsa.pub

画像9

「cat codecommit_rsa.pub」のコマンドで表示しメモ帳などにコピーしておいてください。

$ cat codecommit_rsa.pub
ssh-rsa EXAMPLE-AfICCQD6m7oRw0uXOjANBgkqhkiG9w0BAQUFADCBiDELMAkGA1UEBhMCVVMxCzAJB
gNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb2
5zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wHhc
NMTEwNDI1MjA0NTIxWhcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAw
DgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDAS=EXAMPLE user-name@ip-192-0-2-137

画像10

一旦、開発者アカウントから離れます。

2.IAMにて作成したSSHキーを登録

前回作成した開発者アカウントのグループには「CodeCommit」を利用する権限がないので合わせて権限追加を行います。

2-1.前回作成した管理者用アカウントでログインします。
            https://aws.amazon.com/jp/ からか
   
https://自身アカウント.signin.aws.amazon.com/console

画像11

画像12

「IAM」を選択します。

画像13

2-2.セキュリティポリシーの割り当て
「グループ」「Cloud9Gorup」を選択します。

画像14

「アクセス許可」タブを選択してポリシーを追加するために「ポリシーのアタッチ」を押します。

画像15

「AWSCodeCommitFullAcces」を選択し「ポリシーのアタッチ」を行います。

画像16

グループ「Cloud9Group」には
AWSCloud9Administrator
AmazonEC2FullAccess
AWSCodeCommitFullAcces
の権限が付きました。

画像17

2-3.SSHキーを登録

「ユーザ」を選択し開発者用アカウントを選択します。

画像18

「認証情報」タブを開きます。

画像19

下の方にある「SSHパブリックキーのアップロード」を押します。

画像20

「SSHパブリックキーのアップロード」の画面に
先ほど「cat codecommit_rsa.pub」でコピーした公開鍵をペーストします。
「SSHパブリックキーのアップロード」を押します。

画像21

アップロードされると「SSHキーID」が表示されるのでメモしておきます。

画像22

管理者アカウントでの作業は終わりましたので「サインアウト」します。

画像23

3.CodeCommitにSSH接続するための設定

Cloud9の環境に戻るとこんな画面が出ていたら再ログインします。
公開鍵を作った後に開発者アカウントをサインアウトしていたら再ログインします。

3-1.開発者アカウントで再ログイン

画像24

「Login」を押すと再ログイン画面が表示されますので開発者用アカウントでログインします。

画像25

画像26

先ほどの画面に戻ってこれました。
もし、停止していて再起動した場合はプロンプトで
「cd ~/.ssh」でディレクトリ移動します。

画像27

3-2.gitの設定

gitを利用するための初期設定を行います。
[USER_NAME]にはIAMで登録されている「ユーザー名」
[USER_EMAIL]には「メールアドレス」を指定してください。

$ git config --global user.name   xxxxxxxxxxxx
$ git config --global user.email   xxxxx@xxxxxx.xxx

を入力し
「git config -l 」で正しく設定できたか確認します。

3-3.CodeCommitにSSH接続するための設定

「config」を設定します。
東京リージョンのCodeCommitに接続するために
「Host」「git-codecommit.ap-northeast-1.amazonaws.com」としています。各リージョンのURLはリンク参照
User APKAEIBAERJR2EXAMPLE        「SSHキーID」を設定
IdentityFile ~/.ssh/codecommit_rsa   SSHキーのファイル名を指定

$ vi ~/.ssh/config
Host git-codecommit.ap-northeast-1.amazonaws.com
 User APKAEIBAERJR2EXAMPLE
 IdentityFile ~/.ssh/codecommit_rsa

configファイルのパーミッションを「600」とします。



$ chmod 600 ~/.ssh/config

画像29

CodeCommitに接続できるか確認します。

$ ssh git-codecommit.ap-northeast-1.amazonaws.com

接続確認が来る場合は「yes」入力します。
問題なく接続できれば
「You have successfully authenticated over SSH. 」と表示されます。

画像29


4.CodeCommitにリモートリポジトリを作成

以下のコマンドでリポジトリを作成します。
configファイルで東京リージョンと設定しています。

$ aws codecommit create-repository --repository-name MyDemoRepo

作成されるとJson形式の結果が返ります。
作成されたURLが確認できます。

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

画像30

コンソールで確認するとリポジトリが作成されています。

画像31

5.リモートリポジトリをローカルにコピー

5-1.開発環境に移動

$ cd enviromennt

5-2.リポジトリのコピー

以下のコマンドでローカルにコピーします。

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

$ ls -al

画像32

今回は以上です。
AWSのCodeCmmitとCloud9開発環境の連携でした。

次回は、Vueプロジェクトの作成の予定です。

参考
以下を中心にいろいろ参考にしています。感謝。
AWS CodeCommitリポジトリにSSH接続するための前準備
https://oreout.hatenablog.com/entry/aws/codecommit/1
AWS Cloud9 から CodeCommit を使うための設定
https://qiita.com/acecrc/items/8e17b08c4fb0b4d9c9f9


サポートして頂くと頑張るかもしれません。