Terraform과 AWS CodeSeries 기반의 기본적인 CI/CDelivery 파이프라인 구축하기 (4/4)

박종배·2023년 10월 26일
0

이 글은 총 4개의 파트로 나뉘며 각 파트별 다루는 내용은 위와 같습니다.


테스트

먼저, 앞서 생성한 git 저장소 sample-pipeline으로 가서 커밋한 해시를 tag로 생성하고 push 하자.

git tag 생성 및 push

git tag dev-0.1
git push origin -u dev-0.1

CodeCommit에 tag 생성 확인

CodePipeline 트리거 확인

CI에 대한 CodeBuild 로그 확인

ECR 확인

Manual Approval 승인

CD에 대한 CodeBuild 로그 확인

EKS 확인

$ kubectl get all -n sample-pipeline
NAME                                   READY   STATUS    RESTARTS        AGE
pod/sample-pipeline-5cf975b666-fcwfh   1/1     Running   5 (8m37s ago)   10m

NAME                      TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)   AGE
service/sample-pipeline   ClusterIP   172.20.141.190   <none>        80/TCP    32m

NAME                              READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/sample-pipeline   1/1     1            1           32m

NAME                                         DESIRED   CURRENT   READY   AGE
replicaset.apps/sample-pipeline-5cf975b666   1         1         1       10m
replicaset.apps/sample-pipeline-75644489fc   0         0         0       32m
replicaset.apps/sample-pipeline-795dfd6ccf   0         0         0       24m
replicaset.apps/sample-pipeline-8c4d69cdc    0         0         0       16m

포트포워딩하여 배포한 앱에 접근해보자.

### 포트포워딩
$ kubectl port-forward -n sample-pipeline service/sample-pipeline 8080:80

### api 호출 테스트
$ curl -v localhost:8080
*   Trying 127.0.0.1:8080...
* Connected to localhost (127.0.0.1) port 8080 (#0)
> GET / HTTP/1.1
> Host: localhost:8080
> User-Agent: curl/8.1.2
> Accept: */*
>
< HTTP/1.1 200 OK
< date: Tue, 03 Oct 2023 12:18:18 GMT
< server: uvicorn
< content-length: 61
< content-type: application/json
<
* Connection #0 to host localhost left intact
{"message":"CI/CD Pipeline using Terraform & AWS CodeSeries"}%

위와 같이 정상적으로 소스코드로부터 이미지를 빌드하고 EKS에 배포까지 수행함.

이렇게 해서 Terraform과 aws 리소스들을 활용해 CI/CD (delivery)를 구현해봤다.

profile
기록하는 엔지니어 되기 💪

0개의 댓글