본문 바로가기

🧑🏻‍💻 Dev/Infra

(3)
[Jenkins] ERROR: script returned exit code 255 이번에 시작한 프로젝트에서 Jenkins를 사용해서 CI/CD 파이프라인을 구성하고 있습니다. develop 브랜치에서 작업을 하고, push를 하면 Jenkins Pipeline이 동작하면서 자동화 배포 작업이 진행됩니다. 우리 프로젝트에서는 다음과 같은 Pipeline이 동작해서 배포를 진행합니다. Git Clone Github Repository의 develop 브랜치에 변화가 발생되면 Jenkins 동작이 시작됩니다. develop 브랜치를 Jenkins 서버로 clone 해서 가져옵니다. DEV-Build 이 과정에서 프로젝트의 Build와 Test를 진행합니다. Deploy Jenkins 서버에서 Develop 서버로 SSH 통신을 통해 배포 스크립트를 실행합니다. 이 글에서는 이 "Deplo..
[Github Actions x Docker] 자동화 배포 환경 도커로 변경하기 1. 기존 아키텍처와 배포 스크립트 분석 프로젝트 진행 과정에서 초반에 간단한 인프라 설계를 위처럼 진행했습니다. 먼저 EC2(Ubuntu) 내부에 Node 16 버전을 포함해서 필요한 것들을 모두 수동으로 설치했습니다. 그 후 deploy.sh라는 스크립트 파일을 만들어 배포 스크립트를 작성했습니다. 이제 Github Actions에서 SSH 연결을 통해 EC2에 접근하여 deploy.sh를 실행하여 자동화 배포가 되도록 설정하여 완료했습니다. 기존의 스크립트는 아래와 같이 git 저장소에서 프로젝트 최근 파일을 가져온 후 추가된 npm 라이브러리를 확인하고 설치합니다. 프로젝트를 build 하고, 빌드가 성공하면 현재 실행 중인 프로세스를 확인하고 중지시켜 줍니다. 그 후 백그라운드 실행을 위해서 n..
[AWS] Application Load Balancer에 Cloud Front의 요청만 허가하기 최근 아키텍처를 설계해야 하는 일이 있어서 위와 같이 Cloud Front를 앞단에 두고, ELB에 요청을 전달해서 EC2로 가는 방향으로 설계를 했습니다. 예상했던 결과대로 서버 도메인을 입력하면 API 서버에 접근할 수 있었습니다. 하지만, 원하는 결과와는 조금 다르게 ELB의 DNS 서버로도 아무나 접근이 가능했습니다. 서버에 접근하는 경로는 단 하나만 있는 게 보안상으로도 좋을 거 같아서 ELB(Origin)에서는 내가 배포한 Cloud Front에서 오는 요청만 받고, 나머지 요청은 모두 403 Forbbiden으로 처리하도록 하고자 했습니다. 1. Cloud Front에 등록된 Origin(ELB)로 보내는 요청에 헤더 추가하기 위에서는 헤더 이름을 "X-Custom-Access-Token"이..