DevOps

DevOps

[AWS] EventBridge와 Lambda를 이용하여 스케줄링 구현하기 (+Node.js)

인턴 생활도 거의 2달이 지난 시점. 블로그를 다시 시작해야겠다고 마음을 먹은 뒤, 오랜만에 작성해보는 포스팅. 실제 서비스 중인 api 서버에는 주기적으로 데이터를 Update하고 Delete하는 스케줄링 로직이 박혀있었다. 팀원 분께서 스케줄링 로직은 따로 분리해서 관리하는 것이 효율적일 것 같다고 나에게 분리 작업을 해보는 것이 어떠냐 하셔서, AWS도 익힐 겸 진행해보았고, 뭔가 분명 나중에 또 작업할 일이 생길 것 같아서 간단하게 정리하려한다. Lambda 함수 생성 원하는 환경에 따라 런타임과 아키텍처를 적절히 선택하고 Lambda 함수를 생성한다. 함수 개요에서 트리거 추가 부분을 보면 아직 아무 트리거도 추가되어있지 않다. 여기에 추가할 트리거가 바로 EventBridge이다. 먼저 lam..

DevOps

[Github Actions] PR 진행 시 코드 테스트 통과 안되면 Merge 제한하기 (Branch Protection)

본 게시물은 이전에 운영하던 velog에서 작성됨 (2023년 6월 28일 작성) 최근에 테스트 코드를 조금씩 작성하기 시작했다. 자연스레 CICD 파이프라인에도 test를 추가함으로써 build-test-deploy 구조가 완성되었다. 그런데 문뜩 '테스트 통과 못하면 main branch에 merge 되면 안되지 않나?'라는 생각이 들었고 테스트가 통과될 때만 merge 되도록 설정했고 이에 대해 간소하게 정리했다. 🌼 workflows 수정 하나의 main.yml 파일에 모든 job이 작성되있는 상태여서, 이를 둘로 나눈다. main.yml: 다른 branch가 main branch에 merge될 때 build와 deploy job 진행 pull_request.yml: main branch에 대한 ..

DevOps

[Github Actions] .env 파일 배포와 관련하여

본 게시물은 이전에 운영하던 velog에서 작성됨 (2023년 3월 17일 작성) 이전에 CICD 구축했을 때에는 아무런 문제 없이 애플리케이션 실행이 잘 되었었다. 그런데 어떤 것이 바뀌었는지 모르겠는데 어느 순간부터 배포 서버에 연결이 안되는 것이었다. ec2 인바운드 규칙에서 포트 열었다 닫았다 반복하고 docker 호스트 포트도 80으로 했다가 3000으로 했다가 8080으로 했다가 무한반복 했지만 ec2 서버에 접속할 수가 없었다. (SSH는 잘되는데..) 그러다가 curl 명령어로 도커 컨테이너에 요청을 보내보았다. curl http://localhost:3000 curl: (52) Empty reply from server 열려있는 포트도 확인해보았다. netstat -tnlp tcp 0 0..

닉네임짓기도귀찮아
'DevOps' 카테고리의 글 목록