개발 일기장106 20240729 TIL: ECR ECS CI/CD 적용기 with fargate & github action ✅ 오늘 배운 것오늘 오후까지도 ECS 배포 이슈가 이어지고 있다. 어제 fargate 옵션을 통해 서버를 띄우는 데까지는 성공했다. 장고 서버가 무사히 시작했다는 로그도 보았다. 이 이후에 다른 문제가 있었다. 1. 어딘가에서 잘 실행되고 있는 이 서버에 어떤 엔드포인트로 접속해야 하는지 모르는 문제2. 마이그레이션 명령어(python manage.py migrate)를 실행하지 않고 바로 실행시켰기 때문에, 분명 RDS에 마이그레이션이 적용되지 않았을 것이다...-> 이렇게 생각했었는데, 사실 이미 우리 서비스는 원격 RDS를 사용하고 있다. 그렇다는 것은 이미 로컬에서 RDS 연결 테스트를 할 때 명령어로 마이그레이션을 실행해 주었으니, 사실상 이 문제에 대해서는 걱정하지 않아도 되겠다. 어쨌든 .. 2024. 7. 29. 20240728 TIL ✅ 오늘 배운 것오늘은 멘토님과 멘토링하면서 CI/CD 자동배포 및 도메인 연결에 대해서 작업했다. 오늘 다룰 것으로 예상되는 부분은 다음과 같다: 1. ECS에서 EC2 컨테이너 실행2. 실행한 EC2 컨테이너를 Route53 등을 이용해서 사전에 구매한 도메인 주소 할당 ✅ 멘토링에서 배운 것이전에 블로그에 올린 질문 관련EBS, 그리고 이와 관련된 개념인 RAID (raid 0, 1, 5, 10 전략 & hotswap(빈 disk 하나 둬서 장애에 대비하는 전략))를 말씀해주셨다. EBS는 Elastic Block Store의 약자로, 찾아보니 EC2 인스턴스에 사용될 스토리지 볼륨을 제공해주는 서비스라고 한다. 그리고 RAID 중에서는 RAID 10 전략이 제일 많이 사용된다고 하셨다. 왜냐하면 .. 2024. 7. 28. 20240727 TIL: ECR ECS 적용기 ✅ 오늘 배운 것오늘은 ECS에서 EC2 서버를 실행시키는 작업을 하다가, 문득 EC2에서 사용하는 데이터베이스가 로컬 mysql DB라는 사실을 깨달았다. 그런데 EC2 인스턴스에선 기본적으로 mysql db가 설치되어있지 않기 때문에, 이렇게 코드를 올리면 로컬에서만 실행되고 원격 인스턴스에서는 실행되지 않을 게 분명했다. 결론은 현재 로컬에서 사용하는 mysql 서버를 RDS로 바꿔야 한다는 것이었다. 이를 위해 AWS 콘솔을 확인해 보니 저번 주에 멘토링하면서 만들어 둔 RDS가 있었다. 그런데 유저 이름과 패스워드가 기억나지 않아서, 새로 RDS 인스턴스를 생성하기로 했다. 그런데 또 생각해보니 RDS를 처음에는 로컬에서 접근 가능하게 해야 하지만, 또 이걸 깃허브 브랜치에 올린 다음 ECR.. 2024. 7. 27. 20240726 TIL ✅ 오늘 배운 것오늘 오후까지 이어지던 SZ-85 작업은 계속 길어질 것 같아서 드래그앤 드롭 구현에 이상이 없는 정도에서 잠시 머지하고, 나는 그 동안 미뤄왔던 또 다른 급한 이슈를 처리하려고 했다. 바로 github action, ECR, ECS를 통해 깃허브의 메인 브랜치의 코드를 도커 이미지로 빌드해서 ECR에 업로드하고, ECS를 통해 ECR에 업로드된 도커 이미지를 실행하는 일을 했다. 사실 ECR로 이미지를 업로드하는 일까지는 순탄했고, 그 이후에 ECS의 클러스터를 설정하고, fargate와 EC2 중에서 나름 고민해서 선택을 했다. fargate는 서버리스로, 좀 더 간단한 설정을 할 수 있다는 장점이 있는 반면 EC2는 설정을 커스텀해야 하는 부분이 있지만 비용 측면에서 좋다고 했다.. 2024. 7. 26. 20240725 TIL ✅ 오늘 배운 것오늘은 삽질해서 막히던 SZ-85번의 하위 이슈 중 하나를 팀원들의 도움으로 같이 해결했다. 세부 문제 상황은, 투두 리스트들 아래 텍스트 인풋을 받는 Input 컴포넌트를 누르면 텍스트 인풋 창이 활성화되지 않고 키보드가 활성화되었다가 바로 비활성화되는 문제였다. 팀원들과 웹엑스로 회의를 하면서 문제가 되는 컴포넌트(DailyTodos 안의 컴포넌트)를 KeyboardAvoidingView로 한번 더 감싸 보았더니 된다고 했다. 사실 어떤 원리로 문제가 해결되었는지는 모르겠다. 왜냐하면 이미 바깥 화면에서 KeyboardAvoidingView를 사용하고 있었고, 그래서 굳이 한번 더 감쌀 생각을 안 한 것이었기도 하기 때문이다. 또한 GPT한테 물어봤을 때는 컴포넌트(아마도 Input.. 2024. 7. 25. 20240724 TIL ✅ 오늘 배운 것오늘도 SZ-85번 이슈에서 삽질을 했다. 대부분은 상태관리에 관한 문제였다. 특히 프로젝트에서는 상태관리를 위해 zustand와 useContext API를 사용하는데, zustand 라이브러리를 통해서는 useTodoStore()와 useModalStore()라는 2가지의 store를 사용한 것이 복잡성의 원인이 되었다. 정확히는 selectedTodo라는 모달창에서 선택된 투두를 저장하기 위한 상태 변수가 useModalStore()에 선언되어 있었는데, 이것을 useTodoStore()에 선언된 줄 알고 useTodoStore에서 불러와서 제대로 모달창이 나타나지 않는 문제가 있었다. 또한 Jwt Parse error도 있었다. GPT에게 물어보니 토큰이 발급된 시간(iat)가.. 2024. 7. 24. 이전 1 ··· 14 15 16 17 18 다음