AWSお勉強 CodeCommit

サボり始めるとやる気が起きなくなる久々のパクリ11発目!
パクリ元
内容
EC2だけは使っててそれ以外は無視していたが、ちょっと機会があったので備忘録程度にやってみる。ある程度の知識がある場合はマニュアルがいいんだけど、そうでない場合は人がやったのをパクるのが吸収しやすい。が、そのケースでは環境等が変わっている場合も多い。特にAWS系はしょっちゅう画面とか変わっているイメージなので、現時点で動くように調整する。
CodeCommitにソース等を登録(★今回ココ) → CodeBuildでコンテナ等作成してECRに登録 → ECSで起動 の流れ。
CodeCommit
CodeCommitTestというリポジトリを作成。



ローカル環境整備
CodeCommitはGitサーバみたいなものだからローカルで開発したソース等をPushすることになる。そのローカル環境をwsl(ubuntu)で作成する。まずはsshキー作成。
~$ pwd
/home/ubuntu
~$ mkdir .ssh
~$ cd .ssh
~/.ssh$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/ubuntu/.ssh/id_rsa): ←Enter
Enter passphrase (empty for no passphrase): ←Enter
Enter same passphrase again: ←Enter
Your identification has been saved in /home/ubuntu/.ssh/id_rsa
Your public key has been saved in /home/ubuntu/.ssh/id_rsa.pub
The key fingerprint is:
・・・
The key's randomart image is:
+---[RSA 3072]----+
・・・
+----[SHA256]-----+
出来上がった公開鍵(id_rsa.pub)をIAMに登録することで、ローカル環境が持つ秘密鍵(id_rsa)とともにそのIAMが使用できるようになる。登録するのは以下 id_rsa.pub の中身。
~/.ssh$ cat id_rsa.pub
ssh-rsa ・・・・・・・・・・・・・・・・・・・・・・・・
IAM
CodeCommitを使用できるユーザーを作成。ダッシュボードからユーザー画面を表示。


「ユーザーの作成」ボタンを押して「AWSCodeCommitFullAccess」というユーザー名にして「次へ」ボタン押下。

「ポリシーを直接アタッチする」を選択して、許可ポリシー箇所で「AWSCodeCommitFullAccess」ポリシーを検索、チェックボックスをオンにして「次へ」ボタン押下。確認画面にて「ユーザーの作成」ボタンを押下する。


出来上がった「AWSCodeCommitFullAccess」ユーザーを確認してクリックする。


真ん中らへんの「セキュリティ認証情報」タブを選択して下の方にスクロール、「AWS CodeCommit の SSH 公開キー」エリアの「SSH 公開キーのアップロード」ボタンを押下。先ほどローカルで取得したid_rsa.pub の中身をテキストエリアに貼り付けて「SSH 公開キーのアップロード」ボタンを押下すると、SSH キーID(赤部分)が取得できる。



ローカル環境にConfig作成
取得したSSH キーID(APK*****************)を使用して、SSH Configを作成する。
Host git-codecommit..amazonaws.com
User APK*****************
IdentityFile ~/.ssh/id_rsa
テスト接続。You have successfully と出れば安心。
~/.ssh$ ssh -T APK*****************@git-codecommit.ap-northeast-1.amazonaws.com
The authenticity of host 'git-codecommit.ap-northeast-1.amazonaws.com (52.119.220.10)' can't be established.
RSA key fingerprint is SHA256:・・・・・・
Are you sure you want to continue connecting (yes/no/[fingerprint])? ←yes+Enter
Warning: Permanently added 'git-codecommit.ap-northeast-1.amazonaws.com,52.119.220.10' (RSA) to the list of known hosts.
You have successfully authenticated over SSH. You can use Git to interact with AWS CodeCommit. Interactive shells are not supported.Connection to git-codecommit.ap-northeast-1.amazonaws.com closed by remote host.
ソース等作成
初めに作成したCodeCommitTestリポジトリをローカルにCloneする。
~/.ssh$ cd ..
~$ git clone ssh://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/CodeCommitTest
Cloning into 'CodeCommitTest'...
warning: You appear to have cloned an empty repository.
~$ ls
CodeCommitTest
~$ cd CodeCommitTest/
~/CodeCommitTest$ mkdir src
Nginxコンテナを使用してページを表示するだけをやってみるための3つのファイルを作成。
FROM 'nginx:latest'
COPY ./src/index.html /usr/share/nginx/html/index.html
RUN service nginx start
<h1>Hello 周回遅れのパクリ学習</h1>
version: 0.2
phases:
pre_build:
commands:
- echo Logging in to Amazon ECR...
- $(aws ecr get-login --no-include-email --region $AWS_DEFAULT_REGION)
build:
commands:
- echo Build started on `date`
- echo Building the Docker image...
- docker build -t $IMAGE_REPO_NAME:$IMAGE_TAG .
- echo docker tag $IMAGE_REPO_NAME:$IMAGE_TAG $AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/$IMAGE_REPO_NAME:$IMAGE_TAG
- docker tag $IMAGE_REPO_NAME:$IMAGE_TAG $AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/$IMAGE_REPO_NAME:$IMAGE_TAG
post_build:
commands:
- echo Build completed on `date`
- echo Pushing the Docker image...
- docker push $AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/$IMAGE_REPO_NAME:$IMAGE_TAG
- printf '[{"name":"<container-definition>","imageUri":"%s"}]' $AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/$IMAGE_REPO_NAME:$IMAGE_TAG > artifacts.json
artifacts:
files: artifacts.json
長くなったのでとりあえずCommit、Pushして終わる。
~/CodeCommitTest$ git add *
~/CodeCommitTest$ git commit -m "first commit"
[master (root-commit) a852aaf] first commit
3 files changed, 27 insertions(+)
create mode 100644 Dockerfile
create mode 100644 buildspec.yml
create mode 100644 src/index.html
~/CodeCommitTest$ git push
Warning: Permanently added the RSA host key for IP address '52.119.218.16' to the list of known hosts.
Enumerating objects: 6, done.
Counting objects: 100% (6/6), done.
Delta compression using up to 16 threads
Compressing objects: 100% (4/4), done.
Writing objects: 100% (6/6), 803 bytes | 803.00 KiB/s, done.
Total 6 (delta 0), reused 0 (delta 0)
remote: Validating objects: 100%
To ssh://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/CodeCommitTest
* [new branch] master -> master
CodeCommit確認
AWS側に上がってきているのを確認する。


雑感
イメージとかまとめるのが大変。
ディスカッション
コメント一覧
まだ、コメントがありません