To-Do

Github Actions

ECS 서비스들의 각각 CI/CD Pipeline을 구축하고 브랜치를 병합하는 문제와 task-definition.json 파일이 업데이트 될때마다 수동으로 업로드 해줘야 한다는 점에 대해 팀원들과 의견을 나눴고, 작업을 담당했다.
Github Actions 공식 문서를 보며 특정 조건에 트리거를 걸 순 있었지만, 생각했을 때 과연 이게 필요한 과정인가 싶어져서 고민을 하게 됐다.
어떤 파일은 추적을 하고, 어떤 파일은 제외를 시키고, 이런 형식의 workflow를 3개씩 관리하다보면 복잡하고 어렵고 무거워지지 않을까 라는 결론에 도달하여 결국 브랜치를 분리하여 관리하는 것이 더욱 좋다고 생각이 들었고, CI/CD Pipeline을 통합하는 작업은 하지 않게 되었다.
task-definition.json
task-definition.json 파일을 자동으로 업데이트 하는 작업은 간단했다.
AWS cli 명령어를 실행시켜서 최신 task 정의의 task-definition.json 파일을 불러올 수 있다.
- name: Download task definition
run: |
aws ecs describe-task-definition --task-definition my-task-definition-family --query taskDefinition > task-definition.json
Error!!!
기존에 작성한 Actions 코드에 이상이 있었는지 Deploy를 할 수 없었다.
하지만, 이미지와 업로드 된 이미지로 생성된 태스크 정의는 AWS 콘솔에서 확인할 수 있었고, 단지 클러스터 내의 서비스 태스크를 변환하는 과정에서 알 수 없는 Arn Missing으로 에러가 계속 생기고 있었다.

새로운 이슈를 작성을 했고, 디버깅 계획을 세웠다.
추측

workflow에 task definition 파일이 변경된 직후 콘솔로 task definition 파일을 출력해보았고,
이미지 태그는 바뀌었으나 태스크 정의의 태그는 바뀌지 않았음을 확인했다.
하지만...
약 10시간정도 삽질을 해보며 태스크 정의의 태그를 임의로 1씩 증가해보기도 하고, 초기 태스크 정의의 설정 파일을 가져와 적용도 시켜보고 했지만, 문제는 도통 해결되지 않았다.
다른 작업을 다 끝낸 팀원들과도 함께 보고 있었지만 도통 해결방안은 나오지 않았고,
결국 workflow 제일 마지막 단계에서 환경변수로 넣어준 클러스터 이름과 서비스 이름을 평문으로 바꿔보는게 어떠냐는 팀원의 말에 지푸라기라도 잡는 심정으로 변경을 하려했다...
I'm fool...
환경변수로 넣어준 클러스터 이름과 서비스 이름을 확인하려 기존 환경변수를 확인하는 순간, 소리를 질렀다.
클러스터 이름이 잘못돼있었다.


Actions workflow를 재실행시켜주었고, 배포가 성공되자 기쁘면서 허탈했다.
기존에 사용하던 workflow 코드를 그대로 들고와서 당연히 잘 되어 있을거란 안일한 생각에 시간을 낭비하게 되었다.
이번 일을 교훈으로 삼고 무엇이든 꼼꼼하게 확인하는 습관을 들여야겠다.
에러 중에 제일 힘든 에러는 휴먼에러인듯하다.
'Codestates' 카테고리의 다른 글
| 코드스테이츠 DevOps #Final-Project 회고 (0) | 2023.06.28 |
|---|---|
| 코드스테이츠 DevOps #Final-Project Day10 (0) | 2023.06.23 |
| 코드스테이츠 DevOps #Final-Project Day7 (0) | 2023.06.20 |
| 코드스테이츠 DevOps #Final-Project Day6 (0) | 2023.06.19 |
| 코드스테이츠 DevOps #Final-Project Day4 (0) | 2023.06.15 |
