おじさん。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
cloud9を選択します。
前回、何もしてなければ30分で停止設定ですので停止しています。
「Open IDE」で「myproject1」を起動します。
起動するまで待ちます。
プロンプトが表示されました。
「cd ~/.ssh」と入力しディレクトリ移動を行います。
# cd ~/.ssh
「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 . . . |
| . |
| |
| |
| |
+-----------------+
ファイルが2つ作成されます。
秘密鍵: codecommit_rsa
公開鍵: codecommit_rsa.pub
「cat codecommit_rsa.pub」のコマンドで表示しメモ帳などにコピーしておいてください。
$ cat codecommit_rsa.pub
ssh-rsa EXAMPLE-AfICCQD6m7oRw0uXOjANBgkqhkiG9w0BAQUFADCBiDELMAkGA1UEBhMCVVMxCzAJB
gNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb2
5zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wHhc
NMTEwNDI1MjA0NTIxWhcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAw
DgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDAS=EXAMPLE user-name@ip-192-0-2-137
一旦、開発者アカウントから離れます。
2.IAMにて作成したSSHキーを登録
前回作成した開発者アカウントのグループには「CodeCommit」を利用する権限がないので合わせて権限追加を行います。
2-1.前回作成した管理者用アカウントでログインします。
https://aws.amazon.com/jp/ からか
https://自身アカウント.signin.aws.amazon.com/console
「IAM」を選択します。
2-2.セキュリティポリシーの割り当て
「グループ」「Cloud9Gorup」を選択します。
「アクセス許可」タブを選択してポリシーを追加するために「ポリシーのアタッチ」を押します。
「AWSCodeCommitFullAcces」を選択し「ポリシーのアタッチ」を行います。
グループ「Cloud9Group」には
AWSCloud9Administrator
AmazonEC2FullAccess
AWSCodeCommitFullAcces
の権限が付きました。
2-3.SSHキーを登録
「ユーザ」を選択し開発者用アカウントを選択します。
「認証情報」タブを開きます。
下の方にある「SSHパブリックキーのアップロード」を押します。
「SSHパブリックキーのアップロード」の画面に
先ほど「cat codecommit_rsa.pub」でコピーした公開鍵をペーストします。
「SSHパブリックキーのアップロード」を押します。
アップロードされると「SSHキーID」が表示されるのでメモしておきます。
管理者アカウントでの作業は終わりましたので「サインアウト」します。
3.CodeCommitにSSH接続するための設定
Cloud9の環境に戻るとこんな画面が出ていたら再ログインします。
公開鍵を作った後に開発者アカウントをサインアウトしていたら再ログインします。
3-1.開発者アカウントで再ログイン
「Login」を押すと再ログイン画面が表示されますので開発者用アカウントでログインします。
先ほどの画面に戻ってこれました。
もし、停止していて再起動した場合はプロンプトで
「cd ~/.ssh」でディレクトリ移動します。
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
CodeCommitに接続できるか確認します。
$ ssh git-codecommit.ap-northeast-1.amazonaws.com
接続確認が来る場合は「yes」入力します。
問題なく接続できれば
「You have successfully authenticated over SSH. 」と表示されます。
4.CodeCommitにリモートリポジトリを作成
以下のコマンドでリポジトリを作成します。
configファイルで東京リージョンと設定しています。
$ aws codecommit create-repository --repository-name MyDemoRepo
作成されるとJson形式の結果が返ります。
作成されたURLが確認できます。
ssh://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/MyDemoRepo
コンソールで確認するとリポジトリが作成されています。
5.リモートリポジトリをローカルにコピー
5-1.開発環境に移動
$ cd enviromennt
5-2.リポジトリのコピー
以下のコマンドでローカルにコピーします。
$ git clone ssh://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/MyDemoRepo
$ ls -al
今回は以上です。
AWSのCodeCmmitとCloud9開発環境の連携でした。
次回は、Vueプロジェクトの作成の予定です。
参考
以下を中心にいろいろ参考にしています。感謝。
AWS CodeCommitリポジトリにSSH接続するための前準備
https://oreout.hatenablog.com/entry/aws/codecommit/1
AWS Cloud9 から CodeCommit を使うための設定
https://qiita.com/acecrc/items/8e17b08c4fb0b4d9c9f9
サポートして頂くと頑張るかもしれません。