안녕하세요 이웃님들 ^.^
오늘은 아마존의 EKS 상에서 레파지토리를 생성하고. 이 레파지토리에 이미지를 저장하고. 저장된 이미지를 통해 eks의 컨테이너 들에게 패키지를 배포하는 방법에 대해서 포스팅을 해보려고 합니다.
Repogitory 생성하기
- AWS Console에서 Service창에서 Repogitory를 생성하기 위해 Codecommit을 입력 하여 검색을 합니다.

2. Codecommit를 클릭 하여 리포지토리 생성을 클릭 합니다.

3. 리포지토리 이름에 k8s-testconfig을 입력 하고, 설명에 config repo를 입력 하고 생성을 클릭 합니다.

4. 화면 왼쪽의 리포지토리를 클릭 합니다.

5. 리포지토리 생성을 클리하고, k8s-test를 입력 하고 설명에 image repo를 입력 하고 생성을 클릭 합니다.

6. AWS Console의 서비스 검색 창에서 EC2를 입력 하고 클릭 합니다.

7. 인스턴스(실행중)을 클릭하고, baston host를 클릭 하고 ssh 연결을 합니다.

8. ssh키를 저장할 디렉토리를 아래 명령을 이용해서 생성 합니다.
sh-4.2$ mkdir ~/.ssh && cd ~/.ssh
sh-4.2$
|
9. 아래 명령을 사용하여 키 페어를 생성 합니다. 질문을 하는 란에 아무 값도 입력 하지 않고 ENTER 키를 입력 합니다.
sh-4.2$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/ssm-user/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/ssm-user/.ssh/id_rsa.
Your public key has been saved in /home/ssm-user/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:wPafDNQzJsbpfsyLsfOJVcQ3uP87Bf79kvl2S5o3ZcA ssm-user@ip-10-10-61-61.us-west-2.compute.internal
The key's randomart image is:
+---[RSA 2048]----+
| |
| . . o . . |
| + * = +.o |
| . * o + oE. |
| S o. o |
| . * o .. +|
| o O .*+|
| .B o B==|
| +o+ o.*@|
+----[SHA256]-----+
sh-4.2$
|
10. Sssh key의 권한을 아래 명령을 사용하여 변경 합니다.
sh-4.2$ chmod 600 ~/.ssh/id_rsa
sh-4.2$
|
11. 아래 명령을 사용해서 Public Key를 AWS로 업로드 하고 AWS IAM의 gituser와 연결을 합니다.
sh-4.2$ aws iam upload-ssh-public-key \
> --user-name gitUser \
> --ssh-public-key-body file://~/.ssh/id_rsa.pub
{
"SSHPublicKey": {
"UserName": "gitUser",
"SSHPublicKeyId": "APKASJV4OUUHJCBRKUIN",
"Fingerprint": "73:fa:2b:8d:6c:1d:ad:cc:71:12:04:4f:93:cd:52:fd",
"SSHPublicKeyBody": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDW3ZGnOdhG9pV/iTR51FCETHUkcq/FN0hid2gAB1WoFl81SRLrHwW2lWN3kZrOFiqK1RUbB3QzI1tpl7MyLl6u841APdYdI6Kf/XhEakjckFLw3CWAd0XcdL0FVf+BABtnAcvumRSmVaWMVmJJxKrYBjTtEPdf+omVLDL+36r2ypVPEBms5HhVwBMxM0fG+hDPMRuK/6Zho1JTifrn5CEg092EGXSJbeYjBPBcwRxwOqZfOGKffzI6LVt1fAlNs08enZvkj6S9G1igBnd9aDr7mEoxdSGHGa8rMuPtUbr2DHarHOA1nEmiOFYPqaDsoQIH1/ZUqfWKTogucogjNWyD ssm-user@ip-10-10-61-61.us-west-2.compute.internal\n",
"Status": "Active",
"UploadDate": "2023-05-01T10:26:51+00:00"
}
}
sh-4.2$
|
12. 아래 명령을 이용해 KEYID 변수에 값을 저장한다.
h-4.2$ KEYID=$(aws iam list-ssh-public-keys --user-name gitUser | jq -r '.[] | .[] | .SSHPublicKeyId') && echo $KEYID
APKASJV4OUUHJCBRKUIN
|
13. 이제 Public Key와 Private Key를 아래 명령을 이용하여 연결을 시키기 위해 ssh 구성 파일을 생성 합니다.
cat <<EOF > ~/.ssh/config
Host git-codecommit.*.amazonaws.com
User ${KEYID}
IdentityFile ~/.ssh/id_rsa
EOF
chmod 700 ~/.ssh/config
|
14. 아래 명령을 사용해서 Codecommit에 인증 할수 있는지 확인을 합니다.
연결을 할거냐고 묻는 부분에서 'yes'를 입력 합니다.
h-4.2$ ssh git-codecommit.us-west-2.amazonaws.com
The authenticity of host 'git-codecommit.us-west-2.amazonaws.com (52.119.168.71)' can't be established.
RSA key fingerprint is SHA256:0pJx9SQpkbPUAHwy58UVIq0IHcyo1fwCpOOuVgcAWPo.
RSA key fingerprint is MD5:a8:68:53:e3:99:ac:6e:d7:04:7e:f7:92:95:77:a9:77.
Are you sure you want to continue connecting (yes/no)? yes
Please type 'yes' or 'no': yes
Warning: Permanently added 'git-codecommit.us-west-2.amazonaws.com,52.119.168.71' (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.us-west-2.amazonaws.com closed by remote host.
Connection to git-codecommit.us-west-2.amazonaws.com closed.
|
이제 두개의 레포지토를 생성 햇고, Public 키를 생성 했습니다.
그럼 이제 Codepipeline을 통해서 Docker Image를 생성을 하여야 하는데요.
이건 다음 포스팅에서 진행 하도록 하겠습니다.
그럼 좋은 하루 되세요 ^.^
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
'아마존 클라우드' 카테고리의 다른 글
[클라우드] Amazon VPC 및 RDS 생성하기 (118) | 2023.06.08 |
---|---|
[클라우드] AWS CI/CD 사용하기 -3 EKS를 사용하여 클러스터 구성 및 배포하기 (156) | 2023.05.11 |
[클라우드] AWS CI/CD 사용하기 -2 Codepipeline 사용하기. (48) | 2023.05.09 |
[클라우드] EKS에 어플리케이션 배포하기 (52) | 2023.05.08 |
[클라우드] AWS 클라우드 EKS 배포 하기 (22) | 2023.05.07 |